免杀原理与实践
基础问题回答
Q1:杀软是如何检测出恶意代码的?
(1)基于特征码的检测
- 特征码是一段或多段数据,如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。
- AV软件厂商要做的就是尽量搜集最全的、最新的特征码库。所以杀毒软件的更新很重要。过时的特征码库就是没有用的库。
- 恶意软件的检测,并不是比对整个文件,而只能只其中一个或几个片断作为识别依据。
- 特征库举例——SNORT
(2)启发式恶意软件检测
- 根据片面特征去推断(看起来像),通常缺乏精确判断依据
- 不需要及时更新,具有通用型;但实时监控系统行为开销稍大,没有基于特征码的精确度高
(3)基于行为的恶意软件检测
- 基于行为的检测相当于启发式的一种,或者是加入了行为监控的启发式
- 让软件运行,记录其行为并分析(杀软的工作原理)
Q2: 免杀是做什么?
- 使用一些手段,免杀就是让安插在被控机器的恶意代码不被杀毒软件软件发现。
Q3:免杀的基本方法有哪些?
(1)改变特征码(改变机器指令)
- 有EXE——加壳:压缩壳、加密壳
- 有shellcode(像Meterpreter)——用encode进行编码、基于playload重新编译生成可执行文件
- 有源代码——用其他语言进行重写再编译(veil-evasion)
(2)改变行为
- 通讯方式:尽量使用反弹式连接、使用隧道技术、加密通讯数据
- 操作模式:基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码
实验过程
任务一:正确使用msf编码器、msfvenom生成如jar之类的其他文件
(一)免杀检测
在实验二中使用msf生成了后门程序20201229_backdoor.exe,可以使用https://www.virustotal.com对生成的后门程序进行扫描。