前言
本文主要是记录内网渗透神器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程序的特殊操作。
调试权限允许某人调试他们本来无法访问的进程。例如,作为用户运行的进程在其令牌上启用了调试权限,可以调试作为本地系统运行的服务。
当出现ERROR kuhl_m_privilege_simple ; RtlAdjustPrivilege (20) c0000061
时,表示客户端未持有所需的权限,即不是管理员。
3. 抓取明文密码 sekurlsa::logonpasswords
在windows2012以上的系统不能直接获取明文密码了,需要配置相关注册表等操作。
mimikatz # privilege::debug
mimikatz # sekurlsa::logonpasswords
或者直接运行:
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords"
分析命令执行后的内容:
前面几行的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.
这里我使用procdump v8.0
关注公众号“信安文摘”,回复“procdump”下载。
管理员运行工具,导出为lsass.dump文件:
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
将lsass.dmp放在mimikatz同一目录,读取密码文件:
sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords full
4.2 导出lsass.exe进程中所有的票据 sekurlsa::tickets /export
该功能模块导出lsass.exe
进程中所有的票据,运行该命令会在当前目录生成多个服务的票据文件。
可以使用这些导出的票据进行票据传递攻击(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
该命令需要在域控机器上执行:
5.2 查看域内指定用户信息,包括NTLM哈希等
该命令需要在域控机器上执行:
lsadump::dcsync /domain:god.org /user:ligang
总结
文章整理的有点乱,还是对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