如何通过PowerShell在Active Directory中为Everyone组添加主机写入权限?
为域对象添加Everyone组写入权限(Shadow Credentials实验配置)
步骤1:获取域对象的ACL
首先通过PowerShell获取当前域的Distinguished Name(DN),并加载域对象的访问控制列表(ACL):
# 获取域的DN $domainDN = (Get-ADDomain).DistinguishedName # 加载域对象的ACL $domainAcl = Get-Acl "AD:\$domainDN"
步骤2:创建Everyone组的写入权限规则
构建允许Everyone组对域对象进行写入操作的访问规则:
# 获取Everyone组的SID $everyoneSid = New-Object System.Security.Principal.SecurityIdentifier([System.Security.Principal.WellKnownSidType]::WorldSid, $null) # 创建AD权限规则(允许写入属性) $accessRule = New-Object System.DirectoryServices.ActiveDirectoryAccessRule( $everyoneSid, [System.DirectoryServices.ActiveDirectoryRights]::WriteProperty, [System.Security.AccessControl.AccessControlType]::Allow, [System.DirectoryServices.ActiveDirectorySecurityInheritance]::None )
注:如果需要更宽泛的写入权限(比如修改域对象的所有属性),可以将
WriteProperty替换为Write。
步骤3:应用权限规则到域对象
将新建的权限规则添加到ACL中,然后通过Set-Acl命令生效:
# 添加权限规则到ACL $domainAcl.AddAccessRule($accessRule) # 应用更新后的ACL到域对象 Set-Acl -Path "AD:\$domainDN" -AclObject $domainAcl
图形界面验证/手动配置方法
如果在域属性的安全选项卡中看不到直接的权限选项,可以按以下操作:
- 打开AD用户和计算机,右键点击当前域,选择「属性」
- 切换到「安全」选项卡,点击「高级」按钮
- 在「权限」列表中点击「添加」,选择Everyone组,然后勾选对应的写入权限即可
⚠️ 重要提醒:该配置仅用于实验环境,测试完成后务必立即移除Everyone组的写入权限,避免被攻击者利用。
内容的提问来源于stack exchange,提问作者Gal Dadoun
相关产品推荐
相关产品推荐

