a szakasz teljes feloldásához be kell jelentkeznie
az Active Directory (AD) delegálás számos szervezet informatikai infrastruktúrájának kritikus része. Az adminisztráció delegálásával csak a szükséges engedélyeket adhatja meg a felhasználóknak vagy csoportoknak anélkül, hogy felhasználókat adna hozzá privilegizált csoportokhoz (például Tartománygazdák, Fióküzemeltetők). A delegálás legegyszerűbb módja a Microsoft Management Console (MMC) Active Directory-felhasználók és számítógépek beépülő modul vezérlési delegálás varázslójának használata.
bár a vezérlő delegálása varázsló egyszerű módot kínál az engedélyek delegálására, nincs megfelelő varázsló a delegált engedélyek eltávolítására. Valaki a Microsoftnál észrevette ezt a hiányosságot, és létrehozott egy dsrevoke nevű parancssori programot.exe, amely eltávolíthatja a vezérlő varázsló delegálása által hozzáadott engedélybejegyzéseket.
azonban a Dsrevoke.az exe programnak két fontos technikai korlátja van, amelyeket a Microsoft “amikor a dsrevoke parancssori eszközt használja a Windows Server 2003-alapú tartomány összes szervezeti egységének engedélyeinek jelentésére, előfordulhat, hogy az eszköz nem adja vissza az összes hozzáférés-vezérlési bejegyzést.”Ezek a korlátozások:
- Dsrevoke.az exe egyetlen keresés során csak 1000 ou-t talál. Ennek a korlátozásnak a javasolt megoldása az, ha a program keresését egy mélyebben beágyazott szervezeti egységben (OU) indítja el az eredmények számának csökkentése érdekében.
- Dsrevoke.az exe sikertelen, ha bármelyik ou tartalmaz egy perjelet ( / ) a nevükben. Ennek a korlátozásnak nincs más megoldása, mint a jogsértő OUs átnevezése.
szervezeti okokból az OU átnevezése a perjel karakter eltávolítására általában nem lehetséges. Ezenkívül a perjel érvényes karakter egy OU névben, és Dsrevoke.az exe – nek működnie kell, függetlenül attól, hogy egy OU tartalmaz-e perjelet a nevében vagy sem. Emellett időigényes volt a környezetemben az 1000 OU-korlát körüli munka.
A Windows legújabb verzióitól kezdve a Dsacls.exe program egy módja annak, hogy távolítsa el az engedélyeket hozzá a delegálás vezérlő varázsló. Bár nem bukik el, ha egy OU perjelet tartalmaz a nevében, Dsacls.az exe nem kereshet alvállalkozókban olyan engedélyeket, mint a Dsrevoke.exe igen.
Dsrevoke.exe és Dsacis.az exe képes létrehozni az engedélyek listáját, de a kimenet nagyon hosszú és technikai.
szükségünk van néhány háttérinformációra arról, hogy mi történik, amikor a vezérlő delegálás varázslót használjuk, valamint néhány alapvető Windows biztonsági koncepciót.
Miért Delegált?
képzelje el, hogy egy nagyvállalat vezetője, több részleggel: Pénzügy, HR, értékesítés, felső vezetés.
ha minden felhasználó, aki elfelejtette a jelszavát kellett hívni az informatikai helpdesk, akkor elárasztják a hívásokat.
ehelyett átruházhatja az engedélyeket az egyes osztályok vezetőjére, hogy visszaállíthassa saját csapata jelszavait.
a delegálás másik klasszikus felhasználási esete az a képesség, hogy a személyzet e-maileket küldhet egymásnak, akár megosztott postafiókban, akár a főnöke nevében e-mailt küldő PA-ban.
ad mindenkinek Domain Admin?
lehet, hogy gondoltam, nézzük, hogy minden osztályvezető Domain Admin jogosultságokat, akkor vissza tudja állítani a jelszavakat, ha szükséges.
bár ez technikailag igaz, akkor képesek lennének bármit megtenni, beleértve a felhasználói adatokhoz való hozzáférést is.
tehát ügyeljen arra, hogy a Domain adminisztrátori szerepét a nem IT felhasználóknak alacsonyabb adminisztrációs feladatokhoz adja: ez a megközelítés számos problémához vezethet.
a Speciális biztonsági beállítások párbeszédpanelen megadott információk megértéséhez ismernie kell a következő Windows biztonsági koncepciókat: hozzáférés-vezérlési lista (ACL), hozzáférés-vezérlési bejegyzés (ACE), Vagyonkezelő és öröklés. Az Remove-DSACE.ps1 használatához is meg kell értened ezeket a fogalmakat.
ACL: kétféle ACL létezik: diszkrecionális ACL (Dacl) és rendszer ACL (sacl). A DACL azonosítja azokat a fiókokat, amelyeknek engedélyezett vagy megtagadott hozzáférése van egy objektumhoz. A SACL leírja, hogy az adminisztrátor hogyan akarja naplózni az objektum elérésére irányuló kísérleteket (azaz az auditálást).
ász: az ACL Ászokból áll. Minden ász azonosítja a megbízottat, és meghatározza a megbízott hozzáférését (engedélyezés, megtagadás vagy ellenőrzés) az objektumhoz. A vezérlő delegálása varázsló ászokat ad hozzá egy hirdetési tároló DACL-jéhez. Az előző ábra az összes felhasználó OU DACL-jét mutatja. Ezen az ábrán az engedélybejegyzés kifejezés az ACE szinonimája.
vagyonkezelő: a vagyonkezelő az az entitás (felhasználó, biztonsági csoport vagy bejelentkezési munkamenet), amelyre ACE vonatkozik. Minden ász egyetlen vagyonkezelőre vonatkozik. Az 5. ábrán a megbízó kifejezés a vagyonkezelő szinonimája. Az 5. ábra azt mutatja, hogy két ász van hozzárendelve a jelszó-visszaállítási csoporthoz. Más szavakkal, a jelszó-visszaállítási csoport a két ász megbízottja (megbízója).
örökség: Az ász közvetlenül alkalmazható egy objektumra, vagy örökölhető az erőforrás szülőobjektumától. Az előző ábrán a jelszó-visszaállítási csoportot megbízottként tartalmazó minden felhasználó szervezeti egység két Ászát nem a szülő tárolóból örökölik (azaz az örökölt oszlop nem olvasható), mert a Vezérlővarázsló delegálása közvetlenül hozzáadta őket a DACL-hez.
delegált engedélyek hozzáadása a varázslóval
a Vezérlővarázsló delegálása egyszerű módja az engedélyek delegálásának. Tegyük fel például, hogy azt szeretné, hogy a jelszó-visszaállítási csoport tagjai visszaállíthassák a HIRDETÉSTARTOMÁNY minden felhasználó szervezeti egységében lévő felhasználók jelszavait. Ehhez a következő lépéseket kell végrehajtania:
nyissa meg az Active Directory felhasználók és számítógépek konzolt, majd kattintson a jobb gombbal a minden felhasználó szervezeti egységre (vagy bármilyen szervezeti egységre), és válassza a delegált vezérlés lehetőséget, az 1.ábrán látható módon. Kattintson a Tovább gombra, hogy továbblépjen a varázsló üdvözlő oldalán.
a varázsló felhasználók vagy csoportok oldalán kattintson a Hozzáadás gombra.
a Felhasználók, számítógépek vagy csoportok kiválasztása párbeszédpanelen írja be a csoport nevét (Jelszó visszaállítása), kattintson a Nevek ellenőrzése gombra, hogy megbizonyosodjon arról, hogy a csoport neve helyes-e, majd kattintson az OK gombra, az alábbi ábrán látható módon:
miután megbizonyosodott arról, hogy a csoport neve szerepel a felhasználók vagy csoportok oldalon, kattintson a Tovább gombra, az alábbi ábrán látható módon:
a Delegálandó Feladatok lapon válassza a felhasználói jelszavak visszaállítása lehetőséget, majd a következő bejelentkezéskor kényszerítse ki a jelszó megváltoztatását, majd kattintson a Tovább gombra, az alábbi ábrán látható módon:
amikor a Befejezés gombra kattint, a Vezérlővarázsló delegálása hozzáadja a kért engedélyeket a minden felhasználó szervezeti egységhez. A delegálás hatásait úgy tekintheti meg, hogy jobb gombbal kattint a minden felhasználó szervezeti egységre, kiválasztja a tulajdonságokat, majd kiválasztja a Biztonság lapot. (Ha a Biztonság lap nem látható, engedélyezze a speciális funkciók lehetőséget az Active Directory felhasználók és számítógépek konzol Nézet menüjében.)
részletes nézethez kattintson a Speciális gombra. Az alábbi ábra a megjelenő speciális Biztonsági beállítások párbeszédpanelt mutatja.
engedély ellenőrzése (PowerShell használatával)
most, hogy felfedeztük a delegálást, elgondolkodhat azon, hogy vannak-e olyan delegációk, amelyekről nem tud, akár korábbi alkalmazottaktól, akár rosszindulatú rendszergazdáktól.
összeállítottunk egy rövid PowerShell szkriptet, amely megkeresi az egyes delegálható objektumtípusokat, és felsorolja a két közös jogosultsági delegációt, a Jelszó visszaállítása és a küldés (az Exchange-ből).
itt egy minta fut egy tartományból:
és itt a szkript kódja:
###### Search common delegation targets$filter = "(|(objectClass=domain)(objectClass=organizationalUnit)(objectClass=group)(sAMAccountType=805306368)(objectCategory=Computer))" ###### Search just OUs and Groups#$filter = "(|(objectClass=organizationalUnit)(objectClass=group))"###### More filters can be found here: http://www.ldapexplorer.com/en/manual/109050000-famous-filters.htm###### Connect to DOMAINCONTROLLER using LDAP path, with USERNAME and PASSWORD#$bSearch = New-Object System.DirectoryServices.DirectoryEntry("LDAP://DOMAINCONTROLLER/LDAP"), "USERNAME", "PASSWORD") ###### Connect to DOMAINCONTROLLER using LDAP path$bSearch = New-Object System.DirectoryServices.DirectoryEntry("LDAP://DOMAINCONTROLLER/LDAP") $dSearch = New-Object System.DirectoryServices.DirectorySearcher($bSearch)$dSearch.SearchRoot = $bSearch$dSearch.PageSize = 1000$dSearch.Filter = $filter #comment out to look at all object types$dSearch.SearchScope = "Subtree"####### List of extended permissions available here: https://technet.microsoft.com/en-us/library/ff405676.aspx$extPerms = '00299570-246d-11d0-a768-00aa006e0529', 'ab721a54-1e2f-11d0-9819-00aa0040529b', '0'$results = @()foreach ($objResult in $dSearch.FindAll()){ $obj = $objResult.GetDirectoryEntry() Write-Host "Searching... " $obj.distinguishedName $permissions = $obj.PsBase.ObjectSecurity.GetAccessRules($true,$false,) $results += $permissions | Where-Object { $_.AccessControlType -eq 'Allow' -and ($_.ObjectType -in $extPerms) -and $_.IdentityReference -notin ('NT AUTHORITY\SELF', 'NT AUTHORITY\SYSTEM', 'S-1-5-32-548') } | Select-Object ` @{n='Object'; e={$obj.distinguishedName}}, @{n='Account'; e={$_.IdentityReference}}, @{n='Permission'; e={$_.ActiveDirectoryRights}}}$results | Out-GridView
a szkript használata a saját domainjén:
- nyissa meg az Active Directory-felhasználók és számítógépek elemet, és keresse meg a vizsgált tartományt (vagy szervezeti egységet).
- kattintson a jobb gombbal, és válassza a Tulajdonságok lehetőséget.
- az attribútumszerkesztő lapon keresse meg a distinguishedName tulajdonságot.
- jelölje ki, majd nyomja meg a nézet gombot, majd másolja az LDAP elérési útját. Erre később szüksége lesz.
- 6. sor szerkesztése ($bSearch = …), helyettesítve a DOMAINCONTROLLER-t a domain egyik DCs-jének nevével.
- Szerkessze a 6. sort, az LDAP helyett a korábban másolt elérési utat.
- mentse el a szkriptet, majd nyomja meg a Futtatás gombot.
- hagyja, hogy a parancsfájl az Active Directory-n keresztül keressen; a folyamat a konzolon jelenik meg, és amikor elkészült, megjelenik egy felugró ablak, amely részletezi azokat az objektumokat, amelyek jogosultságokkal rendelkeznek.