mimikatz免杀 (对狙技巧迷你世界)

公众号:渗透师老A专注分享渗透经验,干货技巧....

作者:掌控安全-蹦擦擦

前言

最近在公众号上看到了两篇mimikatz的免杀文章,看着操作很简单,就是不知道免杀效果怎么样,本着实践是检验真理的唯一标准的原则,自己动手尝试了一下,然后就有了这篇文章。

基于特征码免杀

先看第一篇文章,文章链接:http://adkx.net/w5fe6

文章1方法

先概括一下文章给出的方法:1、*载下**mimikatz源码,使用 visual studio打开。

2、全局查找 mimikatzMIMIKATZ关键字,全部替换为其他关键字。

3、修改含有 mimikatz的文件名。

4、编辑 mimikatz/mimikatz/mimikatz.rc,将一些名称进行修改,还有种类编辑器注释作者名称。

5、编译生成可执行文件,删除 icon等信息,即可免杀。

自己照着上面的方法试了一下,几乎将所有 mimikatz的关键字都替换了,包括文件名,并且还改了作者等信息。然后编译出来后:

对狙迷你世界技巧,mimikatz免杀

落地就报毒。

文章给出的方法已经不能用了,去网上看了一下这是去年的方法。

只不过一些公众号在炒冷饭,过一段时间就发一遍。

改良方法

既然这个方法不能用了,那就自己改良一下,开始还是按照文章的思路来。

*载下**mimikatz源码: https://github.com/gentilkiwi/mimikatz

替换关键字

*载下**好源码后,使用visual studio打开 mimikatz.sln文件:

对狙迷你世界技巧,mimikatz免杀

全局替换 mimikatz -> iphonex

对狙迷你世界技巧,mimikatz免杀

MIMIKATZ -> IPHONEX

对狙迷你世界技巧,mimikatz免杀

配置属性

项目 -> xxx属性

对狙迷你世界技巧,mimikatz免杀

对狙迷你世界技巧,mimikatz免杀

编译

在编译的过程中会报一些错误:

(1)报错找不到文件,重新改回mimikatz,或者修改文件名

对狙迷你世界技巧,mimikatz免杀

(2)编码问题

遇到这种错误就把文件用sublime打开,然后使用utf-8编码重新保存一下

对狙迷你世界技巧,mimikatz免杀

还不行的话就把将警告视为错误改为否

对狙迷你世界技巧,mimikatz免杀

编译成功,依然落地报毒。

对狙迷你世界技巧,mimikatz免杀

删除ico

这步的目的是绕过360动态查杀。

使用 resource_hacker工具打开,然后把图标、信息等全部删掉。

对狙迷你世界技巧,mimikatz免杀

如果不做这一步,可以静态和动态绕过火绒,但是360动态会报毒。

定位关键字

使用 VirTest定位特征码,这里发现了5个特征码:

对狙迷你世界技巧,mimikatz免杀

用16进制工具打开文件,将关键字替换,把关键字都换成00

对狙迷你世界技巧,mimikatz免杀

替换后保存,火绒没有报毒。

验证

静态测试

火绒

对狙迷你世界技巧,mimikatz免杀

360杀毒

对狙迷你世界技巧,mimikatz免杀

动态测试

火绒

对狙迷你世界技巧,mimikatz免杀

360杀毒

对狙迷你世界技巧,mimikatz免杀

Invoke-Mimikatz免杀

再看第二篇文章,文章链接: http://adkx.net/w56fr

文章2方法

概括一下文章给出的方法:

1、*载下** Invoke-Mimikatz.ps1文件。

2、对mimikatz的ps脚本执行基础的字符混淆。

3、利用powershell ise自带的功能进行混淆。

照着上面的方法试了一下,免杀效果还可以,有个缺点是生成后的文件较大。

因为自己试的过程中踩了些坑,所以下面也记录一下。

使用windows2012搞了半天一直报错,排查了半天发现是powershell版本的问题。换成win10搞直接就好了。

*载下**工具

工具地址: https://github.com/BC-SECURITY/Empire/blob/master/empire/server/data/module_source/credentials/Invoke-Mimikatz.ps1

更新mimikatz

工具很久没更新了,可以在github上*载下**最新版的mimikatz进行更新,mimikatz地址: https://github.com/gentilkiwi/mimikatz

py脚本:

import fileinput
import base64

with open("./mimikatz_trunk/Win32/mimikatz*ex.e**", "rb") as f:
    win32 = base64.b64encode(f.read()).decode()
with open("./mimikatz_trunk/x64/mimikatz*ex.e**", "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)

将python脚本、 Invoke-Mimikatz.ps1mimikatz_trunk放在同一目录

对狙迷你世界技巧,mimikatz免杀

启动mimikatz

powershell Import-Module .\Invoke-Mimikatz.ps1;Invoke-Mimikatz

已经是 mimikatz_trunk的版本了:

对狙迷你世界技巧,mimikatz免杀

如果觉得名字比较敏感,想要改名,打开文件,将函数名修改成想改的名字:

对狙迷你世界技巧,mimikatz免杀

然后将文件重命名,运行文件:

powershell Import-Module .\helloworld.ps1;helloworld

下面的操作还是用的原始名字进行演示。

PowerShell ISE混淆

对狙迷你世界技巧,mimikatz免杀

打开 Windows PowerShell ISE,输入Start-Steroids

对狙迷你世界技巧,mimikatz免杀

打开刚刚需要混淆的文件,工具 -> Obfuscate Code

对狙迷你世界技巧,mimikatz免杀

可以选择模式,这里使用默认的:

对狙迷你世界技巧,mimikatz免杀

生成文件后,保存。

缺点是生成后的文件较大:

对狙迷你世界技巧,mimikatz免杀

验证

静态测试

火绒

对狙迷你世界技巧,mimikatz免杀

360杀毒

对狙迷你世界技巧,mimikatz免杀

动态测试

powershell Import-Module .\Invoke-Mimikatz.ps1;Invoke-Mimikatz
privilege::debug
sekurlsa::logonPasswords

火绒

对狙迷你世界技巧,mimikatz免杀

360杀毒

对狙迷你世界技巧,mimikatz免杀

声明:本号分享的内容,仅用于网安爱好者之间的技术讨论,禁止用于违法途径,否则需自行承担后果,本号及作者不承担相应的后果.