Menu dostępności

Atak wykorzystujący usługę Windows Background Intelligent Transfer

Microsoft wprowadził Background Intelligent Transfer Service (BITS) w systemie Windows XP, aby uprościć i skoordynować pobieranie i przesyłanie dużych plików. Aplikacje i składniki systemu, w szczególności Windows Update, używają usługi BITS do dostarczania aktualizacji systemu operacyjnego i aplikacji, dzięki czemu można je pobierać w tle przy minimalnych zakłóceniach dla użytkownika.

Inne aplikacje współdziałają z usługą BITS w tle, tworząc zadania z jednym lub większą liczbą plików do pobrania lub przesłania. BITS działa w kontekście usługi hosta jako proces i może zaplanować transfery w dowolnym momencie. Informacje o zadaniach, plikach i stanach są przechowywane w lokalnej bazie danych.


Jak atakujący wykorzystują BITS?


Już po krótkim opisie tej usługi można sobie wyobrazić użycie jej w niepowołany sposób. Podobnie jak w przypadku wielu innych przestarzałych technologii, BITS może być używana zarówno przez legalne aplikacje, jak i przez osoby atakujące. Pisaliśmy już o jednym z przypadków jej użycia wcześniej. Gdy złośliwe aplikacje tworzą zadania BITS, pliki są pobierane lub przesyłane w kontekście procesu usługi hosta (svchost). Jest to niezwykle przydatne do omijania firewall czy AV, które mogą blokować złośliwe lub nieznane procesy, a także pomaga ukryć, która aplikacja zażądała transferu danych. Przesyłanie przez BITS można również zaplanować, co pozwala na ich realizację w określonych godzinach bez polegania na innych procesach lub harmonogramie zadań.

Transfery BITS są asynchroniczne, co może powodować sytuacje, w których aplikacja, tworząca zadanie, może nie działać po zakończeniu żądanych transferów. Aby rozwiązać ten scenariusz, można tworzyć zadania BITS za pomocą polecenia powiadamiającego, które zostanie wykonane po zakończeniu zadania lub w przypadku wystąpienia błędów. Co ciekawe, komendy powiadamiające powiązane z zadaniami BITS mogą np. uruchamiać dowolny plik wykonywalny. Atakujący wykorzystali właśnie tę funkcję jako metodę utrzymywania trwałości w systemie.

Ponieważ zawartość poleceń dla zadań BITS jest przechowywana w bazie danych, a nie w tradycyjnych lokalizacjach rejestrów, mogą zostać przeoczone przez narzędzia, które próbują zidentyfikować pliki wykonywalne i ich wywołania. Zadania BITS można tworzyć za pomocą wywołań funkcji API lub za pomocą wiersza poleceń bitsadmin.

Na przykładach poniżej pokazano, w jaki sposób można użyć zadania BITS do pobrania pliku oraz wyzwolenia jego wykonania.

Użycie „bitsadmin” do stworzenia zadania, które pobiera i zapisuje złośliwy ładunek
źródło: fireeye.com/blog

Użycie „bitsadmin” do stworzenia zadania, które uruchamia złośliwy plik po próbie pobrania z nieistniejącego URL; źródło: fireeye.com/blog

Podgląd na drzewo procesów podczas wywołania drugiej komendy


Usługa BITS a Windows 10


Usługa Background Intelligent Transfer Service pozostała w dużej mierze niezmieniona od czasu jej wprowadzenia. System Windows 10 wprowadził jednak zmiany w architekturze usługi, w tym zupełnie nowy format bazy danych. W systemie Windows 10 baza danych QMGR jest przechowywana w formacie Extensible Storage Engine (ESE). Bazy danych ESE były używane w wielu innych produktach firmy Microsoft, w tym w Exchange, Active Directory i Internet Explorerze.

