Exchange AD Split Permissions utan ånger
Även organisationer som helt har migrerat sina postlådor till molnet kör ofta fortfarande Exchange-servrar on-premises, och med dem en underskattad säkerhetsrisk för Active Directory. Modellen "AD Split Permissions" fråntar Exchange de breda AD-behörigheter som angripare kan utnyttja för att kompromettera hela domänen. Hittills har införandet till stor del misslyckats på grund av de processförändringar det tvingar på administratörer. Den här artikeln visar hur du elegant tar dig förbi just det hindret: ett skript som selektivt återtilldelar de förlorade AD-behörigheterna enbart på de relevanta OU:erna, bevarar det välkända admin-arbetsflödet och ändå uppnår hela säkerhetsvinsten.
TLDR: tänk om vi tar bort nackdelarna?
Jag hittade ett sätt att återtilldela AD- och RBAC-behörigheter direkt där Exchange-användare, grupper och kontakter ligger, utan att kräva några ändringar för administratörer eller identity management-system. Enligt min erfarenhet har just den friktionen varit det främsta hindret för de flesta företag. Och vi behåller ändå säkerhetsvinsterna mot lateral förflyttning och kompromettering av domänen.

Det görs i tre steg:
- Implementera modellen AD split permissions
- Ge Exchange-servrarna de förlorade AD-behörigheterna, men bara på de relevanta OU:erna
- Tilldela Exchange RBAC för att återaktivera saknade PowerShell-cmdlets
Allt via Microsofts vägledning, AD-ACL:er eller Exchange RBAC-tilldelningar.
Varför bryr vi oss (nu)?
Den har till stor del förbisetts eller ignorerats sedan den introducerades med Exchange 2010 SP1. Men standardmodellen med delade behörigheter (shared permissions) utgör en stor säkerhetsrisk för övertagande av Active Directory. Kombinerat med att Exchange varit ökänt för fjärrexploits de senaste åren är det dags att agera.
Problemet härrör från behörigheter som tilldelas domänens rot och som ärvs genom hela domänen.
- ändra behörigheter på användare och grupper (i praktiken full åtkomst)
- ändra gruppmedlemmar
- återställa lösenord på användare
- skapa/ta bort användare och grupper

