Sharp4XOMLLoader.exe是一款用于执行嵌入在XOML中.NET代码的工具。由于该程序自带微软的数字签名,能够有效的绕过杀毒软件的监控,执行潜在的恶意代码,同时,该技术利用了XOML的合法性以及系统中对白名单程序的高度信任,使得恶意代码的执行更加隐蔽,难以被检测和阻止。
XOML文件是一种基于XML的文件格式,专用于定义和描述 WF 中的工作流程。通过XOML文件,可以指定WF工作流的结构、活动及其行为,而无需在.cs文件中编写大量的代码。通常一个典型的XOML文件和WPF里的XAML文件基本一致,以下是一段XOML文件的示例代码,主要展示了一个简单的顺序工作流程。包括以下几个主要部分。
<SequentialWorkflowActivity x:Class="MyWorkflow" x:Name="foobarx" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/workflow"><SequentialWorkflowActivity Enabled="False"></SequentialWorkflowActivity></SequentialWorkflowActivity>
SequentialWorkflowActivity是.NET早期的版本中XOML文件的根元素,定义了一个顺序工作流程。顺序工作流程意味着各个活动将按照它们在文件中的顺序依次执行。
x:Class属性指定了工作流程的类名:MyWorkflow,x:Name属性为工作流程实例指定了一个名称叫foobarx。xmlns 和 xmlns:x 用于声明XAML和工作流程相关的命名空间,这是为了确保XOML文件中的元素和属性能够正确地映射到.NET Framework中的类型和成员。
值得一提的是,XOML文件通过xml<x:Code>
标签,可以在XOML文件中直接嵌入.NET代码,从而在工作流程执行过程中启动winver.exe进程。具体如下所示。
<x:Code>Object test = System.Diagnostics.Process.Start("cmd.exe","/c winver");</x:Code>
因为程序自带微软签名,如果把winver.exe换成启动恶意木马的进程,通过该工具能够绕过反病毒软件的监控,执行恶意代码。
Sharp4XOMLLoader.exe便是这样一款执行 XOML中的 Shellcode 的工具。因为程序自带微软签名,因此通过该工具能够绕过反病毒软件的监控,执行恶意代码。
2.1 工具用法
Sharp4XOMLLoader.exe /debug:- Shellcode.xoml
当 Sharp4XOMLLoader.exe 编译 XOML 文件时,依赖于内部的编译器组件和多个辅助类来完成整个编译流程。这些组件和方法共同作用,最终将 XOML 文件编译成可执行的 .NET 程序集。打开dnspy.exe,在调试参数处输入 1.xoml
AppDomain.CreateInstanceAndUnwrap 方法在独立的 AppDomain 中创建 WorkflowCompilerInternal 的对象。这种方法可以隔离编译过程,确保编译操作不会影响其他应用程序域的状态。
其实,workflowCompilerInternal.Compile 方法是实际执行编译的核心步骤,parameters 包含了编译所需的配置和选项,files 则是待编译的 XOML 文件。随后,通过GenerateLocalAssembly方法编译生成了一个临时的dll文件,通常路径位于:
@C:UsersUserAppDataLocalTempoi0a1mun1.dll
接着,XomlCompilerHelper.InternalCompileFromDomBatch 方法被调用,用于处理 XOML 文件的具体编译,如下图所示。
最终,Sharp4XOMLLoader.exe 经过一系列的方法调用触发命令执行,从而启动winver.exe进程。如下图所示。
从漏洞分析到安全攻防,我们涵盖了 .NET 安全各个关键方面,为您呈现最新、最全面的 .NET 安全知识,下面是公众号发布的精华文章集合,推荐大伙阅读!
20+专栏文章
海量资源和工具
专属成员交流群
已入驻的大咖们
欢迎加入我们
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...