Menu dostępności

Profile aplikacji Windows Terminal – sposób na zaszycie się w środowisku

Techniki typu “persistence” to jedne z kluczowych umiejętności współczesnych cyberprzestępców. Pozwalają na niezauważalny i trwały dostęp do środowiska ofiary, często nawet z podwyższonymi uprawnieniami. Przy targetowanych atakach faza „persistence” może trwać nawet miesiącami, podczas której atakujący ma wpływ oraz ciągły podgląd na działanie użytkownika. Trwały dostęp do stacji roboczej zwykle jest wstępem i przygotowaniem hackera do dalszych operacji w sieci wewnętrznej.
O atakach „Active Directory Persistence” pisaliśmy w dedykowanej temu kampanii na Kapitanie Hacku – link. Dziś, chcemy przyjrzeć się ciekawej technice utworzenia przyczółku na stacji roboczej z systemem Windows 10 i 11. Klasyczne przykłady utworzenia takiego backdoor’a to dodanie polecenia do Harmonogramu Zadań (Scheduled Tasks) lub bezpośrednio w rejestrze do programów uruchamianych przy starcie systemu (Run at Boot).
Niedawno opisany został mało znany program Windows Terminal, który również może posłużyć do podobnych złośliwych działań.


Co to jest Windows Terminal?

Dla osób, które nie są zaznajomione z narzędziem poniżej przedstawimy jego krótki opis. Windows Terminal jest to emulator różnych powłok dla systemu Windows 10. Główną jego cechą jest połączenie dostępnych w systemie Windows wierszy poleceń w interfejsie użytkownika udostępnianym przez jeden program. Jest oprogramowaniem typu open-source, którego kod możemy znaleźć na Git-Hub. Windows Terminal został zapowiedziany podczas konferencji Build w 2019 roku. Od 2020 roku program jest dostępny do pobrania na każdą stacje roboczą Windows 10 i Windows 11 przez Microsoft Store. Instalowany jest w kontekście konta użytkownika lokalnego lub użytkownika Microsoft. Aplikacja udostępnia interfejs bazujący na kartach. Każda karta udostępnia jeden z obsługiwanych wierszy poleceń np. PowerShell, standardowy wiersz poleceń Windows, Azure Cloud Shell czy powłokę systemu bazującego na jądrze Linux uruchomionego w ramach Windows Subsystem for Linux. Terminal wspiera wyświetlanie znaków kodowania UTF-8, co oznacza, że może wyświetlać tekst w wielu alfabetach oraz ikony Emoji. Edycja konfiguracji odbywa się poprzez modyfikację pliku konfiguracyjnego w formacie JSON, czemu przyjrzymy się bardziej, bo właśnie tutaj zaczyna się nasz backdoor. Poniżej okno startowe Windows Terminal uruchomionego na domyślnej konfiguracji:


Jak można użyć go do „złych celów”?

Tak jak wspominaliśmy, Windows Terminal zasilany jest plikiem konfiguracyjnym w formacie JSON, który znajduje się w katalogu widocznym poniżej:

Oczywiście użytkownik będący właścicielem profilu jest w stanie edytować plik i nadpisać jego konfiguracje. Domyślnie, sekcja „profiles”, którą będziemy się dalej zajmowali wygląda w następujący sposób:

Czytając dokumentacje Microsoft na temat profili Windows Terminal możemy natknąć się na wiele interesujących parametrów, które wykorzystane w złośliwych celach mogą przynieść drastyczne skutki. Pierwszym z nich jest „Command line”:

źródło: https://docs.microsoft.com/en-us/windows/terminal/customize-settings/startup

Jak widzimy, w parametrze można wpisać dowolną komendę, która po prostu przy starcie okna w tym profilu zostanie automatycznie wywołana. Spróbujmy na potrzeby testów uruchomić plik wykonywalny notepad.exe. Nasz wpis w zmodyfikowanym profilu będzie wyglądał jak poniżej:

Uruchomienie polecenia w ten sposób nie jest jednak jeszcze backdoor’em, ponieważ wymaga od użytkownika konkretnej akcji do wykonania – trzeba otworzyć profil o nazwie „POC”. Dokumentacja Microsoft znowu spieszy nam z pomocą i daje do dyspozycji parametr, który spowoduje, że polecenie zostanie uruchomione za każdym razem, gdy ktoś otworzy aplikacje „Windows Terminal”. Po prostu trzeba wskazać nasz złośliwy profil jako domyślny:

źródło: https://docs.microsoft.com/en-us/windows/terminal/customize-settings/startup

