在红队活动中,权限维持是关键阶段之一。利用 .NET 提供的应用程序域管理功能,攻击者可以通过自定义 AppDomainManager 注入后门逻辑,并利用目标系统中的现有 .NET 可执行文件触发后门。本篇文章将结合实战,介绍如何利用 appDomainManagerType 和 appDomainManagerAssembly 配置选项,在目标系统上执行任意命令。
01权限维持原理实现概述
.NET 的配置文件支持自定义 AppDomainManager,允许攻击者指定程序集和类来扩展或修改应用程序域的行为。通过在目标程序的 .config 文件中注入自定义配置并提供对应的恶意 DLL,当目标程序启动时,CLR 会加载并执行自定义 AppDomainManager 中的逻辑。
1.1 包含自定义名称
在此攻击中,攻击者通过appDomainManagerAssembly,指定包含自定义的程序集名称,具体语法如下所示。
<configuration>
<runtime>
<appDomainManagerAssembly>AssemblyName</appDomainManagerAssembly>
</runtime>
</configuration>
AssemblyName:程序集的名称(不包括扩展名 .dll),即包含自定义 AppDomainManager 类的程序集。实战中会指向同目录下的自定义DLL文件,比如