W kolejnym artykule dotyczącym hackowania i poznania haseł użytkowników Windows opiszemy nowy sposób na zdobycie pełnego dostępu do systemu Windows 10 za pomocą podatności w mechanizmie uwierzytelniania WiFi – MSCHAPv2.

UWAGA! Warunkiem zadziałania tej metody jest komputer Windows dołączony do domeny Active Directory. Atak działa na Windows 10 i prawdopodobnie na starszych wersjach systemu również.


Airstrike Attack

Atak nosi nazwę Airstrike i został opisany przez badacza Matthew Johnston na blogu. Żeby przeprowadzić atak musimy uzyskać fizyczny dostęp do komputera z Windows 10 ofiary i udostępnić w pobliżu nasz własny hostpot, do którego będzie próbował się uwierzytelnić jego komputer. Atak przeprowadzić można z poziomu okna logowania Windows lub zablokowanego pulpitu i wykonuje się go przez przepięcie hotspota, do którego ma się uwierzytelnić po Wifi komputer.

Dodatkowo można zastosować sztuczkę polegająca na tym, że nazwiemy naszą fałszywą sieć Wifi (SSID sieci) tak samo jak produkcyjna sieć Wifi w firmie i wzmocnimy odpowiednio mocno sygnał na urządzeniu/komputerze tak, aby komputer ofiary w pierwszej kolejności się z nią łączył.


W czym tkwi problem?

Stacje robocze Windows przyłączone do domeny Active Directory domyślnie dla użytkownika umożliwiają dostęp do opcji wyboru sieci z poziomu ekranu blokady pulpitu (okno logowania). Jest to ikonka sieci widoczna w prawym dolny rogu ekranu. Po kliknięciu na nią rozwiną się wszystkie dostępne sieci WiFi:

Osoba atakująca z fizycznym dostępem do zablokowanego urządzenia z obsługą Wi-Fi (takiego jak laptop lub stacja robocza) może wykorzystać tą możliwość, aby zmusić komputer do uwierzytelnienia do fałszywego punktu dostępu WiFi (hotspot) i przechwycić skrót odpowiedzi MSCHAPv2 dla konta komputera domeny.

Taki przechwycony przez Hotspot Wifi, w odpowiedzi komputera, skrót można następnie zdekodować w czasie mniejszym niż 24h za pomocą specjalnego skryptu i odzyskać z niego wartość skrótu hasła konta komputera (jego NTLM hash). Jak wiadomo komputery, tak samo jak użytkownicy uwierzytelniają się w domenie za pomocą hasła (NTLM hash).

Tak odzyskany skrót NTLM hasła konta komputera w połączeniu z identyfikatorem SID domeny może zostać użyty do sfałszowania biletu Kerberos (utworzenia Silver Ticket) i umożliwić atakującemu podszycie się pod uprzywilejowanego użytkownika i złamania zabezpieczeń komputera.

Przykładowo można użyć taki bilet Kerberos do utworzenia srebrnego biletu dla usługi CIFS komputera w celu uwierzytelnienia poprzez SMB jako użytkownik SYSTEM i uzyskania nieograniczonego dostępu do dysku twardego.

Przykład ataku możecie zobaczyć na poniższym nagraniu:

Zródło: Matthew Johnson

Jak twierdzi i pokazuje autor odkrytego ataku „można go przeprowadzić z zablokowanego urządzenia oraz wykorzystać do ominięcia pełnego szyfrowania dysku funkcją BitLocker i uzyskania dostępu do systemu plików urządzenia”!

Ponadto, ponieważ srebrne bilety mogą być sfałszowane dla uprzywilejowanych użytkowników, ten atak może być również wykorzystany do podniesienia uprawnień administratora lokalnego na urządzeniu!

Poniżej opisujemy źródło problemu i jak sobie z nim poradzić.


Problem z MSCHAPv2 w Windows

Jedną z najpopularniejszych metod uwierzytelniania wewnętrznego używanych w środowiskach Windows jest MSCHAPv2. Protokół MSCHAPv2 istnieje od dawna i ma kilka poważnych błędów kryptograficznych. Jednym z nich jest możliwość odzyskania skrótu NTLM dla dowolnego skrótu odpowiedzi MSCHAPv2 (niezależnie od złożoności hasła) za pomocą usługi crack.sh.
W środowisku Windows, gdy użytkownik domeny uwierzytelnia się do Hotspot używa protokołu PEAP z protokołem MSCHAPv, a wynikowy skrót odpowiedzi na żądanie uwierzytelnienia jest uzyskiwany z wartości skrótu NTLM hasła użytkownika domeny.

