在红队攻防演练中,安全产品对传统.NET加载行为的监控越来越精准,任何携带可识别特征的.NET程序集都容易触发防护机制。为了提升载荷的隐蔽性,红队常常尝试将恶意代码藏在看似无害的载体中进行传输与执行。Sharp4ExecImage 正是一款针对这一需求开发的工具,原理上将.NET程序集的 IL 字节流隐写在一张 PNG 图片中,形成图片即代码的攻击载体,从而达到绕过检测的目的。
Sharp4ExecImage.exe 是一款专为红队开发的 .NET 图像隐写工具,支持将已编译的 .NET 程序集 DLL 文件写入 PNG 图片像素中。合成后的 PNG 图像表面看起来与原图毫无差异,实际上却藏有可执行逻辑,能在目标系统上恢复并执行 DLL 中的恶意代码。
相比传统的加载器或反射调用方式,Sharp4ExecImage 具备最终生成的 PNG 文件中无明显 .NET 字节码,可绕过传统杀软和 YARA 特征规则;可使用任意正常图片为基础图像,具有较强的社工诱导能力。
2.1 准备阶段
首先,需要准备一个包含执行逻辑的 .NET 程序集,例如我们编写如下代码,功能为启动 winver.exe
:
using System.Diagnostics;public class MyClass{public static void Run(){ Process.Start("winver");}}
将该类编译为 test.dll
,确保其中有一个可以直接调用的 public static void Run()
方法。
2.2 隐写生成
接着,使用命令行运行Sharp4ExecImage.exe,具体的命令如下所示。
Sharp4ExecImage.exe test.dll iisstart.png iisstart1.png
test.dll 表示包含恶意逻辑的 .NET 程序集,iisstart.png 用作载体的原始图片,iisstart1.png 输出的隐写图像,这里是携带 DLL 的图像。生成完成后,iisstart1.png
仍是一张图片文件,肉眼无法识别其与原图的区别,但它已经包含了 test.dll
的全部内容,如下图所示。
为了在目标主机上恢复并执行该 DLL,通常搭配另一段专门编写的恢复加载器,执行的结果如下图所示。
在实战中,Sharp4ExecImage 适用于以下几类任务:绕过白名单执行限制:使用图像格式传输 payload,可绕过仅允许图像格式上传的文件系统;规避杀软查杀机制:传统杀软或 EDR 针对 PE 文件、DLL 文件较为敏感,而图片格式的分析较弱。
2.3 小结
Sharp4ExecImage 展现了红队在信息隐写与绕过技术上的进一步演进。是一个高隐蔽性 payload 嵌套方案,可作为恶意代码交付链中的一环,为红队提供更灵活、更隐蔽的攻击载体。文章涉及的工具已打包在星球,感兴趣的朋友可以加入自取。
以上相关的知识点已收录于新书《.NET安全攻防指南》,全书共计25章,总计1010页,分为上下册,横跨.NET Web代码审计与红队渗透两大领域。
上册深入剖析.NET Web安全审计的核心技术,帮助读者掌握漏洞发现与修复的精髓;下册则聚焦于.NET逆向工程与攻防对抗的实战技巧,揭秘最新的对抗策略与技术方法。
从漏洞分析到安全攻防,我们涵盖了 .NET 安全各个关键方面,为您呈现最新、最全面的 .NET 安全知识,下面是公众号发布的精华文章集合,推荐大伙阅读!
20+专栏文章
海量资源和工具
专属成员交流群
已入驻的大咖们
欢迎加入我们
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...