mimikatz使用说明
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
只记录自己用过的命令
常用的命令
常规抓hash
privilege::debug |
注册列表抓hash
reg save HKLM\SYSTEM SYSTEM |
PTH登录
sekurlsa::pth /user:administrator /domain:ascotbe.com /ntlm:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
procdump
有些情况下🥝是无法抓取到hash的,会提示ERROR kuhl_m_sekurlsa_acquireLSA ; Handle on memory (0x00000005)
错误,可以使用procdump64+mimikatz来解决,前提是windows要运行了lsass.exe
#管理员情况下运行 |
基本命令
-
exit
:退出当前程序 -
cls
:清屏 -
answer
:对生命、宇宙和万物的终极问题的回答。 -
coffee
:显示一杯咖啡图案,请阿姨喝杯卡布奇诺。 -
sleep
:默认睡眠1000ms
,后跟时间参数,比如sleep 5000
,就会睡眠5000ms
。 -
log
:记录 Mimikatz 所有的输入和输出到当前目录下的log.txt
文件,它只会记录输入log
命令后的输入和输出,当你没有启动这个命令之前的所有命令都不会记入进去。 -
base64
:将输入/输出转换成base64
编码。 -
version
:查看Mimikatz的版本 -
cd
:切换或者显示当前目录。与linux
命令相同 -
localtime
:显示系统当前时间和UTC
时间。 -
hostname
:显示主机的名称。
使用模块
输入::
显示其支持模块信息。
standard:标准模块,基本命令,不需要模块信息
该模块就是上文中的基础命令
crypto:加密模块,其后跟以下参数
下图是参数列表
CRYPTO模块提供了与Windows加密功能(CryptoAPI)交互的高级功能。
通常的用途是导出未标记为“可导出”的证书。
参数名 | 说明 |
---|---|
providers | 该命令列出所有 CryptoAPI 提供者。 |
stores | 列出系统存储中的逻辑存储,crypto::stores |
certificates | 显示或者导出证书。 |
keys | 列出或者显示密钥 |
sc | 此命令列出系统上的智能卡/令牌读取器或将其移出系统;当 CSP 可用时,它会尝试在智能卡上列出密钥。 |
hash | 显示当前用户的的哈希(LM、NTLM、md5、sha1、sha2)计算值。 |
system | 描述 Windows 系统证书(注册表或者 hive 文件)。 |
scauth | 从 CA 创建一个认证(智能卡等)。 |
certtohw | 尝试将软件 CA 导出到加密(虚拟)硬件中。 |
capi | 修补 CryptoAPI 程序方便导出。 |
cng | 修补 CNG 服务方便导出。 |
extract | 从 CAPI RSA/AES 提供者获取密钥。 |
providers
此命令列出所有提供程序:CryptoAPI,然后列出CNG(如果可用)
mimikatz # crypto::providers |
stores
此命令列出系统存储中的逻辑存储。
-
/systemstore
该参数是可选参数并且默认为CERT_SYSTEM_STORE_CURRENT_USER
,也可以替换为下面中的其中一种CERT_SYSTEM_STORE_CURRENT_USER
orCURRENT_USER
CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY
orUSER_GROUP_POLICY
CERT_SYSTEM_STORE_LOCAL_MACHINE
orLOCAL_MACHINE
CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY
orLOCAL_MACHINE_GROUP_POLICY
CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE
orLOCAL_MACHINE_ENTERPRISE
CERT_SYSTEM_STORE_CURRENT_SERVICE
orCURRENT_SERVICE
CERT_SYSTEM_STORE_USERS
orUSERS
CERT_SYSTEM_STORE_SERVICES
orSERVICES
使用方法如下
mimikatz # crypto::stores /systemstore:local_machine
Asking for System Store 'local_machine' (0x00020000)
0. My
1. Root
2. Trust
3. CA
4. TrustedPublisher
5. Disallowed
6. AuthRoot
7. TrustedPeople
8. ADDRESSBOOK
9. ipcu
10. Remote Desktop
11. REQUEST
12. SmartCardRoot
13. TrustedDevices
14. Windows Live ID Token Issuer
sc
能列出读取智能卡或者令牌读取器,如果用CSP的时候能读取出智能卡的密钥
mimikatz # crypto::sc |
scauth
创建用于用于智能卡身份验证的客户端证书
该命令中的参数
-
/caname
证书颁发机构的主题名称(需要签署证书)
-
/castore
可选包含证书颁发机构的系统存储(默认值:
CERT_SYSTEM_STORE_LOCAL_MACHINE
) -
/upn
指定的用户主体名称(UPN)(例如:
user@lab.local
) -
/pfx
可选保存最终证书的文件名(默认:无文件,存储在
CERT_SYSTEM_STORE_CURRENT_USER
中)
mimikatz # crypto::scauth /caname:KiwiAC /upn:user@lab.local /pfx:user.pfx |
certificates
该参数里面有三个可以选值
- /systemstore –可选–必须使用的系统存储(默认值:CERT_SYSTEM_STORE_CURRENT_USER)
- /store –可选–必须用于列出/导出证书的存储(默认:My)–带有crypto::stores的完整列表
- /export –可选–将所有证书导出到文件(DER中的公共部分,PFX文件中的私有部分–密码保护:mimikatz)
- /silent –可选–如果需要用户交互,则中止
- /nokey –可选–不要尝试与私钥进行交互
mimikatz # crypto::capi |
hash
使用可选的用户名对密码进行哈希处理
keys
参数列表
/provider
- 可选 - 旧版CryptoAPI提供程序(默认值:MS_ENHANCED_PROV)/providertype
- 可选 - 旧版CryptoAPI提供程序类型(默认值:PROV_RSA_FULL)/cngprovider
- 可选 - CNG提供程序(默认:Microsoft软件密钥存储提供程序)/export
- 可选 - 将所有密钥导出到PVK文件/silent
- 可选 - 如果需要用户交互,则中止
提供者详细信息的完整列表crypto::providers
mimikatz # crypto::keys /export |
cng
此补丁在LSASS进程中修改KeyIso服务,以使不可导出的密钥可导出。仅当密钥提供者是Microsoft软件密钥存储提供者(您无需为其他提供者修补CNG)时,此功能才有用。可以与crypto::certificates
和crypto::keys
一起使用
mimikatz # privilege::debug |
sekurlsa 枚举用户凭证
参数名 | 说明 |
---|---|
msv | 获取 LM & NTLM 凭证,可以获取明文密码。 |
wdigest | 获取 WDigest 凭证,可以获取明文密码。 |
kerberos | 获取 Kerberos 凭证。 |
tspkg | 获取 TsPkg 凭证。 |
livessp | 获取 LiveSSP 凭证。 |
ssp | 获取凭证 |
logonPasswords | 获登录用户信息及密码,如果是在系统权限或者 psexec 进入的系统权限下,直接使用该命令,而无需运行 privilege::debug,否则需要运行该命令。 |
process | 切换或者恢复到 lsass 初始状态。 |
minidump | 切换或者恢复到 minidump 初始状态。 |
pth | Pass-the-hash |
krbtgt | krbtgt! |
dpapisystem | 显示DPAPI_SYSTEM 密码值。 |
tickets | 显示 Kerberos 票据 |
ekeys | 显示 Kerberos 加密密钥 |
dpapi | 显示内存中的 MasterKeys。 |
credman | 显示管理员凭证。 |
pth
抓取到哈希以后就可以直接登录了,也可以直接通过哈希执行命令
#执行命令 |
也可以执行运行命令弹出带有该哈希的本地CMD命令窗口,通过窗口使用PsExe来获取到目标CMD窗口
#弹出带有该哈希的本息CMD窗口 |
Kerberos 包模块
privilege 特权模块
参数名 | 说明 |
---|---|
debug | 请求调试权限 |
driver | 请求装载驱动权限 |
security | 请求安全权限 |
tcb | 请求 tcb 权限 |
backup | 请求 backup 权限 |
restore | 请求恢复权限 |
sysenv | 请求系统环境权限 |
id | 请求 id 特权,参数后跟具体的 id 值,例如请求特权 8:privilege::id 8 |
name | 请求指定名称的权限 |
process 进程模块
参数名 | 说明 |
---|---|
list | 列出进程 |
exports | 导出进程列表 |
imports | 导入进程列表 |
start | 开始一个进程 |
stop | 终止一个进程 |
suspend | 挂起一个进程 |
resume | 恢复一个进程 |
run | 运行一个进程 |
list
列出正在运行的进程,左边为PID右边是进程名字
exports和imports
这两个参数我没搞懂他有啥用,使用后一堆显示一堆windows API,疯狂刷屏
start
后跟进程的绝对路径,并且用""
号包含。比如启动计算器process::start "C:\Windows\SysWOW64\calc.exe"
stop
用法process::stop /pid:5376
(结束 pid 为5376的进程,注意空格别漏了)
suspend
挂起一个进程,挂起的进程点击它没有任何反应
resume
可以恢复挂起的进程,如下图恢复了记事本的运行
run
他会去寻找你想运行的exe
进程,用法process::run calc.exe
运行cmd.exe
service 服务模块
参数名 | 说明 |
---|---|
start | 开始服务 |
remove | 移除服务 |
stop | 停止服务 |
suspend | 暂停服务 |
resume | 恢复服务 |
preshutdown | 预关闭服务 |
shutdown | 关闭服务 |
list | 列出服务 |
+ - | 安装 Mimikatz 服务。 |
- - | 卸载 Mimikatz 服务 |
注意:有些服务不能暂停也不能启动
stop
暂停某个服务
start
remove
当我们删除一个服务的时候,如果改任务还在运行的话,你不会看到该服务消失,只有你删除的服务暂停运行的时候,该服务就会从列表中消失,看下图,删除后我们还能停止他,但是后面就不能启动他了,因为他已经不存在了
+ -和- -
分别是安装和卸载mimikatz
服务
其他命令用法没什么好讲的这里就不再概述了
lsadump Lsa转储模块
参数名 | 说明 |
---|---|
sam | 该命令转储安全帐户管理器(SAM)数据库,它包含用户密码的 NTLM,有时包含 LM 哈希 |
secrets | 从 registry 或者 hives 获取保存的密码凭据,可以直接获取明文密码。 |
cache | 获取内存中的密码值 |
lsa | 从 lsa 服务器获取密码,lsadump::lsa /inject /name:krbtgt |
trust | 要求LSA服务器检索信任验证信息(正常或fbackupkeys rpdata上的补丁程序) |
dcsync | 要求DC同步对象 |
dcshadow | 他们告诉我我可以成为我想要的任何人,所以我成为了域控制器 |
setntlm | 要求服务器为一个用户设置新密码/ ntlm |
changentlm | 要求服务器为一个用户设置新密码/ ntlm |
netsync | 要求DC发送DC / SRV / WKS的当前和以前的NTLM哈希 |
ts 终端服务模块
参数名 | 说明 |
---|---|
sessions | 显示当前的会话 |
multirdp | 允许多个用户使用 rdp,安装 rdp 补丁 |
sessions
该命令有点像linux
上面的查看ssh终端有谁登录,上面时候登录,登录了多久一样
multirdp
没有用过这个,站个坑后面会了在写
event 事件模块
参数名 | 说明 |
---|---|
drop | 启用事件补丁服务,不再记录新产生的事件 |
clear | 清除时间日志 |
drop
没有用过这个,站个坑后面会了在写
clear
清除日志
安全位置的日志全被清空了
misc 杂项模块
该模块就是一些打开文件的功能,比如说cmd、注册列表等等
token 令牌操作模块
参数名 | 说明 |
---|---|
whoami | 显示当前的身份 |
list | 列出系统所有的令牌 |
elevate | 冒充令牌 |
run | 运行 |
revert | 恢复到进程令牌 |
vault Windows 信任/凭证模块
参数名 | 说明 |
---|---|
list | 列出 Windows 信任/凭证 |
cred | 未知 |
net 显示信息
这个模块和cmd
中的net
命令类似就是显示一些user、group、alias、session、wsession、tod、stats、share、serverinfo 等信息