Oprócz uwierzytelniania użytkownika domeny system Windows udostępnia również opcję uwierzytelniania urządzenia / komputera. Służy do umożliwienia urządzeniu uwierzytelnienia w sieci bezprzewodowej przed zalogowaniem się użytkownika domeny.

Aby zapewnić użytkownikowi bezproblemowe działanie w środowisku Active Directory w firmach stosowany jest mechanizm uwierzytelniania się komputera do Wifi. Wtedy urządzenie musi najpierw uwierzytelnić się w sieci, zanim będzie mogło dotrzeć do usługi Active Directory i uwierzytelnić w niej użytkownika domeny (oczywiście z poziomu okna logowania). I tutaj mamy najpoważniejsze zagrożenie, ponieważ możemy przechwycić w takim scenariuszu hash NTLM komputera.

Skrót NTLM konta komputera ma szczególne znaczenie w kontekście środowisk domen Windows, ponieważ odnosi się do srebrnych biletów Kerberos. Bilety usługi Kerberos do usług hostowanych przez komputer (na przykład usługa CIFS) są podpisywane i szyfrowane przy użyciu skrótu NTLM konta komputera.


Atak z wykorzystaniem Silver Ticket

Przypominamy, żeby utworzyć Silver Ticket (srebrny bilet), potrzebujemy następujących informacji:

  • Skrót NTLM konta komputera – uzyskujemy go za pomocą opisywanej powyżej metody
  • Nazwa usługi, do której chcemy uzyskać dostęp np. CIFS
  • Identyfikator SID domeny – można to sprawdzić na komputerze wpisując komendę „whoami /all” i odcinając ostatnie liczby po myślniku

Jeśli posiadamy/zdobędziemy powyższe informacje Silver Ticket możemy utworzyć chociażby na Linux za pomocą pakietu Impacket i programu „ticketer.py”.
Należy uprzednio oczywiście skonfigurować klienta Kerberos na Linux oraz powiązać nasz utworzony bilet Kerberos ze zmienną KRB5CCNAME w systemie.

Przykład utworzenia Silver Ticket:

>ticketer.py -nthash e19ccf75ee54e06b06a5907af13cef42 -domain-sid S-1-5-21-3497261938-2581715043-3983387359 -domain kapitan.hack -spn cifs/win10_20H2.kapitan.hack kapitanhack.pl

oraz przypisania tak zapisanego biletu do zmiennej KRB5CCNAME:

>export KRB5CCNAME=kapitanhack.pl.ccache

Na powyższym ekranie widzimy utworzony bilet Kerberos dla użytkownika kapitanhack.pl przypisany dla usługi CIFS. Zatem możemy wykonać sesję do komputera Windows 10 i podpiąć się do jego zasobów dyskowych na uprawnieniach administratora.
Wykorzystamy do tego klienta „smbclient” z przełącznikiem „-k” oznaczającym, że w połączeniu używamy Kerberos.


Jak sobie radzić z problemem?

Problem został zgłoszony do Microsoft w grudniu zeszłego roku (otrzymał CVE-2021-28316) i rozwiązany w najnowszej aktualizacji zabezpieczeń dopiero w kwietniu 2021 r.

Zalecamy utwardzić bezpieczeństwo na komputerze i ukryć możliwość dostępu do wyboru sieci z poziomu do interfejsu użytkownika (z ekranu blokady). Można to wyłączyć globalnie za pomocą poniższego ustawienia zasad grupy (GPO):

Computer Configuration | Administrative Templates | System | Logon –> “Do not display network selection UI”

Powyższe ustawienie możemy zmienić bezpośrednio w rejestrze systemowym w ścieżce:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System

ustawiając wartość klucza „DontDisplayNetworkSelectionUI” na „1”.


Podsumowanie

Opisywana metoda ataku może stanowić poważne zagrożenie dla środowisk z komputerami dołączonymi do domeny Active Directory, ponieważ za jej pomocą można przejąć uprawnienia systemowe (SYSTEM) do komputera i przejąć na nim wszystkie konta uprzywilejowane (patrz kampania CYBER KILLCHAIN).
Zalecamy też ciągłą aktualizację komputerów, ukrycie możliwości przełączenia sieci z poziomu ekranu blokady oraz monitorowanie kont uprzywilejowanych w środowisku domenowym.

Podziel się z innymi tym artykułem!