DCShadow to jedno z najnowszych zagrożeń w środowisku Active Directory wykorzystywane w ostatniej fazie KILLCHAIN. Pozwala atakującemu, który uzyskał już prawa administratora domeny, na wprowadzanie zmian w środowisku pozostając niezauważonym. Exploit ten jest podobny do DCSync, który omawialiśmy wcześniej. Wprowadzony został jako funkcja Mimikatz’a w styczniu 2018 roku. Jego mechanizm również opiera się na replikacji kontrolerów domen, jednak tutaj możliwości są dużo większe. Za pomocą DCSync można było poprosić legalny kontroler domeny o replikację danych dotyczących hasła konkretnego konta w domenie. DCShadow umożliwia atakującym podszycie się pod kontroler domeny, dokonanie dowolnej zmiany w AD i wysłanie tej zmiany na legalny kontroler. Wszystko to bez rejestrowania żadnych informacji w logach, co powoduje, że SIEMy w tym przypadku są komplenie bezradne. Całość procesu przeprowadzenia DCShadow wygląda następująco.
Niezbędnym narzędziem do wykonania ataku jest oczywiście Mimikatz. Pierwszą rzeczą, którą przygotować musi atakujący jest komenda opisująca zmianę w AD. Dla przykładu, wyrażenie do zmiany numeru telefonu użytkownika Administrator wygląda następująco:
lsadump::dcshadow /object:CN=Administrator,CN=Users,DC=APPEAL,DC=lab /attribute:telephoneNumber /value:000111222
Kolejnym krokiem jest uruchomienie Mimikatz’a w kontekście lokalnego konta SYSTEM. Działanie to jest niezbędne, ponieważ zmiana w AD musi być wykonana poprzez obiekt typu komputer, a nie użytkownik domenowy. Inaczej replikacja nie powiodła by się. Istnieje wiele metod uruchamiania procesów jako SYSTEM. Dla przykładu użycie PsExec:
W uruchomionym na koncie SYSTEM Mimikatz’ie wpisujemy przygotowaną wcześniej komendę do wprowadzenia zmian w Active Directory:
Ostatnią rzeczą jaką musi zrobić sprawca ataku będzie wywołanie replikacji. Do tego niezbędne są uprawnienia konta administratora domeny. Uruchamiając nowe okno Mimikatz’a jako admin domeny należy wprowadzić ostatnią komendę, a zmiana zostanie zatwierdzona przez prawdziwy kontroler. Przedstawiono to poniżej:
Sprawdzając właściwości konta domenowego Administrator widzimy, że DCShadow spełnił swoje zadanie i numer telefonu został zmieniony. Oczywiste jest to, że w identyczny sposób atakujący są w stanie zmieniać członkostwo w grupach, uprawnienia i inne bardziej znaczące atrybuty.
Podsumowując w krótkich słowach przebieg ataku DCShadow. Osoba atakująca uzyskuje prawa administratora domeny i chce wprowadzić zmiany w środowisku, które nie pozostawią trwałego śladu. W tym celu rejestruje komputer na którym działa (np. stacje roboczą), jako kontroler domeny w usłudze Active Directory, wprowadzając zmiany w schemacie konfiguracji i wartości SPN stacji roboczej. AD uważa teraz, że ta stacja jest kontrolerem domeny i ma zaufanie do replikacji zmian. Atakujący dokonuje zmianę w AD na fałszywym kontrolerze. Stacja robocza udostępnia tę zmianę prawdziwym kontrolerom domeny poprzez replikacje. Replikacja jest wywoływana przez DCShadow, zmiana jest replikowana, a następnie zatwierdzana przez legalny kontroler domeny.
Jak się chronić?
Należy zwrócić uwagę na kilka istotnych rzeczy. Ponieważ, zmiany atakującego są zatwierdzane przez replikacje, to nie są rejestrowane w event logach kontrolera domeny. Zwykle, logi takich zmian przechowywane są w dziennikach zdarzeń kontrolera domeny na którym wykonana została ta zmiana. W tym przypadku taki DC nie istnieje! To właśnie sprawia, że takie działanie jest bardzo trudne do wykrycia i dalszej inwestygacji.
Można sobie więc wyobrazić, dlaczego atak ten jest tak przerażający dla większości pracowników cyberbezpieczeństwa. Funkcja DCShadow zapewnia możliwość wprowadzania krytycznych zmian w środowisku AD, a zmian tych nie można wykryć ani im zapobiec. DCShadow korzysta z natywnych funkcji Active Directory, więc nie jest luką w zabezpieczeniach którą można załatać. Utrudnia to naturalne zapobieganie temu zjawisku.