W poprzednim artykule opisaliśmy procedurę resetowania hasła do standardowego konta administratora domeny Active Directory (konto administratora). Ten skrypt działa dobrze w „standardowym” środowisku Active Directory, jednak w niektórych domenach ta sztuczka może nie działać, ponieważ po wdrożeniu zastosowano najlepsze praktyki Microsoft w zakresie zabezpieczania infrastruktury AD. W prawdziwych domenach AD można chronić następujące konta administratora domeny:
- Zmień nazwę konta standardowego Administrator usługi Active Directory
- Utwórz konto przynęty. Konto, chociaż ma nazwę Administrator, ale nie ma żadnych podwyższonych uprawnień. Ponadto za pomocą zasad inspekcji można skonfigurować usługi bezpieczeństwa w celu powiadamiania o autoryzacji przy użyciu tego konta
- Wyłączanie konta administratora i przyznanie uprawnień administratora domeny innej uchetce.
W tym artykule postaramy się przeanalizować obejścia tych strategii, które pozwalają odkryć w AD wszystkie konta z uprawnieniami administratora domeny.
W poprzednim artykule pokazaliśmy, w jaki sposób, tworząc usługę systemową na kontrolerze domeny, możesz zresetować hasło administratora domeny. To polecenie podczas ładowania kontrolera domeny spowoduje zresetowanie hasła konta administratora domeny (administratora domeny) do P @ ssw0rd.
sc tworzenie ResetADPass binPath = "% ComSpec% / k administrator użytkownika sieci P @ ssw0rd" start = auto
Co powinienem zrobić, jeśli nie mogę się zalogować na tym koncie? Najprawdopodobniej podczas wdrażania domeny była chroniona jedną z powyższych metod.
Zamontuj odłączoną bazę danych Active Directory
Spróbujmy wyodrębnić informacje o prawdziwych administratorach domeny z bazy danych AD. Aby to zrobić, uruchom system w trybie DSRM, w którym baza danych Active Directory (ntds.dit) jest wyłączona. Musimy lokalnie zamontować tę bazę danych, aby dodatkowo uzyskać dostęp do przechowywanych w niej informacji.
Uruchom dwie linie poleceń: w pierwszym uruchomimy proces dsamain.exe, w drugim wprowadzimy polecenia interaktywne.
Wskazówka. Podczas pracy z Server Core drugi wiersz poleceń można otworzyć, uruchamiając polecenie w oryginalnym cmd:
uruchom cmd
Przed uruchomieniem narzędzia dsamain.exe upewnij się, że inne usługi i procesy nie używają obecnie portu 389. Możesz to zrobić za pomocą polecenia:
netstat -ano | findstr: 389
Jeśli zespół nic nie zwrócił - wszystko jest w porządku, śmiało (jeśli wróciłeś, musisz znaleźć i wyłączyć znaleziony proces).
Narzędzie dsamain.exe umożliwia zamontowanie bazy danych AD i wykonywanie na niej różnych zapytań LDAP (w rzeczywistości umożliwia zorganizowanie samodzielnego serwera LDAP). Narzędzie uruchamia się z następującymi parametrami:
- dbpath - ustawia ścieżkę do pliku ntds.dit.
- allowNonAdminAccess - Zezwala na zapytania LDAP do bazy danych AD na koncie lokalnym (domyślnie dostęp jest dozwolony tylko dla członków grup Domain Admins i Enterprise Admins).
- ldapPort - pozwala określić port LDAP. Użyjemy standardowego portu LDAP - 389.
Zamontuj bazę AD za pomocą polecenia:
dsamain -dbpath C: \ Windows \ NTDS \ ntds.dit -allowNonAdminAccess -ldapPort 389
Upewnij się, że proces dsamain.exe jest uruchomiony i nasłuchuje na porcie 389. Aby to zrobić, w drugim wierszu polecenia uruchom polecenie:
netstat -ano | findstr: 389TCP 0.0.0.0 opin89 0.0.0.0:07 LISTENING 614
TCP [::]: 389 [::]: 0 LISTENING 614
TCP 0.0.0.0 opin89 *: * 614
TCP [::]: 389 *: * 614
Otrzymujemy proces o identyfikatorze procesu 614 do nasłuchiwania na porcie TCP 389.
Sprawdź, czy proces z PID 604 jest naszym procesem dsamain.exe:
tasklist / fi "pid eq 614" / fo listNazwa obrazu: dsamain.exe
PID: 614
Nazwa sesji: konsola
Sesja nr: 2
Wykorzystanie pamięci: 11 316 K
Po zamontowaniu podstawy AD możemy uzyskać do niej dostęp za pomocą narzędzi ds * (dsget, dsquery itp.). Spójrzmy na wszystkie trzy opcje ukrywania konta administratora domeny..
Zmieniono nazwę konta administratora domeny
Jak mogę ustalić, czy zmieniono nazwę standardowego konta administratora usługi Active Directory?
Standardowy administrator AD ma dobrze znany identyfikator SID, którego format to odpowiednio S-1-5-21- [identyfikator domeny] -500, więc musimy tylko znaleźć obiekt o takim identyfikatorze SID w domenie. W drugim wierszu polecenia uruchom polecenie:
dsquery user -s localhost | dsget user -s localhost -samid -sid | findstr / c: "- 500"itpro S-1-5-21-2292496274-2043586872-6449473370-500
W tym przypadku widać, że nazwa konta administratora została zmieniona na itpro.
Możesz również zresetować hasło do tego konta za pomocą usługi specjalnej:
sc tworzenie ResetPW binPath = "% ComSpec% / k użytkownik netto itpro P @ ssw0rd" start = auto
Teraz możesz odmontować bazę danych AD (zatrzymaj proces dsamain.exe za pomocą Ctrl + C). Upewnij się, że polecenie zwróciło ciąg
Usługi domenowe w usłudze Active Directory zostały pomyślnie zamknięteFałszywe konto administratora AD
Jak ustalić, że standardowy Administrator Active Directory nie ma niezbędnych uprawnień? To jest bardzo proste. Znając nazwę wyróżniającą konta administratora, możemy uzyskać listę grup, na które się składa:
dsget użytkownik "CN = Administrator, CN = Użytkownicy, DC = winitpro, DC = pl" -s localhost -memberof -expand„CN = Użytkownicy domeny, CN = Użytkownicy, DC = winitpro, DC = ru”
„CN = Użytkownicy, CN = Wbudowany, DC = winitpro, DC = ru”
Jak widać, to konto nie jest członkiem grupy Domain Admins i nie nadaje się do naszych celów. Poniższa technika pomoże Ci znaleźć „prawdziwych” administratorów.
Alternatywny administrator domeny
Spróbujmy dowiedzieć się, jak uzyskać listę kont z uprawnieniami administratora domeny. Na początek spróbujmy rekurencyjnie wyświetlić listę wszystkich członków grupy Administratorzy (w tym członków grup Domain Admins i Enterprise Admins).
dsquery group -s localhost -samid "administratorzy" | dsget group -s localhost -members -rozwiń„CN = Administratorzy domeny, CN = Użytkownicy, DC = winitpro, DC = ru”
„CN = Administratorzy przedsiębiorstwa, CN = Użytkownicy, DC = winitpro, DC = ru”
„CN = Administrator, CN = Użytkownicy, DC = winitpro, DC = ru”
„CN = itpro, CN = Użytkownicy, DC = winitpro, DC = ru”
Jak widać, konta Administrator i itpro mają uprawnienia administratora. Sprawdź status konta administratora:
dsget użytkownik "CN = Administrator, CN = Użytkownicy, DC = winitpro, DC = pl" -s localhost -samid -sid -disabledSamid Sid został wyłączony
Administrator S-1-5-21-2092397264-2003686862-3249677370-500 tak
Jak widać jest on wyłączony.
Teraz sprawdź status konta itpro:
dsget użytkownik "CN = itpro, CN = Użytkownicy, DC = winitpro, DC = ru" -s localhost -samid -sid -disabledSamid Sid został wyłączony
itpro S-1-5-21-2092397264-2003686862-3249677370-1107 nr
dsget się udało
To konto jest aktywne. Sprawdź, w których grupach się składa:
dsget użytkownik "CN = itpro, CN = Users, DC = winitpro, DC = pl" -s localhost -memberof -expand„CN = właściciele twórców zasad grupy, CN = użytkownicy, DC = winitpro, DC = ru”
„CN = Administratorzy domeny, CN = Użytkownicy, DC = winitpro, DC = ru”
„CN = Administratorzy przedsiębiorstwa, CN = Użytkownicy, DC = winitpro, DC = ru”
„CN = Administratorzy schematu, CN = Użytkownicy, DC = winitpro, DC = ru”
„CN = Użytkownicy domeny, CN = Użytkownicy, DC = winitpro, DC = ru”
„CN = odmowa grupy replikacji hasła RODC, CN = użytkownicy, DC = winitpro, DC = en”
„CN = Administratorzy, CN = Wbudowany, DC = winitpro, DC = en”
„CN = Użytkownicy, CN = Wbudowany, DC = winitpro, DC = ru”
Świetnie, ma prawa administratora domeny! Pozostaje zresetować hasło do konta za pomocą samid - itpro. Ponownie można to zrobić za pomocą usługi:
sc tworzenie ResetPW binPath = "% ComSpec% / k użytkownik netto itpro PA $ w0rd94" start = auto
Nie zapomnij odmontować bazy danych AD i zrestartować serwer.