Endast vissa högprivilegierade Tier 0-användare och grupper skyddas av AdminSDHolder-processen (attributet admincount=1), och i många miljöer finns oskyddade användare eller grupper som kan möjliggöra kompromettering av domänen och/eller skogen, eller åtminstone orsaka allvarlig påverkan.
Framträdande exempel:
- Entra Connect Sync-konto vid användning av Password Hash Sync
- Standardgrupper
- Allowed RODC Password Replication Group tillsammans med Entra Connect-konto (om en riktig Windows-RODC finns)
- Se även Untrustworthy Trust Builders: Account Operators Replicating Trust Attack (AORTA) - SpecterOps som visar fler vägar (gruppen Account Operators är ett liknande hot)
- Att tömma Protected Users för att skapa attackvägar genom att ta bort skydd
- Oskyddade anpassade grupper eller admin-/tjänstekonton
- Skrivbehörighet på GPO:er (som tillämpas på domänkontrollant)
- Hantera åtkomst till AD-backuper, backupserver, PKI-mallar, hypervisor, ...
Det är mycket svårt att i efterhand begränsa alla dessa nuvarande och framtida potentiella vägar. För den anpassade _ADM-OU:n kan du inaktivera ACL-arv, men de flesta standardobjekt kan inte flyttas från standard-OU:n Builtin eller containern Users och förblir sårbara.
Det är mycket bättre att ta bort de kraftfulla behörigheterna från roten, vilket görs genom att implementera modellen Active Directory split permissions. Configure Exchange Server for split permissions | Microsoft Learn
Och Microsoft håller med: “…encouraged to implement Active Directory split permissions” Active Directory Hardening Series - Part 7 – Implementing Least Privilege | Microsoft Community Hub
Men varför gör ingen det?
Eftersom split permissions inte fanns förrän Exchange 2010 SP1 hade alla accepterat läget vid det laget, och det verkar som att säkerhetsteamen inte lyckades driva igenom det när det väl fanns.
Och det hade tvingat fram ändringar i admin- och IDM-processer, som att först skapa användare eller distributionslistor i AD och först därefter använda Exchange för att “mail-aktivera” dem.
Info: Följande cmdlets kommer inte längre att vara tillgängliga eller fungera: Add-DistributionGroupMember, New-DistributionGroup, New-Mailbox, New-MailContact, New-MailUser, New-RemoteMailbox, Remove-DistributionGroup, Remove-DistributionGroupMember, Remove-Mailbox, Remove-MailContact, Remove-MailUser, Remove-RemoteMailbox, Update-DistributionGroupMember, Add-ADPermission, Remove-ADPermission
Exempel på anpassning:
- New-Mailbox (där Exchange skriver till AD) skulle bli:
- New-ADUser (där adm.jdoe skriver till AD)
- Enable-Mailbox
- Add-ADPermission för SendAs-rättigheter skulle behöva göras via AD Users and Computers på säkerhetsfliken och kräver ofta ytterligare AD-behörigheter för vanliga administratörer.
Visa mig alternativet utan ånger
Disclaimer: Läs och förstå följande länkar och artiklar fullständigt, gör det i en testmiljö först, se till att AD-backuperna är aktuella och att rutiner för återställning finns på plats.
Granska nuvarande användning
Du bör först kontrollera vilka av de berörda cmdlets som används på vilka OU:er:
$CsvPath = "C:\temp\SplitPermissionAdminAuditLog.csv"
$Cmdlets = "Add-ADPermission","Remove-ADPermission","New-DistributionGroup","Remove-DistributionGroup","Add-DistributionGroupMember","Update-DistributionGroupMember","Remove-DistributionGroupMember","New-Mailbox","Remove-Mailbox","New-RemoteMailbox","Remove-RemoteMailbox","New-MailUser","Remove-MailUser","New-MailContact","Remove-MailContact"
Search-AdminAuditLog -ResultSize 99000 -Cmdlets $Cmdlets | Select-Object RunDate,Caller,ObjectModified,CmdletName,@{Name='CmdletParameters';Expression={[string]::join(",", ($\_.CmdletParameters))}},succeeded,error | Export-Csv -Path $CsvPath -Delimiter ";" -Encoding Unicode -NoTypeInformationSnabbanalys av anropare och cmdlets:
$CSVs = Import-Csv -Path $CsvPath -Delimiter ";"
$CSVs | Group-Object Caller
$CSVs | Group-Object CmdletNameAnalysera CSV-filen för att se var AD-behörigheter kommer att behövas. Optimera eventuellt genom att flytta alla Exchange-relevanta grupper till dedikerade OU:er.
Aktivera modellen Split Permissions
Följ Microsofts instruktioner "Switch to Active Directory split permissions" i Configure Exchange Server for split permissions | Microsoft Learn(INTE RBAC split permissions)
I praktiken tar det bort de farliga behörigheterna för gruppen "Exchange Windows Permissions" och tar även bort Exchange som gruppmedlem.
Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF /PrepareAD /ActiveDirectorySplitPermissions:true/ActiveDirectorySplitPermissions:falseTilldela AD-behörigheter
Skapa en anpassad AD-grupp och gör Exchange-servrarna till medlemmar.
# adjust OU Path first!
New-ADGroup -Name "AD_Custom Exchange Split permissions replacement" -GroupCategory Security -GroupScope DomainLocal -Path "OU=Rights,OU=Groups,OU=T1,OU=_ADM,$((Get-ADDomain).DistinguishedName)" -Description "replaces the permissions lost by split permissions on relevant OUs"
Add-ADGroupMember "AD_Custom Exchange Split permissions replacement" -Members "Exchange Trusted Subsystem"
# reboot Exchange servers for permissions via group to workJag har skapat ett skript som gör det enkelt att delegera AD-behörigheterna per användningsfall.
Utan dessa behörigheter skulle Exchange-servern få felet
“INSUFF_ACCESS_RIGHTS”från AD.
Ladda ner Add-ExchangeADSplitPermissionOnOU.ps1 från glueckkanja GitHub
Det kan tilldela följande PermissionTypes:
CreateUserAndContact
Skapa/ta bort, ResetPassword och WriteAllProperties för Users och Contacts
Exchange-cmdlets: `New-Mailbox`, `New-RemoteMailbox`, `New-MailUser`, `New-MailContact` och matchande `Remove-*`
GroupManage
Skapa/ta bort Groups, ändra Member
Exchange-cmdlets: `New-DistributionGroup`, `Remove-DistributionGroup`, `Add-DistributionGroupMember`, `Update-DistributionGroupMember`, `Remove-DistributionGroupMember`
Även: användare som hanterar DistributionGroups de äger via EAC
UserSendAs
Ändra AD-behörigheter på Users
Exchange-cmdlet: `Add-ADPermission`
GroupSendAs
Ändra AD-behörigheter på Groups
Exchange-cmdlet: `Add-ADPermission`
Så här använder du skriptet:
Add-ExchangeADSplitPermissionOnOU.ps1 -TargetOU <OU> -PermissionType <GroupManage|UserSendAs|GroupSendAs|CreateUserAndContact> -Trustee "AD_Custom Exchange Split permissions replacement"
# For example
Add-ExchangeADSplitPermissionOnOU.ps1 -TargetOU "OU=ExchangeGroups,OU=HQ,OU=Alderaan,$((Get-ADDomain).DistinguishedName)" -PermissionType GroupManage -Trustee "AD_Custom Exchange Split permissions replacement"
Add-ExchangeADSplitPermissionOnOU.ps1 -TargetOU "OU=ExchangeGroups,OU=HQ,OU=Alderaan,$((Get-ADDomain).DistinguishedName)" -PermissionType GroupSendAs -Trustee "AD_Custom Exchange Split permissions replacement"
Add-ExchangeADSplitPermissionOnOU.ps1 -TargetOU "OU=Users,OU=HQ,OU=Alderaan,$((Get-ADDomain).DistinguishedName)" -PermissionType UserSendAs -Trustee "AD_Custom Exchange Split permissions replacement"
Add-ExchangeADSplitPermissionOnOU.ps1 -TargetOU "OU=Users,OU=HQ,OU=Alderaan,$((Get-ADDomain).DistinguishedName)" -PermissionType CreateUserAndContact -Trustee "AD_Custom Exchange Split permissions replacement"
Tilldela Exchange RBAC
Återaktivera parametern -BypassSecurityGroupManagerCheck för cmdlets Add-DistributionGroupMember och Remove-DistributionGroupMember:
New-RoleGroup -Name "SplitPermission Security Group Creation and Membership" -Roles "Security Group Creation and Membership" -Members "Organization Management","Recipient Management" -Description "Brings back -BypassSecurityGroupManagerCheck to Add-DistributionGroupMember, but also needs AD ACL for Exchange Server on target DLs"Info: Annars får du "-BypassSecurityGroupManagerCheck parameter is not available" eller "You don't have sufficient permissions. This operation can only be performed by a manager of the group"
Återaktivera cmdlets New-Mailbox, New-RemoteMailbox, New-MailContact, Remove-... med nödvändiga parametrar:
New-RoleGroup -Name "SplitPermission Mail Recipient Creation" -Roles "Mail Recipient Creation" -Members "Organization Management","Recipient Management" -Description "Brings back New-Mailbox, New-RemoteMailbox, New-MailUser, New-MailContact and matching Remove-... cmdlets, but additionally Exchange needs AD ACL for Exchange Server on target OUs"Slutsatser
Jag hoppas att den här guiden hjälper fler organisationer att ta det viktiga steget att säkra sin Active Directory mot kompromettering via Exchange. Utifrån min erfarenhet av att implementera modellen Exchange AD Split Permissions hos flera kunder har jag inte stött på några problem, och införandet har gått smidigt.
Jag hoppas också att Microsoft inför ett inbyggt, OU-baserat sätt att uppnå den här granulariteten, i stället för dagens allt-eller-inget-modell, vilket skulle göra en bred adoption betydligt enklare.
En kommentar om AD Tiering: Logga inte in på Exchange-servrar med Domain Admin eller något annat Tier 0-konto. Behandla Exchange-servrar som Tier 1 och implementera AD Tiering så snart som möjligt. Som ett första steg rekommenderar jag att du använder PingCastle eller Purple Knight för att bedöma din AD-säkerhet och identifiera exponerade kontrollvägar.














