本文分享一种通过Patch白文件实现免杀(BypassAV)的思路。该方法没有引入额外的免杀手法,因此失效可能较快。你可以根据提供的shellcode模板,自行创建新版本以应对查杀策略的更新。
请注意,本工具及方法仅限用于合法的渗透测试与安全研究,请勿用于任何违法行为,使用者需对自身行为承担全部责任。
使用方法
整个流程分为三步:转换、加密、执行。
-
生成Shellcode:使用 donut 工具将后渗透工具(如mimikatz.exe)转换为shellcode。
命令示例:
donut.exe -i mimikatz.exe -o 123.bin
-
加密Shellcode:使用 sgn 工具对生成的shellcode进行加密,以进一步规避静态特征检测。
命令示例:
sgn.exe -i 123.bin -o work.bin
最终加密后的文件命名为 work.bin。
-
执行:将上一步得到的 work.bin 文件,与从项目release中下载的二进制程序放在同一目录下,直接运行该二进制程序即可。
重要提示:用于转换的原始exe文件不能经过加密或加壳处理。例如,fscan 的官方release版本通常经过处理,无法直接转换为有效的shellcode。
效果测试
为了验证该方法的实际效果,我们在安装了主流杀毒软件的环境下进行了测试。下图展示了加密后的loader程序在同时运行的情况下,未被相关安全软件拦截。

(测试环境:工具运行于命令行,同时360杀毒与安全卫士处于正常防护状态)

(测试环境:火绒安全软件显示实时保护中,命令行程序正常执行)

(测试环境:Windows Defender病毒和威胁防护处于活动状态,未对程序产生警报)

(测试环境:Kaspersky Endpoint Security监控界面,未报告活动威胁)
此外,我们将生成的关键文件提交至 VirusTotal 进行多引擎扫描,所有参与扫描的安全厂商均未将其标记为恶意软件。

(VirusTotal扫描结果:0/72的检测率,文件被标记为Undetected)
技术参考与项目地址
这种利用合法程序(白文件)的内存空间加载执行加密shellcode的思路,在安全研究领域已有不少讨论。以下是部分相关的技术文章和开源项目参考,可供深入学习和二次开发:
本文所述的实践代码与编译好的二进制文件,可在以下项目地址获取:
对于免杀技术和逆向工程的持续探索,是推动防御体系演进的重要一环。欢迎在专业的开发者社区交流更多实战经验与底层原理。
|