W dzisiejszym odcinku hakowania pokażemy, jak za pomocą specjalnie przygotowanego kodu możemy przeprowadzić w trybie offline atak na Windows i utworzyć w nim nowe konto administratora.
Scenariusz może się przydać w sytuacji, gdy utraciliśmy dostęp administracyjny do Windows lub chcemy taki dostęp sobie przydzielić.
Atak offline na Windows
Ten typ ataku jest bardzo popularny w środowisku IT, ponieważ za jego pomocą możemy przeprowadzić wiele złych aktywności, które dodatkowo nie są rejestrowane przez system ani wykrywane przez specjalistyczne narzędzia do bezpieczeństwa. Scenariuszy użycia może być naprawdę bardzo dużo, od wgrywania złośliwych skryptów po podmianę bibliotek na Windows. Nasz scenariusz zakłada jedynie utworzenie nowego konta z uprawnieniami administratora.
W celu wykonania powyższego zadania będziemy potrzebować pliku wykonywalnego napisanego w C przez Grzegorza. Skompilowaną wersję (plik OfflineAddAdmin2.exe) możecie pobrać z konta GitHub Grzegorza tutaj.
O metodzie tej Grzegorz pisze na Twitterze:
Narzędzie wykorzystuje dwie wbudowane w Windows biblioteki DLL: „offlinelsa.dll” oraz „offlinesam.dll”.
Program nie robi nic poza przeprowadzeniem bezpośredniej manipulacji bazy SAM (Security Account Management), w której Windows trzyma wszystkie poświadczenia użytkowników.
Jeśli zerkniemy do kodu, zobaczymy, że w funkcji LoadOfflineDlls ładuje on te dwie biblioteki z katalogu „C:\Windows\system32”.
Musimy też pamiętać o tym, że w kodzie Grzegorza została zaszyta statyczna nazwa dodawanego konta do systemu oraz hasło. Poniżej prezentujemy miejsce, w którym się ono znajduje.
Jeśli wszystko się uda, to po wykonaniu kodu na Windows będziemy mogli cieszyć się nowym kontem o nazwie „Hacker” z hasłem „P@ssw0rd”.
Czego potrzebujemy do przeprowadzenia ataku offline?
Przede wszystkim w celu przeprowadzenia takiego ataku potrzebujemy fizycznego dostępu do komputera lub konsoli (w przypadku wirtualnej maszyny) oraz obrazu instalacyjnego Windows (ISO). No i oczywiście pliku wykonywalnego Grzegorza (OfflineAddAdmin2.exe).
Jak dodać admina w OfflineAddAdmin2.exe?
Poniżej prezentujemy kroki pozwalające na dodanie nowego konta administratora lokalnego na Windows.
Krok 1. Kopiujemy plik OfflineAddAdmin2.exe na Windows
Umieszczamy nasz plik wykonywalny „OfflineAddAdmin2.exe” w katalogu „C:\Temp” na Windows.
Krok 2. Restartujemy komputer i odpalamy instalator Windows
Jeśli wgraliśmy plik OfflineAddAdmin2.exe (ewentualnie możemy go zgrać podczas późniejszych kroków, np. umieszczając go na pendrivie), to wykonujemy restart komputera i podpinamy płytę instalacyjną lub obraz ISO wersji instalacyjnej Windows.
Podczas uruchamiania komputera nie należy zapominać o wciśnięciu dowolnego klawisza – pozwoli to uruchomić instalator z płyty lub obrazu ISO.
Krok 3. Uruchamiamy wiersz linii komend podczas pracy instalatora
Ważna operacją jest tutaj naciśniecie kombinacji klawiszy „SHIFT +F10”. Pozwoli nam to na otwarcie wiersza linii poleceń, z którego będziemy mogli uruchomić nasz program.
Krok 4. Uruchamiamy narzędzie OfflineAddAdmin2.exe z linii komend
Domyślnie wiersz linii komend zaprowadzi nas do dysku X ścieżki X:\Sources. System operacyjny Windows jest podpięty pod partycję (dysk) „C:”. Warto się jednak o tym upewnić, ponieważ czasem może się zdarzyć, że system zostanie podpięty pod inną partycję. By to sprawdzić, można użyć komendy „mountvol”.
Wykonujemy komendę uruchomienia pliku OfflineAddAdmin2.exe znajdującego się w ścieżce „C:\Temp” z parametrem wskazującym katalog zainstalowanego wcześniej Windows.
Na powyższym ekranie widzimy, że wszystko się udało i nowe konto zostało utworzone w bazie SAM.
Krok 5. Restartujemy system
Do pełni szczęścia i radości z nowego konta potrzebujemy już tylko ponownego restartu komputera.
Od tego momentu możemy cieszyć się nowym administratorem o nazwie „Hacker”, do którego znamy hasło?
Podsumowanie
Opisywany atak jest trudny do wykrycia przez systemy bezpieczeństwa, ponieważ w trybie offline nie funkcjonują żadne usługi. Metoda działa na wszystkich wersjach systemu operacyjnego Windows. Z powyższej aktywności nie są także generowane logi bezpieczeństwa, więc jedynym sposobem dowiedzenia się, czy w systemie powstało nowe konto, jest monitoring takich kont i audyt. Stwarza to ogromne możliwości dla atakujących, jako że mogą oni w ten sposób nie tylko dodawać konta, ale wgrywać złośliwe skrypty, podmieniać biblioteki itp.
Z perspektywy atakującego jest on również trudny do przeprowadzenia, ponieważ wymaga posiadania trzech rzeczy: pliku wykonywalnego (np. tego utworzonego przez Grzegorza), fizycznego dostępu do komputera i obrazu instalacyjnego Windows.
W tym przypadku środkiem zaradczym byłoby na pewno szyfrowanie dysku (opcja „full disk encyption” w BitLocker) oraz blokada możliwości uruchamiania Windows z DVD/CD lub innych partycji podczas bootowania.
Największa korzyść, jaką widzimy w tym scenariuszu, to odzyskiwanie dostępu do utraconego hasła administratora na Windows.