Menu dostępności

Ukrycie i uruchomienie kodu malware na Windows 10 z wykorzystaniem backoor’a w Task Schedulerze

W dzisiejszym artykule opiszemy kolejną, ciekawą technikę trwałego ukrywania się cyberprzestępców w systemie Windows, umożliwiającą uruchomienie złośliwego oprogramowania. Tym razem napiszemy o możliwości wykorzystania luki w komponencie Windows o nazwie Task Scheduler (harmonogram zadań) pozwalającej uruchomić złośliwy kod w systemie bez konieczności tworzenia w nim dodatkowych zadań (Scheduled Tasks). Pokażemy jak za pomocą tej metody możemy zdobyć także największe uprawnienia w systemie Windows, czyli LOCAL SYSTEM.

Nadmienię przy tej okazji, że ostatnio opisywaliśmy sposób na ukrywanie się atakujących w systemie Windows wykorzystując do tego funkcję innej usługi Print Spooler o nazwie Port Monitor.
Sposobów na ukrycie uruchomienia złośliwego kodu w Windows jest wiele. Jednym z nich, wykorzystywanym przez cyberprzestępców jest tworzenie zaplanowanych zadań (ang. Scheduled Task). Lecz w opisywanym tutaj przypadku, aby uruchomić złośliwy kod nie będziemy tworzyć nowego, zaplanowanego zadania w systemie. Byłoby to zbyt oczywiste i w miarę łatwe do wykrycia przez narzędzia Security czy zespół BlueTeam. Skupimy się na ciekawej możliwość polegającej na dostarczeniu do systemu Windows złośliwej biblioteki z kodem, którą wgramy w odpowiednie miejsce. Następnie system Windows sam załaduje ją automatycznie i wraz z uruchomieniem usługi Task Scheduler uruchomi nasz kod.


Bug w Task Scheduler pozwala uruchomić kod jako LOCAL SYSTEM!

Jak to jest możliwe, że bez tworzenia nowego zadania w systemie będziemy w stanie użyć Task Scheduler’a do uruchomienia kodu? Powód jest prosty – istniejąca luka w kodzie Microsoft, która do tej pory nie została naprawiona. Błąd polega na tym, że usługa harmonogram zadań systemu Windows (Windows 10 i Windows Server 2016) próbuje załadować nieistniejącą bibliotekę DLL WptsExtensions.dll z katalogu systemowego %windir%\System32. Microsoft w systemie Windows 10 (oraz Windows 2016) wprowadził bibliotekę WPTaskScheduler.dll (bibliotekę DLL harmonogramu zadań WP), która po poprawnym wywołaniu umożliwia nam uruchomienie własnego kodu w systemie. Jednym z pierwszych zadań wewnątrz WPTaskScheduler.dll:: WptsInitialize() jest wywołanie funkcji InitializeWPTS(). Ta funkcja z kolei ładuje nieistniejącą w systemie bibliotekę WptsExtensions.dll i rozwiązuje następujące funkcje, jeśli biblioteka DLL została znaleziona i załadowana poprawnie:

Zatem jeśli będziemy w stanie stworzyć plik WptsExtensions.dll i wgrać go do katalogu systemowego mamy backdoora pozwalającego nam uruchomić dowolny kod! Dodatkowym bonusem wykorzystania tego błędu jest możliwość uruchomienia w systemie Windows łatwy sposób dowolnego kodu na najwyższych uprawnieniach – LOCAL SYSTEM, ponieważ usługa Task Scheduler działa właśnie w tym kontekście.


Scenariusz uruchomienia złośliwej Biblioteki przez Task Scheduler


W celu przekonania się, czy opisana powyżej metoda naprawdę działa na najnowszym Windows 10, utworzyliśmy w Visual C++ bibliotekę DLL, której załadowanie przez usługę Task Scheduler’a spowoduje, że w systemie uruchomimy program – notepad.exe (notatnik).


Krok 1 – utworzenie biblioteki DLL

Poniżej zamieszczamy kod biblioteki w C++.

