.NET内网实战:反射实现Rundll32绕过防护

embedded/2025/1/16 1:03:04/

01阅读须知

此文所节选自小报童《.NET 内网实战攻防》专栏,主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧。

02基本介绍

本文内容部分节选自小报童《.NET 通过反射技术实现Rundll32功能绕过安全防护》,目前已有280+位朋友抢先预定,我们会长期更新!

03原理分析

在攻防对抗中,攻击者常利用 .NET 提供的反射技术,通过动态加载外部 DLL 并调用其中的任意方法,实现灵活且隐蔽的恶意代码执行。这种技术无需提前绑定目标代码,能够有效规避静态检测,同时模仿类似 rundll32.exe 的行为,进一步提高攻击链的隐匿性。比如通过加载 Sharp4Library.dll 的组件并动态调用其方法,攻击者可以轻松实现任意指令执行,为渗透测试和实际攻击提供强大的支持。

3.1 rundll32

rundll32.exe 是一个位于 Windows 系统 C:\Windows\System32 目录中的可执行文件。主要功能是通过加载C或C++编译的动态链接库中指定的函数来执行某些特定任务。在实际使用中, 以下是 rundll32.exe 基本的用法:

rundll32.exe <DLL路径>,<函数名> [参数]

比如,调用 Shell32.dll 中的 Control_RunDLL 函数打开 Windows控制面板,具体命令如下所示。

rundll32.exe shell32.dll,Control_RunDLL desk.cpl

因此,系统管理员可以通过 rundll32.exe 在脚本中执行系统相关任务,如批量管理控制面板功能。

图片

3.2 .NET反射技术

反射是 .NET 提供的一种强大功能,可以在运行时动态获取类型信息(类、方法、属性、字段等),并进行实例化、调用方法或修改字段值。.NET 中反射的核心类都位于 System.Reflection 命名空间。

.NET反射一般有以下几个步骤,首先通过 Assembly 类加载程序集,通常需要提供一个绝对的物理路径,并且使用LoadFrom或者LoadFile载入,具体代码如下所示。

using System.Reflection;
Assembly assembly = Assembly.LoadFrom("Sharp4Library.dll");
Assembly assembly = Assembly.LoadFile(@"C:\Path\To\Sharp4Library.dll");

接着,通过GetMethod、Invoke 方法进行调用,代码如下所示

MethodInfo method = type.GetMethod("Run");
method.Invoke(null, new object[] { arg1, arg2 });
object result = method.Invoke(instance, new object[] { arg1, arg2 });

3.3 实现rundll32功能

通过 .NET 的反射机制,主要实现动态加载指定路径的 DLL 文件,调用 DLL 中的指定命名空间、类和方法,并传递自定义参数,实现复杂的功能调用,具体代码如下所示。

using System;
using System.IO;
using System.Linq;
using System.Reflection;class Program
{public static void Main(string[] args){string fullPath = args[0];string namespaceName = args[1];string className = args[2];string methodName = args[3];string[] methodArgs = args.Length > 4 ? args.Skip(4).ToArray() : new string[0];StdLoad(fullPath, namespaceName, className, methodName, methodArgs);}
}

上述代码中,通过从加载的 Assembly 对象中提取所有类型的命名空间,并去重后转换为数组 var namespaces。接着,再利用反射机制调用指定类型的指定方法。

图片

通过以下命令调用上述 DLL 的功能, 执行后将弹出计算器,具体命令如下所示

 Sharp4Rundll32.exe Sharp4Library.dll Sharp4Library Class1 Run cmd.exe /c calc

图片

综上,通过 .NET 的 Assembly.LoadFile 和反射机制,可以实现动态加载和调用 DLL 的功能。这种技术不仅能够满足动态扩展和模块化开发的需求,还能在特定场景下替代 rundll32.exe 的功能。

04.NET 电子报刊

我们的小报童电子报刊【.NET内网安全攻防】也开始运营,引入小报童也是为了弥补知识星球对于轻量级阅读支持的不足,为用户读者提供更佳的阅读体验。如果您对阅读体验的需求比较高,那么可以订阅这个专栏。

