目录
虽然目前有多种技术可以使恶意软件绕过反病毒检测,但这些方法并非恶意软件免杀的终极目标。真正的目标是实现“FUD”(Fully Undetectable),即使恶意软件完全不被检测到的状态。在地下网络论坛中,“FUD”是一个常用术语。
本文将通过介绍静态免杀、动态免杀和启发式免杀三种主要方法来探讨如何实现“FUD”。需要注意的是,无论采用哪种技术,保持恶意软件体积的小巧是一个关键因素。此外,文章还将深入探讨杀毒软件和Windows操作系统的内部工作机制。
为了更好地理解本文,读者应具备一定的C/C++、汇编和PE文件结构的相关知识。
反杀软检测技术介绍
每种类型的恶意软件都采用不同的反检测技术,包括病毒、木马、僵尸程序、流氓软件、勒索软件、广告程序等。本文将重点介绍在stager阶段使用的meterpreter这种有效载荷的工具,因为几乎所有恶意软件的攻击命令执行都依赖于meterpreter。例如提权、凭证窃取、进程迁移、注册表操作等。Metasploit Framework作为一个漏洞利用和测试平台,集成了多种平台上的溢出漏洞和流行的shellcode,并持续更新,使得缓冲区溢出测试变得方便简单。
专业术语解析
1. 基于签名的检测:
传统杀毒软件大量依赖签名来识别恶意软件。通过分析采集的恶意软件样本,提取恶意文件的特征码并加入签名数据库。
2. 静态程序分析:
不运行程序的情况下进行分析,主要针对特定版本的源代码或目标代码。
3. 动态程序分析:
通过在真实或虚拟处理器上执行程序进行分析。
4. 沙盒分析技术:
为不可信或具破坏性的程序提供试验环境。
5. 启发式分析:
设计用于检测未知的计算机病毒,包括多标准分析(MCA)等方法。
6. 信息熵检测:
通过对比恶意软件的属性,找到最合适的量度。
7. 其他常见检测技术:
包括混淆检测、加壳检测和加密检测等。
分类和标准
分类
静态免杀:通过修改恶意软件的静态特征(如签名、哈希值)来避免检测。
动态免杀:修改恶意软件的行为,如通过加密、混淆或使用Rootkit技术。
标准
在进行免杀研究时,遵守法律法规,确保研究活动合法、合规。
尊重隐私和数据保护原则,避免非授权测试。
加密与加壳技术的深度分析
随着杀毒软件技术的提高,对加密与加壳技术的检测已变得相对容易。本文将深入分析这些技术,并探讨如何在不被检测的情况下执行PE映像。特别是“地址空间布局随机化(ASLR)”和PE文件的加载过程,以及通过模仿系统加载器的行为进行分析。
免杀方法的完善
要实现恶意软件的“FUD”,加密恶意代码是一个有效的策略。关键在于:
在解密时进行代码混淆。
保证解密过程中不重定位绝对地址。
避免在沙箱环境中运行恶意软件。
只对shellcode或PE文件的.text部分进行加密。
启发式引擎对抗策略
启发式引擎是杀软产品的核心部分,针对未知病毒的检测。由于启发式引擎基于不同的判断规则和行为分析,我们需要总结出常见的判断标准来规避检测。
解密Shellcode的技巧
混淆解密机制是实现免杀的重要手段。我们需要使用xor加密和其他加密技术,同时避免被启发式引擎检测到解密循环。
免杀书籍推荐
1. 《黑客免杀攻防》
作者:任晓珲
内容简介:该书共20章,分为三大部分。基础篇详细介绍了黑客免杀技术的初级技巧,如查找(修改)特征码、常见特征码绕过技巧、壳在免杀中的应用等。高级篇深入讲解了PE文件、逆向工程、C++壳的编写、免杀壳的打造、脱壳、Rootkit等常用安全技术的原理和细节。
2. 《黑客免杀入门》
作者:a1pass
虽然本文已经介绍了多种免杀方法,但还有更多未被涉及。编写免杀的恶意软件需要综合考虑各种因素,如堆栈保护、文件大小、编译选项等,以提高逃避检测的几率。
网安入门线路图