Get all sids, all computer object ACLs, and find RBCD!!!

December 18, 2019 · View on GitHub

usersid=getdomainuserselectexpobjectsid;"GotuserSIDS";usersid = get-domainuser | select -exp objectsid; "Got user SIDS"; computeracls = Get-DomainComputer | select -exp dnshostname | get-domainobjectacl; "Got computer ACLs"; "Search through acls for RBCD..."; foreach (aclinacl in computeracls) { foreach(sidinsid in usersid) { acl | ?{.SecurityIdentifier -eq sidand(sid -and (.ActiveDirectoryRights -Like 'GenericAll' -or .ActiveDirectoryRightsLikeGenericWriteor_.ActiveDirectoryRights -Like '*GenericWrite*' -or _.ActiveDirectoryRights -Like 'WriteOwner')} } }

Get all SIDS, all computer object ACLs, and find RBCD

groupsid=groupsid = groups = Get-DomainGroup | Where-Object {.SamAccountNamene"DomainAdmins"and_.SamAccountName -ne "Domain Admins" -and .SamAccountName -ne "Account Operators" -and .SamAccountNamene"EnterpriseAdmins"and_.SamAccountName -ne "Enterprise Admins" -and .SamAccountName -ne "Administrators" -and .SamAccountNamene"DnsAdmins"and_.SamAccountName -ne "DnsAdmins" -and .SamAccountName -ne "Schema Admins" -and .SamAccountNamene"KeyAdmins"and_.SamAccountName -ne "Key Admins" -and .SamAccountName -ne "Enterprise Key Admins" -and _.SamAccountName -ne "Storage Replica Administrators"} | select -exp objectsid; "Got group SIDS"; computeracls = Get-DomainComputer | select -exp dnshostname | get-domainobjectacl; "Got computer ACLs"; "Search through acls for RBCD..."; foreach (aclinacl in computeracls) { foreach(sidinsid in groupsid) { acl | ?{.SecurityIdentifier -eq sidand(sid -and (.ActiveDirectoryRights -Like 'GenericAll' -or .ActiveDirectoryRightsLikeGenericWriteor_.ActiveDirectoryRights -Like '*GenericWrite*' -or _.ActiveDirectoryRights -Like 'WriteOwner')} } }

Get all computer object SIDS, all computer object ACLs, and find RBCD

computersid=getdomaincomputerselectexpobjectsid;"GotcomputerSIDS";computersid = get-domaincomputer | select -exp objectsid; "Got computer SIDS"; computeracls = Get-DomainComputer | select -exp dnshostname | get-domainobjectacl; "Got computer ACLs"; "Search through acls for RBCD..."; foreach (aclinacl in computeracls) { foreach(sidinsid in computersid) { acl | ?{.SecurityIdentifier -eq sidand(sid -and(.ActiveDirectoryRights -Like 'GenericAll' -or .ActiveDirectoryRightsLikeGenericWriteor_.ActiveDirectoryRights -Like '*GenericWrite*' -or _.ActiveDirectoryRights -Like 'WriteOwner')} } }