CobaltStrike免杀
本篇文章主要介绍关于Cobaltstrike免杀的部分方式,可能有一些现在并不能bypass AV,但可以给我们提供更多的bypass AV思路。实际bypass AV中,不止要绕过终端机器,还要绕过一些流量检测设备。首先,就终端层面,介绍免杀的一些方式。杀软的基本功能包括:反病毒内核、扫描引擎、特征库、解包程序、模拟器、流量监控、浏览器安全插件、自我保护及更新等。杀软在驱动层面,也会对进程、线程、模块、对象及注册表均进行了相应的监控操作。
veil免杀
1、生成payload
2、veil免杀
在veil中选择Evasion逃逸
use 17使用go语言模块,输入generate选择3进行自定义payload
进行静态查杀,没能过360和火绒,这种生成的木马已经加入病毒库,后面组合进行测试。
修改特征码
常用的特征码修改的方法有(1)16进制差1 (2)大小写转换 (3)相同命令替换 (4)特征码移位 (5)通用跳转等
16进制差1
修改方法:把特征码所对应的十六进制改成数字差1或差不多的十六进制。
适用范围:一定要精确定位特征码所对应的十六进制,修改后一定要测试一下能否正常使用。
大小写转换
修改方法:把特征码所对应的内容是字符串的,只要把大小字母互换一下就可以了。
适用范围:特征码所对应的内容必需是字符串,否则不能成功。
相同命令替换
修改方法:把特征码所对应的汇编指令命令中替换成功能类拟的指令。
适用范围:特征码中必需有可以替换的汇编指令.比如JN,JNE 换成JMP等.如果和我一样对汇编不怎们精通的可以去查查8080汇编手册。
1、用到工具:特征码定位器,OllyDbg
2、特点:操作较复杂,要定位修改一系列过程,而且只针对每种杀毒软件的免杀,要达到多种杀毒软件的免杀,必需修改各种杀毒软件的特征码.但免杀效果好。
3、操作要点:对某种杀毒软件的特征码的定位到修改一系列慢长过程。
特征码移位
修改方法:将这处特征码移到别的地方或者将相邻两个命令替换,把具有特征码的代码顺序互换一下,然后可能还要通过工具修改文件,来定位到这个特征码。
适用范围:具有一定的局限性,代码互换后要不能影响程序的正常执行。
通用跳转
修改方法:把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行。
适用范围:没有什么条件,是通用的改法,强烈建议大家要掌握这种改法。
其他修改
1、修改证书
使用java数据证书的管理工具Keytool,找到.store后缀的文件并删除,然后修改证书信息:
keytool -keystore cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias baidu.com -dname "CN=US, OU=”baidu.com“, O=“Sofatest”, L=Beijing, ST=Cyberspace, C=CN"
shellcode和加载器(pyminifier混淆后)经base64编码后,放远程服务器,进行钓鱼。
2、修改默认端口
在teamserver中,找到server_port,将默认端口50050修改为其他端口
3、修改关于木马的信息,例如签名等信息
花指令免杀
花指令免杀实质上就是在不改变木马效果上进行资源替换。常见的花指令方式如下:
1.加数据计算代码,加减乘除各类组合;
2.加字符串操作代码,增加、删除、查找、替换等;
3.加多层跳转,跳转间加无效指令(不会执行的);
4.加貌似有效的 API 调用,如 LoadLibrary+GetProcAddr+API 等。
OD打开生成的木马程序,找到零区域,把备好的花指令填进去。填好后又跳回到入口点,保存好后,再用PEditor把入口点改成零区域处填入花指令的着地址。
加壳免杀
加壳简单理解为:解密器 / 解压器 + 加密器 / 压缩器(原始代码)
加冷门壳
热门壳现在被分析的差不多了,杀软一般都能直接查杀或者自动脱完壳再查杀。冷门壳,壳特征未被分析,不能自动脱壳,可以更好隐藏原始代码,得到免杀效果。
加壳改壳
将常用壳进行修改,让壳特征变化,也可以使杀软失效,比如修改入口,区段信息修改,入口代码移位,可以类比为免杀壳。
加多层壳
为了达到更好的免杀效果可采用多重加壳。
加伪装壳
加壳后再加伪装壳的免杀效果更佳。
内存免杀
修改内存特征码
具体方式同前面特征码修改的方式
修改壳入口
首先给木马加压缩壳,接着载入OllyDebug,在入口处的前15句中NOP掉某些代码或者等价代换某些代码。
工具处理
HanzoInjection下载地址:https://github.com/P0cL4bs/hanzoInjection
hanzoinjection是一个工具,它专注于在内存中注入任意代码,以绕过常见的防病毒解决方案。
生成payload
使用HanzoInjection进行处理
HanzoInjection.exe -e payload.bin
加密流量实现免杀
资源修改
混淆
GO混淆工具go-strip:https://github.com/boy-hack/go-strip/releases
JS加载shellcode,将shellcode放到加密网站进行加密,即可bypassAV
加资源
使用Invoke-PSImage工具,Invoke-PSImage可以将一个PowerShell脚本中的字节嵌入到PNG图像文件的像素之中,并生成一行执行命令来帮助我们从文件或Web(传递-Web标记)执行它们。它会利用图片中每个像素点最后4位有效位的2个颜色值来存储Payload数据,虽然图片质量会受到影响,但是一般来说是看不出来有多大区别的。图片需要存储为PNG格式,由于Payload数据存储在颜色值中,因此这种格式可以进行无损压缩并且不会影响到Payload的执行。它可以接受目前绝大多数的图片类型作为输入,但输出必须为PNG格式,因为输出的图片数据需要是无损的。图片的每一个像素都需要存储脚本的一个字节,所以你需要根据脚本中的字节数据大小来选择图片(尽可能多的像素点)。例如,Invoke-Mimikatz需要一张1920×1200的图片来存储。
工具的下载地址:https://github.com/peewpw/Invoke-PSImage
工具处理
1、使用CobaltStrike插件BypassAV进行免杀
2、利用python生成exe文件的方式,将python shellcode生成exe文件,达到bypass AV。
工具:https://github.com/pyinstaller/pyinstaller/releases
资源替换
使用 ResHacker 替换无用的资源(Version 等)。
签名伪造
使用签名伪造工具,将正常软件的签名复制到木马软件中。
还有很多工具也可以辅助我们进行免杀,例如:msf自带的evasion模块、backdoor-factory等工具。这篇文章重点介绍CobaltStrike生成木马或shellcode的一些免杀方式,后续在免杀板块深入进行免杀。