uprawnienia AD
struktura AD to żywy organizm, który ewoluuje, ulegając ciągłym modyfikacją – nowi użytkownicy, wycofanie kont… ale również nowi administratorzy i delegacje do poszczególnych gałęzi etc. jak każde środowisko – i to ulega zaśmieceniu. jak każdy bałagan – może to stanowić osłabienie bezpieczeństwa, głównie z powodu jakiś zapomnianych uprawnień. ktoś-gdzieś-kiedyś nadał uprawnienia kontu serwisowemu lub grupie do modyfikacji obiektów, czas leci, a AD nie daje możliwości łatwej weryfikacji nadanych uprawnień. przy złożonej strukturze drzewa, często zostają dziury w postaci niekontrolowanego dostępu na podwyższonych przywilejach.
jak zatem to szybko odczytać? SOA#1 czyli – PowerShellem. podstawowy skrypt jest dość trywialny, ponieważ PS dysponuje możliwością łatwego odpytania się o jednostki organizacyjne oraz odczytanie uprawnień. co więcej – cały kod można uruchomić jako najzwyklejszy user [oczywiście w standardowej konfiguracji]. jedyne, co trzeba na stacji doinstalować to moduł ActiveDirectory [RSAT]. cały problem natomiast, sprowadza się do wyszukania uprawnień, które nie są dziedziczone tylko nadane niezależnie – bo na tym przecież polega delegacja:
$OUList=(Get-ADOrganizationalUnit -Filter *).distinguishedName foreach( $ou in $OUList) { $NonInheritedACEs=(Get-Acl "ad:\$ou").Access| Where-Object {$_.inheritanceflags -eq 'none'} Write-Host $ou $NonInheritedACEs|group IdentityReference|%{[PSCustomObject]@{'count'=$_.count;'name'=$_.name;'group'=([string]$_.group.ActiveDirectoryRights -join ';')}} }
to oczywiście zarys, skrypt napisany 'na kolanie’. diabeł leży w szczegółach, więc aby przygotować całe narzędzie trochę walki będzie. a ten diabeł to głównie filtrowanie wyników:
- w AD jest spora grupa uprawnień niedziedziczonych, nadawanych podczas promocji DC – nazwijmy je 'standardowymi’. mamy więc dwa wyjścia – albo sobie obrobić plik po wypluciu, albo napisać kawałek kodu, który te uprawnienia przefiltruje. może nie jest to super-trudne, ale przyjemne do napisania na pewno też nie jest.
- z takich 'standardowych uprawnień’, po testach w kilq domenach zauważyłem, że powtarzają się:
1 NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS GenericRead 1 NT AUTHORITY\Authenticated Users GenericRead 1 NT AUTHORITY\SYSTEM GenericAll 1 LOGICUNION\Domain Admins GenericAll 4 S-1-5-32-548 CreateChild, DeleteChild CreateChild, DeleteChild CreateChild, D... 1 S-1-5-32-550 CreateChild, DeleteChild
- grupy, których SIDy się tutaj nie rozwiązują to Account Operators i Print Operators. warto zwrócić, że to SIDy lokalne a nie domenowe.
- w niektórych domenach, potrafił te SIDy rozwiązać O_o
- output powinien być w postaci ładnego obiektu, żeby wyexportować do CSV do dalszej prezentacji i obróbki.
- get-acl nie ma opcji NIE-rozwiązywania SIDów na nazwy więc trzeba je z powrotem sprawdzać przy porównaniach /:
eN.
Praca po nocy
Dziś wpis o niskim współczynniku zawartości power shella i twardej administracji, ale mam nadzieje, że nie mniej pomocny.
Po nocy przed monitorem siedzi każdy z nas, może nie z taką częstotliwością jak na studiach #goodoldtimes, ale przynajmniej okna serwisowe wypadają gdy słońce już dawno zaszło. Kiedyś, pisząc kolejne projekty na zaliczenie zwracałem uwagę na zbyt jasne oświetlenie monitora, szczególnie tła kartki w Wordzie. W nowych Windowsach, (tak gdzieś od 7) nie mogłem znaleźć tego ustawienia, a tu z pomocą przychodzi dedykowany program F.lux.
https://justgetflux.com/
Narzędzie automatycznie dostosowuje temperaturę kolorów monitora po zachodzie słońca. Sprawdziłem wczoraj w nocy – działa perfekcyjnie. Małe, proste, łatwo w razie czego wyłączyć na chwilę.
Polecam.
Dodatkowo jak już siedzimy po nocy, można zajrzeć na stronę o zdrowym śnie, sygnowaną przez Uniwersytet Harwarda: http://healthysleep.med.harvard.edu/portal/.