Exchange AD Split Permissions ilman katumusta
Myös organisaatiot, jotka ovat siirtäneet postilaatikkonsa kokonaan pilveen, ajavat usein edelleen paikallisia Exchange-palvelimia ja niiden mukana aliarvioitua Active Directoryn tietoturvariskiä. "AD Split Permissions" -malli riisuu Exchangelta laajat AD-oikeudet, joita hyökkääjät voisivat käyttää koko toimialueen valtaamiseen. Tähän asti käyttöönotto on jäänyt suurelta osin toteutumatta niiden prosessimuutosten takia, joita se pakottaa ylläpitäjille. Tämä artikkeli näyttää, miten juuri tämä este ylitetään tyylikkäästi: skripti, joka myöntää menetetyt AD-oikeudet valikoivasti takaisin vain olennaisiin OU:ihin, säilyttää tutun ylläpitotyönkulun ja tuottaa silti täyden tietoturvahyödyn.
TLDR: entä jos poistamme haittapuolet?
Löysin tavan myöntää AD- ja RBAC-oikeudet takaisin suoraan sinne, missä Exchangen käyttäjät, ryhmät ja yhteystiedot sijaitsevat, ilman muutoksia ylläpitäjille tai identiteetinhallintajärjestelmille. Kokemukseni mukaan juuri tämä kitka on ollut useimpien yritysten tärkein este. Ja säilytämme silti tietoturvahyödyt lateraalista liikettä ja toimialueen valtausta vastaan.

Se toteutetaan kolmessa vaiheessa:
- Ota käyttöön AD split permission -malli
- Myönnä Exchange-palvelimille menetetyt AD-oikeudet, mutta vain olennaisiin OU:ihin
- Myönnä Exchange RBAC ottaaksesi puuttuvat PowerShell-cmdletit uudelleen käyttöön
Kaikki Microsoftin ohjeiden, AD ACL:ien tai Exchange RBAC -määritysten avulla.
Miksi tämä kiinnostaa (nyt)?
Se on suurelta osin jäänyt huomiotta tai sivuutettu siitä lähtien, kun se otettiin käyttöön Exchange 2010 SP1:n mukana. Oletuksena oleva jaettujen oikeuksien malli edustaa kuitenkin suurta tietoturvariskiä Active Directoryn valtaamiselle. Yhdistettynä siihen, että Exchange on viime vuosina ollut surullisenkuuluisa etähyökkäyksistä, on aika toimia.
Ongelma juontuu oikeuksista, jotka on myönnetty toimialueen juureen ja jotka periytyvät läpi koko toimialueen.
- käyttäjien ja ryhmien oikeuksien muokkaus (käytännössä täysi pääsy)
- ryhmän jäsenten muokkaus
- käyttäjien salasanojen nollaus
- käyttäjien ja ryhmien luonti/poisto

