Exchange AD Split Permissions utan ånger

On-Premises Exchange Server-installationer är fortfarande vanliga även hos organisationer som har flyttat alla postlådor till molnet. De är dessutom fortfarande mycket kraftfulla inom Active Directory, så oftast finns det en stark attackväg för att kompromettera hela AD och därmed vanligtvis stora delar av företagets IT. Att byta till de så kallade ”AD Split permissions” tar bort de kritiska behörigheterna, och jag har konstruerat en lösning som eliminerar de nackdelar som vanligtvis hindrade införandet.

Exchange AD Split Permissions utan ånger

TLDR: tänk om vi tar bort nackdelarna?

Jag hittade ett sätt att återge de AD- och RBAC-behörigheter där Exchange-användare, grupper, kontakter och så vidare finns. På så sätt behövs ingen anpassning för administratörer eller identitetshanteringssystem, vilket enligt min erfarenhet var det som hindrade de flesta företag från att införa det. Och vi får ändå säkerhetsvinsten mot lateral förflyttning och domänövertagande.

Active Directory

Det uppnås i tre steg:

  1. Inför modellen för AD split permissions
  2. Ge Exchange-servrarna tillbaka de förlorade AD-behörigheterna, men bara på de relevanta OU:erna
  3. Tilldela Exchange RBAC för att återaktivera de saknade PowerShell-cmdletarna

Allt via Microsofts vägledning, AD-ACL:er eller Exchange RBAC-tilldelningar.

Varför bryr vi oss (nu)?

Det har till stor del förbisetts eller ignorerats sedan det introducerades med Exchange 2010 SP1. Men standardmodellen med delade behörigheter utgör en stor säkerhetsrisk för övertagande av Active Directory. I kombination med att Exchange under de senaste åren varit ökänt för fjärrexploatering är det dags att agera.
Problemet härrör från behörigheter som tilldelas på 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

Permissions

Bara vissa högprivilegierade Tier0-användare och -grupper skyddas av AdminSDHolder-processen (attributet admincount=1), och i många miljöer finns det 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-kontot vid användning av PWHashSync
  • Standardgrupper
  • Oskyddade anpassade grupper eller admin-/tjänstekonton
    • Skrivbehörighet på GPO:er (som tillämpas på domänkontrollant)
    • Hantering av åtkomst till AD-säkerhetskopior, säkerhetskopieringsserver, 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 får 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 införa 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 vid det laget accepterat det, 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.

Cmdletar som inte längre är tillgängliga eller fungerar:
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

Anpassningsexempel:

  • 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-användare och -datorer på säkerhetsfliken, och kräver ofta ytterligare AD-behörigheter för standardadministratörer.

Visa mig alternativet utan ånger

Ansvarsfriskrivning: Läs och förstå följande länkar och artiklar fullständigt, testa först i en testmiljö och säkerställ att AD-säkerhetskopiorna är aktuella och att återställningsrutiner är etablerade.

Granska nuvarande användning

Du bör först kontrollera vilka av de berörda cmdletarna 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 RunDate,Caller,ObjectModified,CmdletName,@{Name='CmdletParameters';Expression={[string]::join(",", ($_.CmdletParameters))}},succeeded,error | Export-Csv -Path $CsvPath -Delimiter ";" -Encoding Unicode -NoTypeInformation

Snabb analys av anropare och cmdletar:
$CSVs=Import-Csv -Path $CsvPath -Delimiter ";"$CSVs|group Caller$CSVs|group 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 för split permissions

Följ instruktionerna för ”Switch to Active Directory split permissions” i Configure Exchange Server for split permissions | Microsoft Learn (INTE RBAC split permissions)
I grunden 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
För att återgå använder du bara: /ActiveDirectorySplitPermissions:false

Tilldela AD-behörigheter

Skapa en anpassad AD-grupp och gör Exchange-servrarna till medlemmar.
justera OU-sökvägen först
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"

starta om Exchange-servrarna för att behörigheterna via gruppen ska fungera
Jag har skapat ett skript som gör det enkelt att delegera AD-behörigheterna per användningsfall.

INFO: 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
    • Create/delete, ResetPassword och WriteAllProperties för Users och Contacts
    • Exchange-cmdletar: New-Mailbox, New-RemoteMailbox, New-MailUser, New-MailContact och motsvarande Remove-*
  • GroupManage
    • Skapa/ta bort grupper, ändra medlem
    • Exchange-cmdletar: New-DistributionGroup, Remove-DistributionGroup, Add-DistributionGroupMember, Update-DistributionGroupMember, Remove-DistributionGroupMember
    • Ytterligare användningsfall: användare som hanterar DistributionGroups de äger via https:///EAC
  • UserSendAs
    • Ändra AD-behörigheter på Users
    • Exchange-cmdlet: Add-ADPermission
  • GroupSendAs
    • Ändra AD-behörigheter på Groups
    • Exchange-cmdlet: Add-ADPermission

Så använder du skriptet:

Add-ExchangeADSplitPermissionOnOU.ps1 -TargetOU <OU> -PermissionType <GroupManage|UserSendAs|GroupSendAs|CreateUserAndContact> -Trustee "AD_Custom Exchange Split permissions replacement

t.ex.
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 cmdletarna 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 cmdletarna 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 vägledningen får många fler att ta detta viktiga steg för att skydda sin Active Directory från kompromettering via Exchange. Jag har ännu inte stött på problem när jag har infört modellen Exchange AD split permissions och anpassningen från den här artikeln hos våra kunder.

Jag hoppas att Microsoft inför ett inbyggt sätt att uppnå denna granulära OU-baserade metod, i stället för dagens allt-eller-inget, så att den kan få bred spridning.

Eftersom AD Tiering ligger mig varmt om hjärtat: logga dessutom inte in på Exchange-servrar med Domain Admin-konton (eller något Tier0-konto), utan behandla dem som Tier1 från och med nu och inför AD Tiering så snart som möjligt. Som ett första steg rekommenderar jag verktyg som PingCastle eller Purple Knight för att utvärdera din AD-säkerhet och dina Control Paths.

Liknande inlägg