Kolejną techniką bardzo często wykorzystywaną w wewnętrznym ataku na organizacje jest kradzież pliku ntds.dit z kontrolera domeny. W pliku tym przechowywane są skróty (ang. hash) wszystkich haseł do kont w Active Directory. Dla atakującego, po wyodrębnieniu danych z pliku ntds.dit, nic nie stoi na przeszkodzie aby podszywać się pod każdego użytkownika w domenie. Przy dużej koncentracji na wykrywaniu ataków opartych na uwierzytelnianiu, takich jak Pass-the-Hash i Pass-the-Ticket, monitorowanie pliku ntds.dit jest często pomijane i ignorowane. Strata danych z kontrolera domeny prowadzi do poważnych problemów w organizacji i wiąże się z kompromitacją wszystkich kont w AD.

Plik ntds.dit jest to baza przechowująca dane Active Directory. Zawiera informacje o użytkownikach, grupach oraz członkostwie w grupach. Co najważniejsze, zawiera skróty haseł dla wszystkich użytkowników w domenie. Jeśli atakujący posiądzie dane z tego chronionego pliku, może za pomocą narzędzia Mimikatz przeprowadzić atak Pass-the-Hash lub za pomocą innych narzędzi złamać hasła do kont. Wyodrębnianie i łamanie haseł może odbywać się offline, więc wszelkie takie działania będą niewykrywalne. Ostatecznie, kiedy atakujący posiądzie plik ntds.dit i wyodrębni z niego chronione dane, będzie mógł działać jako każdy użytkownik w domenie, nawet administrator czy konto krbtgt.

Aby wyciągnąć zahaszowane hasła z chronionego pliku, pierwszym krokiem jest uzyskanie kopii tego pliku. Nie jest to takie proste jakby się mogło wydawać, ponieważ plik ntds.dit znajduje się kontrolerze domeny i jest ciągle używany przez usługę AD. Kopiowanie jego jest więc zablokowane. Przy próbie skopiowania zobaczymy komunikat o błędzie:


Są jednak sposoby, aby to obejść. Jednym z nich jest użycie platformy PowerSploit , stworzonej do testów penetracyjnych we frameworku PowerShell’a. Jeden z modułów tej platformy to Invoke-NinjaCopy, który tworzy kopię pliku na podstawie czytania danych wprost z woluminu NTFS. Pozwala to obejść restrykcję ciągłego dostępu do pliku przez usługę AD i skopiować go bez wywoływania alarmów. NinjaCopy nie uruchamia żadnych podejrzanych usług, ani nie wstrzykuje modyfikuje pamięci żadnych procesów. Jest więc niezauważalny w środowisku.

Zazwyczaj atakujący działa następujaco. Uzyskuje zdalny dostęp do kontrolera domeny we wcześniejszych fazach KILLCHAIN. Na kontrolerze wywołuje NinjaCopy i tworzy lokalne kopie plików ntds.dit oraz system.hive. Drugi z plików zawiera systemowe klucze rejestru niezbędne do wyodrębnienia danych o kontach. Następnie haker wykonuje kopie plików na swoją maszynę oraz usuwa kopie lokalne na kontrolerze domeny w celu zatarcia śladów. Działania te przedstawione są ponizej:

Wykorzystanie NinjaCopy do wykonania kopii plików będących w użyciu
Kradzież plików z kontrolera domeny i usunięcie lokalnej kopii

Jak wspomniano wcześniej, wartość tego ataku polega na tym, że gdy haker ma już potrzebne pliki, resztę ataku można przeprowadzić w trybie offline, aby uniknąć wykrycia. Następne kroki to wyodrębnienie informacji o haśle z pliku. DSInternals udostępnia do tego moduł PowerShell’a, który może być użyty do wyodrębnienia skrótów haseł. Potem zostaje już tylko wykonanie Pass-the-Hash za pomocą Mimikatz’a lub można też spróbować złamać hashe w celu uzyskania wartości haseł w postaci czystego tekstu. Gdy atakujący posiądzie poświadczenia uprzywilejowanych kont nie ma żadnych ograniczeń i może uzyskać dostęp do wszystkich zasobów w środowisku.


Jak się chronić?


Najlepszym sposobem ochrony przez tym atakiem jest ograniczenie liczby kont użytkowników, którzy mogą logować się do kontrolera domeny, w tym członków grup: Domain Admins, Schema Admins, Enterprise Admins, Print Operators, Server Operators i Account Operators. Grupy te powinny być stale monitorowane pod kątem zmian członkostwa. Ponadto wykorzystanie oprogramowania monitorującego i ostrzegającego przed próbami kopiowania plików na kontrolerze domeny również jest wysoce wskazane. Należy mieć też na uwadze, że administratorzy często wykonują kopie zapasowe wrażliwych plików z kontrolerów domeny. Backupy te, powinny być tak samo dobrze chronione i monitorowane jak oryginały.