目录
[Windows 10的特殊情况](#Windows 10的特殊情况)
[在cmd切换到mimikatz 64位所在路径](#在cmd切换到mimikatz 64位所在路径)
mimkatz获取windows10明文密码原理
lsass.exe进程的作用
lsass.exe是Windows操作系统中的一个关键进程,它负责本地安全和登录策略。当用户登录时,lsass.exe会使用一个可逆的算法加密明文密码,并将密文保存在内存中。
mimikatz的工作机制
mimikatz通过注入代码到操作系统的内存中,能够读取和解密这些由lsass.exe进程保存的加密凭证。具体的操作是,mimikatz先利用管理员权限执行一些操作,如使用procdump等工具lsass.exe进程转储成一个dmp文件。这个dmp文件包含了加密的用户凭证信息。然后,mimikatz读取这个dmp文件,并利用其内置的解密算法还原出明文密码。
Windows 10的特殊情况
在Windows 10或更高版本的系统中,默认情况下,操作系统会在内存缓存中禁止保存明文密码。这意味着,直接读取lsass.exe进程的内存将无法获取到明文密码。为了在Windows 10上获取明文密码,需要采取一些额外的步骤。首先,通过修改注册表的方式让Wdigest Auth保存明文口令。具体是执行类似于reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f的命令。修改注册表后,需要等待系统管理员重新登录,此时Wdigest Auth会保存明文口令到内存中。然后,再次使用mimikatz等工具读取lsass.exe进程的内存,即可获取到明文密码。
实验
实验环境
windows10专业版
实验工具
mimikatz
实验步骤
首先根据版本选择相应的mimikatz
(我电脑是64位所以选择64位)
使用管理员身份运行cmd
修改注册表
在cmd中输入以下命令
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
#命令各个字段解析
1、reg add:
2、这是Windows命令行工具reg的一个子命令,用于向注册表中添加新的项或值。
HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest:
这是注册表项的完整路径。
HKLM:代表HKEY_LOCAL_MACHINE,这是Windows注册表中的一个根键,用于存储关于计算机硬件和软件的配置信息。
接下来的路径SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest指定了我们要修改的注册表项的详细位置。
3、/v UseLogonCredential:
这指定了我们要添加或修改的注册表值的名称,即UseLogonCredential。
4、/t REG_DWORD
这指定了注册表值的类型,即REG_DWORD。REG_DWORD是一个32位数值,通常用于存储整数。
/d 1
5、这指定了注册表值的数据。在这种情况下,我们将UseLogonCredential的值设置为1。
在这个特定的上下文中,将UseLogonCredential设置为1允许Windows Digest身份验证(由WDigest提供)存储用户的明文密码。
/f:
这是一个强制选项,意味着命令将不会提示用户确认。它将直接修改注册表,而不会询问用户是否确定。
出现如下图所示提示说明修改成功,若修改失败请检查cmd权限
重启
上面命令执行后需要重启在会显示结果
重启电脑后打开mimikatz
在cmd切换到mimikatz 64位所在路径
进入软件
进入调试权限
在Windows环境中,调试权限是一种允许用户调试其他进程和系统组件的特殊权限。拥有调试权限的用户可以附加到任何进程上,这通常用于开发、故障排除或恶意活动。这通常是通过调Windows API或执行某些底层操作来完成的。
输入以下代码进入调试权限
bash
privilege::debug
出现如下图所示提示进入调试权限成功
查看密码
输入以下命令查看密码
bash
sekurlsa::logonpasswords full