Phishing na zablokowanym ekranie: Jak podstawiona strona Windows 11 pomogła zdobyć hasło użytkownika podczas testów red team
Podczas realizacji jednego z projektów Red Team, jako punkt wejściowy do infrastruktury klienta otrzymaliśmy dostęp do komputera w sieci za pomocą TeamViewer. Nie posiadaliśmy jednak hasła użytkownika, na którym pracowaliśmy, więc za każdym razem, gdy komputer się blokował, musieliśmy prosić klienta o jego odblokowanie. Brak tego hasła powodował również inne problemy, dlatego postanowiłem zastosować lekką socjotechnikę, aby pozyskać potrzebne dane.
Po krótkim researchu okazało się, że podobny pomysł został już wcześniej zrealizowany. Wzorem do mojego ataku był projekt dostępny na GitHubie pod tym linkiem. Główna różnica polegała na tym, że przygotowana w repozytorium strona imitowała ekran blokady Windows 10, natomiast ja miałem do dyspozycji komputer z systemem Windows 11. Ekrany blokady obu systemów różnią się nieznacznie (rys. 1) – i nie chodzi tu wyłącznie o tapetę, którą można łatwo dostosować lub podmienić. Dlatego zdecydowałem się stworzyć własną wersję strony imitującej ekran blokady użytkownika.
Aby atak się powiódł, przechwycone hasło musiało zostać zapisane lokalnie w miejscu znanym tylko mnie lub przesłane na serwer C2. Wybrałem drugą opcję. Aby zabezpieczyć dane przed problemami związanymi ze znakami specjalnymi w haśle, przed wysłaniem zakodowałem je w formacie Base64. Dodatkowo, aby upewnić się, że użytkownik poprawnie wpisał hasło, strona za pierwszym razem zawsze wyświetlała komunikat o błędzie. Dopiero przy drugiej próbie ekran logowania zamykał się.
Ostatnim krokiem, poza odrobiną szczęścia, było uruchomienie strony w tzw. trybie kiosk. Ten tryb umożliwia otwarcie strony internetowej w pełnoekranowym widoku, bez dodatkowych elementów interfejsu przeglądarki. Tryb kiosk możecie kojarzyć z różnego rodzaju urządzeń stojących w miejscach publicznych, np. infokiosków. Warto jednak wspomnieć o istotnym problemie: w podanym repozytorium uruchomienie trybu kiosk opierało się na odpowiednich poleceniach w CMD lub PowerShell, które u klienta były zablokowane. Problem udało się obejść, tworząc skrót na pulpicie z odpowiednimi parametrami uruchomieniowymi.
Na rysunku 2 przedstawiono prawdziwy ekran blokady użytkownika z systemu Windows 11.
Na rysunku 3 widać stworzoną przeze mnie imitację tego ekranu. Brakuje w niej kilku elementów, takich jak ikony w prawej dolnej części ekranu. Nie udało mi się znaleźć zadowalających grafik, więc postanowiłem je usunąć. Jak się później okazało, brak tych elementów nie wpłynął na końcowy rezultat ataku.
Poniżej możecie zobaczyć wideo prezentujące działanie tego ataku.
Podsumowując, zaprezentowana technika okazała się skuteczna. Udało mi się przechwycić hasło użytkownika, co pozwoliło na przejście do kolejnych etapów projektu.