System Windows 10 przechowuje bazę danych QMGR w jednym pliku o nazwie qmgr.db. Oddzielne pliki dziennika transakcji są przechowywane w tym samym katalogu. Najnowszy dziennik transakcji jest przechowywany w pliku o nazwie edb.log i zazwyczaj występują trzy starsze dzienniki transakcji z numerycznymi przyrostkami.

Oczywiście złośliwy „feature” jest tak samo możliwy do wykonania na Windows 10, jak i na innych Windowsach. Różnica jest taka, że w najnowszym systemie od Microsoft zapobieganie oraz ewentualna analiza incydentu związanego z BITS jest dużo trudniejsza. Wszystko dlatego, że nowy format bazy danych z zadaniami nie jest prosty do odczytania, a już na pewno nie jest możliwe monitorowanie jej zawartości przez programy AV.

Dlatego firma FireEye stworzyła specjalny parser, który umożliwia analizowanie baz danych usługi BITS. Jest on napisany w Pythonie i dostępny w repozytorium – link.


Podsumowanie


Usługa inteligentnego transferu w tle nadal zapewnia zarówno niezbędny dostęp aplikacjom Microsoft, jak i złośliwym aktywnościom wykorzystującym mechanizm powiadomień po nieudanym pobraniu. Co więcej, FireEye mówi, że kilka analiz ataków znanych ransomware wykazało, że korzystają z usługi BITS do rozprzestrzeniania się w sieci lokalnej oraz do utrzymania trwałości w środowisku. To co możemy teraz zrobić, to czekać na odpowiedź Microsoft w tej sprawie. Jeśli usługa BITS wykorzystywana jest między innymi przez Windows Update, nie będzie to pewnie prosta do naprawy podatność.

Popularne

FIFA i Broken Access Control. Jak konto bez uprawnień uzyskało dostęp do systemów Mistrzostw Świata 2026

FIFA i Broken Access Control. Jak konto bez uprawnień uzyskało dostęp do systemów Mistrzostw Świata 2026

16 czerwca, czyli zaledwie pięć dni po rozpoczęciu Mistrzostw Świata 2026, badaczka cyberbezpieczeństwa działająca pod pseudonimem „BobDaHacker” opisała na swoim blogu lukę odkrytą w systemach FIFA. Według...
Ośmioletnia luka w Samsung KNOX. Miliony urządzeń Galaxy były narażone na ataki!

Ośmioletnia luka w Samsung KNOX. Miliony urządzeń Galaxy były narażone na ataki!

Badacze odkryli ośmioletnią lukę bezpieczeństwa, dotyczącą niemal wszystkich urządzeń Samsung od Galaxy S9 do S25. Została sklasyfikowana jako podatność o wysokim stopniu zagrożenia – CVSS 7.8. Luka...
Entra Connect Sync odchodzi w cień

Entra Connect Sync odchodzi w cień

Przez lata Microsoft Entra Connect Sync był jednym z tych elementów infrastruktury, które po prostu miały działać. Stał gdzieś w środowisku lokalnym, synchronizował użytkowników, grupy i atrybuty z Active Di...
USBLITER8. Niezałatana podatność, która podważa zaufanie do USB

USBLITER8. Niezałatana podatność, która podważa zaufanie do USB

Przez lata wydawało się, że bezpieczeństwo urządzeń USB jest tematem dobrze zrozumianym. Owszem, pojawiały się ataki wykorzystujące firmware, fałszywe klawiatury czy modyfikowane pendrive'y, ale więks...
Jak uzyskać pełny dostęp do Windows? Tworzymy backdoor i uruchamiamy wiersz linii poleceń przed ekranem logowania na koncie SYSTEM

Jak uzyskać pełny dostęp do Windows? Tworzymy backdoor i uruchamiamy wiersz linii poleceń przed ekranem logowania na koncie SYSTEM

W dzisiejszym odcinku hakowania pokażemy stary i sprawdzony, choć nieco zmodyfikowany sposób na przejęcie pełnej kontroli w Windows i to jeszcze przed zalogowaniem się do systemu (na ekranie powitalnym). Za je...