W normalnych okolicznościach domyślnym profilem jest okno PowerShell, jednak my podmieniamy w konfiguracji tę wartość na nasz guid:

Staje się to coraz bardziej interesujące, ponieważ teraz możemy umieścić „złośliwe” polecenie i poczekać, aż ktoś po prostu otworzy Windows Terminal.

Jednak w dokumentacji Microsoft znajdziemy jeszcze jeden niezbędny parametr do stworzenia idealnego złośliwego zadania typu „persistence”. Chodzi o uruchamianie przy starcie systemu (Launch on machine startup):

źródło: https://docs.microsoft.com/en-us/windows/terminal/customize-settings/startup

Jeśli dodamy ten parametr z wartością „true” w naszym profilu Windows Terminal, to oczywiście zostanie on wraz ze złośliwym procesem uruchomiony przy starcie systemu. Tak teraz wygląda konfiguracja w pliku „settings.json”.

Po restarcie systemu możemy z powodzeniem obserwować nasz backdoor o nazwie notepad.exe uruchomiony w kontekście legalnego procesu WindowsTerminal.exe.

Istnieje możliwość jeszcze jednej modyfikacji, która pozwala na uruchamianie polecenia z podwyższonymi uprawnieniami – jako administrator. Poniżej szczegóły:

źródło: https://docs.microsoft.com/en-us/windows/terminal/customize-settings/startup

Warto dodać, że nie jest to idealne rozwiązanie, bo opcja ta nie omija zabezpieczenia UAC i po jej użyciu, przy starcie systemy pojawi się okno z poniższym komunikatem:

Jeśli w scenariuszu ataku chcemy zawrzeć trochę socjotechniki i spróbować nakłonić administratora czy dewelopera do kliknięcia potwierdzenia, może to być dobry motyw, ponieważ w powyższym oknie UAC nie widać nic podejrzanego.


Podsumowanie

Metoda z Windows Terminal z pewnością zyska grono zwolenników wśród atakujących. Jest o wiele bardziej „na czasie” w porównaniu z ukryciem zadania w „Task Scheduler” czy innymi technikami trwałego dostępu stosowanymi głównie na serwerach Windows. Wykrycie takiego procesu może być bardzo trudne, a nawet niemożliwe przez klasyczne oprogramowanie AV, gdyż korzysta się tutaj z zaufanych aplikacji Microsoft pod którą podczepiony jest złośliwy proces potomny.

Popularne

Uwaga! Trwa praktyczne wykorzystywanie krytycznej luki w systemach Fortinet!

Uwaga! Trwa praktyczne wykorzystywanie krytycznej luki w systemach Fortinet!

Święta, święta i po świętach. I dzisiaj, zamiast malować pisanki, piszemy o Fortinecie. Naszym „ulubionym” producencie firewallów, który pojawia się na portalu dość często. Nową okazję do publikacji dała...
Grupa ransomware ALP-001 twierdzi, że zaatakowała Polsat

Grupa ransomware ALP-001 twierdzi, że zaatakowała Polsat

W niedzielę wieczorem na zagranicznych serwisach newsowych poświęconych malware pojawiły się informacje o cyberataku na serwis Polsatu. Według doniesień za incydent odpowiada grupa ransomware ALP-001, która...
DarkSword – cichy zabójca iPhone’ów. Nowy exploit, który przejmuje kontrolę nad urządzeniem w kilka sekund

DarkSword – cichy zabójca iPhone’ów. Nowy exploit, który przejmuje kontrolę nad urządzeniem w kilka sekund

Powstał nowy, zaawansowany zestaw exploitów wymierzony w użytkowników iPhone’ów. Narzędzie o nazwie DarkSword pokazuje, że nawet platformy uznawane za jedne z najbezpieczniejszych mogą stać się celem...
Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

W tym artykule pokażemy, jak możemy zmienić hasło administratora na komputerze posiadając do niego fizyczny dostęp. Artykuł ten można potraktować także jako przestrogę dla firm, które nie zaimplementowały jeszcze odpo...
WhatsApp jako wektor ataku – Microsoft ostrzega przed nową kampanią malware ukrytą w wiadomościach

WhatsApp jako wektor ataku – Microsoft ostrzega przed nową kampanią malware ukrytą w wiadomościach

Cyberprzestępcy po raz kolejny wykorzystują zaufanie użytkowników do popularnych komunikatorów. Najnowsze ostrzeżenie Microsoftu ujawnia zaawansowaną kampanię, w której złośliwe oprogramowanie jest rozsy...