Vain tietyt korkeasti valtuutetut Tier 0 -käyttäjät ja -ryhmät ovat AdminSDHolder-prosessin suojaamia (attribuutti admincount=1), ja monissa ympäristöissä on suojaamattomia käyttäjiä tai ryhmiä, jotka voivat mahdollistaa toimialueen ja/tai metsän valtaamisen tai ainakin aiheuttaa vakavia seurauksia.
Näkyviä esimerkkejä:
- Entra Connect Sync -tili käytettäessä Password Hash Synciä
- Oletusryhmät
- Allowed RODC Password Replication Group -ryhmä yhdessä Entra Connect -tilin kanssa (jos oikea Windows RODC on olemassa)
- Katso myös Untrustworthy Trust Builders: Account Operators Replicating Trust Attack (AORTA) - SpecterOps, joka näyttää lisää polkuja (Account Operators -ryhmä on samankaltainen uhka)
- Protected Users -ryhmän tyhjentäminen hyökkäysvektoreiden luomiseksi suojauksia poistamalla
- Suojaamattomat mukautetut ryhmät tai järjestelmänvalvoja-/palvelutilit
- Kirjoitusoikeus GPO:ihin (jotka koskevat toimialueen ohjauskonetta)
- AD-varmuuskopioiden, varmuuskopiopalvelimen, PKI-mallien, hypervisorin, ... pääsyn hallinta
Kaikkien näiden nykyisten ja tulevien mahdollisten polkujen rajoittaminen jälkikäteen on hyvin vaikeaa. _ADM-mukautetussa OU:ssa voisit poistaa ACL:n periytymisen käytöstä, mutta useimpia oletusobjekteja ei voi siirtää oletusarvoisesta Builtin-OU:sta tai Users-säiliöstä, joten ne pysyvät haavoittuvina.
On paljon parempi poistaa voimakkaat oikeudet juuresta, mikä tehdään ottamalla käyttöön Active Directory split permissions -malli. Configure Exchange Server for split permissions | Microsoft Learn
Ja Microsoft on samaa mieltä: “…kannustetaan ottamaan käyttöön Active Directory split permissions” Active Directory Hardening Series - Part 7 – Implementing Least Privilege | Microsoft Community Hub
Mutta miksi kukaan ei tee sitä?
Koska split permissions ei ollut saatavilla ennen Exchange 2010 SP1:tä, kaikki olivat siihen mennessä hyväksyneet tilanteen, eikä tietoturvatiimien näytä onnistuneen viemään sitä läpi sen jälkeen, kun se oli olemassa.
Ja se olisi pakottanut muutoksia ylläpito- ja IDM-prosesseihin, kuten käyttäjien tai jakelulistojen luomisen ensin AD:hen ja vasta sen jälkeen niiden “mail enable” -toiminnon Exchangessa.
Info: Seuraavat cmdletit eivät enää ole saatavilla tai toimi: 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
Käyttöönottoesimerkkejä:
- New-Mailbox (jossa Exchange kirjoittaa AD:hen) olisi:
- New-ADUser (jossa adm.jdoe kirjoittaa AD:hen)
- Enable-Mailbox
- Add-ADPermission SendAs-oikeuksia varten pitäisi tehdä AD Users and Computers -työkalun suojausvälilehdellä, mikä usein vaatii lisää AD-oikeuksia tavallisille ylläpitäjille.
Näytä minulle tämä vaihtoehto ilman katumusta
Vastuuvapauslauseke: Lue ja ymmärrä seuraavat linkit ja artikkelit kokonaan, tee tämä ensin testiympäristössä, varmista että AD-varmuuskopiot ovat ajantasaiset ja palautuskäytännöt on otettu käyttöön.
Auditoi nykyinen käyttö
Tarkista ensin, mitkä vaikutuksen alaiset cmdletit ovat käytössä missäkin OU:issa:
$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 -NoTypeInformationKutsujan ja cmdlettien pika-analyysi:
$CSVs = Import-Csv -Path $CsvPath -Delimiter ";"
$CSVs | Group-Object Caller
$CSVs | Group-Object CmdletNameAnalysoi CSV:stä, missä AD-oikeuksia tarvitaan. Voit halutessasi optimoida siirtämällä kaikki Exchangen kannalta olennaiset ryhmät omiin OU:ihinsa.
Ota Split Permissions -malli käyttöön
Seuraa Microsoftin ohjetta "Switch to Active Directory split permissions" kohdassa Configure Exchange Server for split permissions | Microsoft Learn(EI RBAC split permissions)
Käytännössä se poistaa vaaralliset oikeudet "Exchange Windows Permissions" -ryhmältä ja poistaa myös Exchangen ryhmän jäsenyydestä.
Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF /PrepareAD /ActiveDirectorySplitPermissions:true/ActiveDirectorySplitPermissions:falseMyönnä AD-oikeudet
Luo mukautettu AD-ryhmä ja tee Exchange-palvelimista sen jäseniä.
# 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 workOlen luonut skriptin, joka helpottaa AD-oikeuksien delegointia käyttötapauskohtaisesti.
Ilman näitä oikeuksia Exchange-palvelin saisi AD:ltä virheen
“INSUFF_ACCESS_RIGHTS”.
Lataa Add-ExchangeADSplitPermissionOnOU.ps1 glueckkanjan GitHubista
Se voi myöntää seuraavat PermissionTypet:
CreateUserAndContact
Käyttäjien ja yhteystietojen luonti/poisto, ResetPassword ja WriteAllProperties
Exchange-cmdletit: `New-Mailbox`, `New-RemoteMailbox`, `New-MailUser`, `New-MailContact` ja vastaavat `Remove-*`
GroupManage
Ryhmien luonti/poisto, jäsenten muokkaus
Exchange-cmdletit: `New-DistributionGroup`, `Remove-DistributionGroup`, `Add-DistributionGroupMember`, `Update-DistributionGroupMember`, `Remove-DistributionGroupMember`
Myös: käyttäjä hallitsee omistamiaan DistributionGroup-ryhmiä EAC:n kautta
UserSendAs
AD-oikeuksien muokkaus käyttäjillä
Exchange-cmdlet: `Add-ADPermission`
GroupSendAs
AD-oikeuksien muokkaus ryhmillä
Exchange-cmdlet: `Add-ADPermission`
Skriptin käyttö:
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"
Myönnä Exchange RBAC
Ota -BypassSecurityGroupManagerCheck-parametri uudelleen käyttöön Add-DistributionGroupMember- ja Remove-DistributionGroupMember-cmdleteille:
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: Muuten saat viestin "-BypassSecurityGroupManagerCheck parameter is not available" tai "You don't have sufficient permissions. This operation can only be performed by a manager of the group"
Ota New-Mailbox, New-RemoteMailbox, New-MailContact, Remove-... -cmdletit uudelleen käyttöön tarvittavilla parametreilla:
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"Johtopäätökset
Toivon, että tämä opas auttaa useampia organisaatioita ottamaan tärkeän askeleen Active Directoryn suojaamiseksi Exchangen kautta tapahtuvaa valtausta vastaan. Kokemukseni mukaan Exchange AD Split Permissions -mallin käyttöönotossa useilla asiakkailla en ole törmännyt ongelmiin ja käyttöönotto on sujunut mutkattomasti.
Toivon myös, että Microsoft tuo natiivisti OU-pohjaisen tavan saavuttaa tämä tarkkuustaso nykyisen kaikki-tai-ei-mitään-mallin sijaan, mikä helpottaisi laajaa käyttöönottoa merkittävästi.
Huomio AD-tasoituksesta (AD Tiering): Älä kirjaudu Exchange-palvelimille Domain Admin- tai muilla Tier 0 -tileillä. Käsittele Exchange-palvelimia Tier 1:nä ja ota AD Tiering käyttöön mahdollisimman pian. Ensimmäisenä askeleena suosittelen käyttämään PingCastle tai Purple Knight -työkalua AD:n tietoturvatilan arvioimiseksi ja hallintapolkujen altistumien tunnistamiseksi.