Załadowanie biblioteki do pamięci powoduje uruchomienie funkcji WinExec, która w parametrach uruchomi notatnik. Oczywiście zamiast uruchamiania notatnika moglibyśmy pokusić się o uruchomienie czegokolwiek innego (np. payload).


Krok 2 – skopiowanie biblioteki WptsExtensions.dll do katalogu System32

Następnie tak skompilowaną bibliotekę WptsExtensions.dll musimy wgrać do katalogu systemowego „C:\Windows\System32”. Lecz, aby to wykonać musimy posiadać lokalne uprawnienia administracyjne na Windows 10 (jak zdobyć takie uprawnienia pisaliśmy wielokrotnie na Kapitanie Hack’u).


Krok 3 – restart komputera lub usługi Task Scheduler

Można odczekać do restartu systemu lub spróbować zrestartować usługę ręcznie. Ponowne załadowanie usługi harmonogramu (Task Scheduler) załaduje naszą bibliotekę DLL.

W wyniku załadownia naszej biblioteki w systemie zobaczymy uruchomiony proces notatnika (notepad.exe). Widzimy również, że został on uruchomiony przez proces „svchost.exe” na uprawnieniach NT AUTHORITY\LOCAL SYSTEM. To ten dodatkowy bonus, o którym wcześniej pisaliśmy.


Podsumowanie


Powyższy przykład obala teorię, w której powinniśmy zwracać uwagę (monitorować) na wszystkie załadowane biblioteki, których lokalizacja pochodzi z zewnętrznych ścieżek (nie tych systemowych) przez wbudowane procesy Windows. Nasuwa się nam pytanie: Dlaczego Microsoft do tej pory nie zablokował lub nie naprawił tej możliwości? Być może uważa, że nie stanowi ona wysokiego zagrożenia dla bezpieczeństwa Windows, bo żeby móc wgrać cokolwiek do katalogu „C:\Windows\System32” trzeba posiadać uprawnienia administracyjne. O to ostatnie zbytnio nie powinniśmy się przejmować, ponieważ istnieją sposoby na ich zdobycie, które często pokazujemy na Kapitanie. Może opisywana przez nas metoda uruchomienia dowolnego kodu nie jest zbyt oryginalna ani tajemna, ale przynajmniej jest trochę bardziej dyskretna (podobnie jak inne ukryte możliwości w Windows :)).

Popularne

Od kart perforowanych do hasła. Historia logowania

Od kart perforowanych do hasła. Historia logowania

Dziś logowanie jest czynnością banalną: login, hasło, kliknięcie. Trudno sobie wyobrazić komputer bez kont użytkowników i uwierzytelniania. A jednak przez pierwsze dekady informatyki logowanie w ogóle...
Jak zoptymalizować budżet na cyberbezpieczeństwo w 2026 roku

Jak zoptymalizować budżet na cyberbezpieczeństwo w 2026 roku

W czasach rosnących zagrożeń i coraz bardziej zaawansowanych ataków wydatki na cyberbezpieczeństwo nie są już tylko „kosztem” -  stały się strategiczną inwestycją chroniącą integralność danych, reputację o...
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...
Uwaga na PDFSider – nowy zaawansowany malware używany przez grupy ransomware

Uwaga na PDFSider – nowy zaawansowany malware używany przez grupy ransomware

Nowo zidentyfikowana rodzina złośliwego oprogramowania o zaawansowanych możliwościach jest wykorzystywana w atakach ukierunkowanych (APT) – również przez wiele grup ransomware. Zagrożenie zostało...
Hakerzy z Korei Północnej używają AI do generowania backdoorów PowerShell w kampaniach phishingowych

Hakerzy z Korei Północnej używają AI do generowania backdoorów PowerShell w kampaniach phishingowych

Najbardziej aktywny północnokoreański aktor zagrożeń, znany jako Konni (śledzony również pod nazwami takimi jak Opal Sleet, TA406 czy Earth Imp), rozszerzył swoje taktyki cyberataków, sięgając po narzędzi...