本次电子报刊《.NET 内网安全攻防》专栏,内容主要有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,可细分为以下8个方向。

1) .NET 安全防御绕过
2) .NET 本地权限提升
3) .NET 内网信息收集
4) .NET 内网代理通道
5) .NET 内网横向移动
6) .NET 目标权限维持
7) .NET 数据传输外发
8) .NET 目标痕迹清理

原价899,现在限时只需59元,永久买断!目前已有280+位朋友抢先预定,我们会长期更新,初步计划保持每周更新1-2篇新内容,对.NET内网安全的朋友们请尽快订阅该报刊!

图片

 想要了解完整或者更多的内网安全方向的文章,可以移步订阅小报童《.NET 内网实战攻防》电子报刊,报刊地址:小报童 


http://www.ppmy.cn/embedded/154255.html

相关文章

npm : 无法加载文件 D:\SoftFile\npm.ps1,因为在此系统上禁止运行脚本。

这个错误是由于 Windows PowerShell 的执行策略禁止执行脚本&#xff0c;导致无法运行 npm 命令。你可以通过以下步骤来解决这个问题&#xff1a; 以管理员身份运行 PowerShell&#xff1a; 点击“开始”菜单&#xff0c;搜索“PowerShell”&#xff0c;然后右键点击“Windows …

MiniMind - 从0训练语言模型

文章目录 一、关于 MiniMind &#x1f4cc;项目包含 二、&#x1f4cc; Environment三、&#x1f4cc; Quick Start Test四、&#x1f4cc; Quick Start Train0、克隆项目代码1、环境安装2、如果你需要自己训练3、测试模型推理效果 五、&#x1f4cc; Data sources1、分词器&am…

Ubuntu Server 24.04 配置静态IP

Ubuntu Server 24.04 配置静态IP 提示&#xff1a;基于Ubuntu Server 24.04进行配置 文章目录 Ubuntu Server 24.04 配置静态IP一、查看网卡信息二、修改网卡信息三、使网卡配置生效四、测试 一、查看网卡信息 使用命令 ip a lo 为本地回环地址 ens33 真实网卡地址 shanfengubu…

Spring bean的生命周期和扩展

接AnnotationConfigApplicationContext流程看实例化的beanPostProcessor-CSDN博客&#xff0c;以具体实例看bean生命周期的一些执行阶段 bean生命周期流程 生命周期扩展处理说明实例化:createBeanInstance 构造方法&#xff0c; 如Autowired的构造方法注入依赖bean 如UserSer…

Python----Python爬虫(Scrapy的应用:CrawlSpider 使用,爬取小说,CrawlSpider版)

一、CrawlSpider 使用 1.1、CrawlSpider CrawSpiders 是 Scrapy 框架中的一个特殊爬虫类&#xff0c;它用于处理需要跟随链接并抓取多个页面的情况。相比于基本的 Spider 类&#xff0c;CrawSpiders 提供了一个更灵活、更强大的方式来定义爬取规则。 在Scrapy中Spider是所有爬…

easyui datagrid表头和网格错位问题

问题&#xff1a;表头与数据网格错位 解决&#xff1a; 在onLoadSuccess事件中调用fitColumns方法 $(this).datagrid(‘fitColumns’);

从零开始:在服务器上部署大模型并集成到 vscode +Cline使用

1. 引言 (Introduction) 欢迎来到本篇技术博客&#xff01; 在本文中&#xff0c; 我将引导你一步一步地在阿里云服务器上部署 Qwen 大模型&#xff0c;并将其集成到 Cline 插件中。 我们将从零开始&#xff0c;详细介绍每个步骤&#xff0c;确保即使是初学者也能轻松上手。 …

vue router的使用

一、引入 vue-router是Vue.js官方的路由插件&#xff0c;它和vue.js是深度集成的&#xff0c;适合用于构建单页面应用。vue的单页面应用是基于路由和组件的&#xff0c;路由用于设定访问路径&#xff0c;并将路径和组件映射起来。传统的页面应用&#xff0c;是用一些超链接来实…