红队在HVV中一般使用钓鱼实现突破边界,蓝队通过钓鱼实现溯源反制,但是都离不开一个好的免杀马,这里分享一下自己的免杀过程,过火绒、360杀毒、windows defender以及赛门铁克等主流杀软都没问题。
杀软的查杀方式有多种,比如特征识别,是基于各个厂商收集的病毒样本,依据病毒样本提取的病毒特征,所以杀软的能力在一定程度上也取决于病毒库的大小,这种基于特征识别一般是基于静态。启发式的工作原理基本上可以定义为动态查杀或者是机器学习方法的一种查杀手段,会依据可能执行程序或者关注应用系统重要区域行为而做出的查杀行为。
修改特征码,可以根据污点检测的方式定位到触发杀软规则的病毒样本特征,修改明显的特征在一定程度上是可以实现免杀的。
花指令免杀,在程序 shellcode
或特征代码区域增添垃圾指令,增加的垃圾指令不会影响文件执行,在动态查杀或者文件hash对比是校验会不一致。
加壳,比如upx加壳等,一般文件落地后对比哈希值也可绕过杀软。
二次编译,一般用于对shellcode
进行二次编译bypass杀软。
poweshell免杀,但是一般防护软件或者系统本身正常调用powershell应用程序的时候都会产生告警,一般的安全设备是过不了的,需要在命令上使用手段绕过安全设备监测。
CS生成payload
添加监听器,生成payload
下载go-strip.exe
,混淆二进制go编译信息
下载地址
https://cdn.githubjs.cf/boy-hack/go-strip/releases/download/v3.0/go-strip_0.3.4_windows_amd64.zip
运行脚本bypass
go run main.go
核心内容就是加密方式
shellcode
二层加密。
这里没有直接放源码,因为担心样本被打标签,这里推荐几个项目,这里的话尽量使用go不建议python
https://github.com/TideSec/BypassAntiVirus
这里我修改了生成的exe。安装火绒,查杀
CS上线
另外再加壳测试。地址
简单的压缩壳
upx.exe -f Go_bypass.exe
加壳后生辰的exe文件大小为406KB
可以看到加壳之前的文件大小为1011kb
修改加壳后的文件名为upx_Go_bypass
方便确认上线状态
成功上线,继续查看加壳后的免杀效果
此时火绒对于有加壳前和加壳后的文件都未报毒
虽然加壳前的报毒了,但是加壳后的未报毒。
赛门铁克也未报毒,其它杀软不放图了。但是需要注意的是别使用云沙箱检测。
多测试总会有新发现,实践起来相对稍微容易一点儿,不过需要注意免杀之后的效果是最重要的。