接二连三,通过 .NET AppDomain 注入后门实现权限维持
2025-1-10 00:20:0 Author: mp.weixin.qq.com(查看原文) 阅读量:1 收藏


在红队活动中,权限维持是关键阶段之一。利用 .NET 提供的应用程序域管理功能,攻击者可以通过自定义 AppDomainManager 注入后门逻辑,并利用目标系统中的现有 .NET 可执行文件触发后门。本篇文章将结合实战,介绍如何利用 appDomainManagerTypeappDomainManagerAssembly 配置选项,在目标系统上执行任意命令

01
权限维持原理实现概述

.NET 的配置文件支持自定义 AppDomainManager,允许攻击者指定程序集和类来扩展或修改应用程序域的行为。通过在目标程序的 .config 文件中注入自定义配置并提供对应的恶意 DLL,当目标程序启动时,CLR 会加载并执行自定义 AppDomainManager 中的逻辑。

1.1 包含自定义名称

在此攻击中,攻击者通过appDomainManagerAssembly,指定包含自定义的程序集名称,具体语法如下所示。

<configuration>
<runtime>
<appDomainManagerAssembly>AssemblyName</appDomainManagerAssembly>
</runtime>
</configuration>

AssemblyName:程序集的名称(不包括扩展名 .dll),即包含自定义 AppDomainManager 类的程序集。实战中会指向同目录下的自定义DLL文件,比如:Sharp4AppDomainManagerDLL

<runtime>
<appDomainManagerAssembly value="Sharp4AppDomainManagerDLL" />
</runtime>
1.2 指定自定义类型

在此攻击中,攻击者通过appDomainManagerType 指定自定义的 AppDomainManager 类的完整限定名称(包括命名空间),语法如下所示。

<configuration>
<runtime>
<appDomainManagerType>Namespace.CustomAppDomainManager</appDomainManagerType>
</runtime>
</configuration>
此处,CustomAppDomainManager:表示 AppDomainManager 类的全限定名称,包含命名空间和类名。
1.3 实现自定义的DLL

创建自定义 AppDomainManager 类 必须继承自 AppDomainManager 类,并可以重写其方法来自定义行为。例如:

using System;

namespace MyNamespace
{
public class CustomAppDomainManager : AppDomainManager
{
public override void InitializeNewDomain(AppDomainSetup appDomainInfo)
{
base.InitializeNewDomain(appDomainInfo);
Console.WriteLine("Custom AppDomainManager initialized.");
}
}
}

将上述代码编译为 CustomAppDomainManagerAssembly.dll,在应用程序的 .config 文件中,按照前述的方式设置 appDomainManagerAssembly 和 appDomainManagerType。

02
工具实现和实战操作步骤

实战中以  powershell_ise.exe 为例,在同级目录新建.config文件,然后添加如下配置。

<?xml version="1.0" encoding="utf-8" ?> 
<configuration>
<runtime>
<appDomainManagerType value="AppDomainManagerDLL.Sharp4AppDomainManagerDLL" />
<appDomainManagerAssembly value="Sharp4AppDomainManagerDLL" />
</runtime>
</configuration>

接着,Sharp4AppDomainManagerDLL文件复制到同级目录中,再向 cmd2base64.txt 注入载荷,内容为 Y2FsYw==,对应 calc 的 Base64 编码。

当运行 powershell_ise.exe ,会触发自定义 AppDomainManager 加载并执行后门逻辑,相关星球主题如下所示。

综上通过 .NET 的自定义应用程序域管理功能,攻击者可以利用目标系统中的 .NET 可执行程序轻松实现后门注入和命令执行。本文所述方法不仅技术门槛低,而且具有高度隐蔽性。在红队活动中,此方法为权限维持提供了一种高效而隐蔽的手段,同时也提醒安全团队加强对 .config 文件的监控与防护,文章涉及的工具已打包在星球,感兴趣的朋友可以加入自取。

03
公众号安全技术精华内容

从漏洞分析到安全攻防,我们涵盖了 .NET 安全各个关键方面,为您呈现最新、最全面的 .NET 安全知识,下面是公众号发布的精华文章集合,推荐大伙阅读!




04
欢迎加入.NET 安全矩阵星球
4.1 .NET 安全社区
目前dot.Net安全矩阵星球已成为中国.NET安全领域最知名、最专业的技术知识库之一,超 1200+ 成员一起互动学习。星球主题数量近 600+,精华主题 230+,PDF文档和压缩包 300+ 。从Web应用到PC端软件应用,无论您是初学者还是经验丰富的开发人员,都能在这里找到对应的实战指南和最佳实践。

4.2 20+个专栏文章

星球文化始终认为授人以鱼不如授人以渔!星球整理出 20+ 个专题栏目涵盖 .NET安全 点、线、面、体等知识范围,助力师傅们实战攻防!其中主题包括.NET  内网攻防、漏洞分析、内存马、代码审计、预编译、反序列化、WebShell免杀、命令执行、工具库等等。

4.3 星球海量的工具

截至当前,dot.Net安全矩阵星球社区汇聚了 600+ 个实用工具和高质量PDF学习资料。这些资源涵盖了攻防对抗的各个方面,在实战中能够发挥显著作用,为对抗突破提供强有力的支持。

4.4 星球专属成员群

我们还有多个成员专属的内部星球陪伴群,加入的成员可以通过在群里提出问题或参与论的方式来与其他成员交流思想和经验。此外还可以通过星球或者微信群私聊向我们进行提问,以获取帮助迅速解决问题。

4.5 入驻星球的大咖们

星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。

4.6 欢迎加入我们

dotNet安全矩阵星球从创建以来一直聚焦于.NET领域的安全攻防技术,定位于高质量安全攻防星球社区,也得到了许多师傅们的支持和信任,通过星球深度连接入圈的师傅们,一起推动.NET安全高质量的向前发展。星球门票后期价格随着内容和质量的不断沉淀会适当提高,因此越早加入越好! 


文章来源: https://mp.weixin.qq.com/s?__biz=MzUyOTc3NTQ5MA==&mid=2247498124&idx=1&sn=34076b04cb96fa929b7d8a8cbae565cc&chksm=fa595761cd2ede7736fb0ecec4ef46c342c1320893e64801929a44e06a7d4c2b387f41f899a1&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh