Menu dostępności

BITS – tajny agent pobierania malware w Windows. Jak go monitorować?

Dzisiaj opiszemy kolejną metodę pobierania plików Windows Background Intelligent Transfer (w skrócie BITS). Jej wykorzystanie możemy spotkać w zaawansowanym, złośliwym oprogramowaniu używanym przez atakujących w komunikacji z serwerami C2. Udowodnimy, że jej użycie potrafi ominąć zabezpieczenia wbudowanego w Windows antywirusa- Defendera oraz pokażemy, jak można wykryć podejrzane transfery danych.

Na Kapitanie wielokrotnie pisaliśmy o różnych wbudowanych w system operacyjny Windows programach pozwalających cyberprzestępcom na niezauważalne pobieranie plików z Internetu oraz wysyłanie danych. Przykłady znajdziecie tutaj. (tzw. LOLBIN)


Krótko o BITS i zastosowaniu w serwerach C2

Część teorii i przykłady na temat BITS znajdziesz w naszym poprzednim artykule, w którym opisywaliśmy sposób pobierania malware za pomocą wbudowanego w Windows narzędzia „bitsadmin”.

Z usługi inteligentnego transferu w tle (BITS) korzystają najczęściej programiści i administratorzy systemu Windows, aby przesyłać pliki z serwerów WWW HTTP i udziałów plików SMB. Zaletą w stosowaniu przez nich BITS’a jest optymalizacja transferu, a także wykorzystanie sieci, tak aby miała ona jak najmniejszy wpływ na pracę użytkownika (jak najmniejsze obciążenie łącza). BITS radzi sobie również z przerwami w sieci, wstrzymywaniem i automatycznym wznawianiem transferów, nawet po ponownym uruchomieniu, co czyni go bardzo dobrym kandydatem do standardowych zadań związanych serwerami C2 (Command and Control) takimi jak: pobieranie, przesyłanie i eksfiltracja danych.

Oprócz narzędzia uruchamianego z wiersza linii poleceń – „bitsadmin.exe”, BITS oferuje także polecenie w PowerShell. W systemie Windows możemy także odnaleźć inne programy, które również wykorzystują BITS. Dobrym przykładem jest Desktop Image Downloader (plik DESKTOPIMGDOWNLDR.EXE) – służący do pobierania obrazów okna logowania Windows. Inne programy Windows wykorzystujące BITS znajdujące się w katalogu „c:\Windows\” to:

  • c:\Windows\SysWOW64\bitsadmin.exe
  • c:\Windows\System32\MDMAppInstaller.exe
  • c:\Windows\System32\DeviceEnroller.exe
  • c:\Windows\SysWOW64\OneDriveSetup.exe
  • c:\Windows\System32\ofdeploy.exe
  • c:\Windows\System32\directxdatabaseupdater.exe
  • c:\Windows\System32\MRT.exe
  • c:\Windows\System32\aitstatic.exe
  • c:\Windows\System32\desktopimgdownldr.exe
  • c:\Windows\System32\Speech_OneCore\common\SpeechModelDownload.exe
  • c:\Windows\System32\RecoveryDrive.exe
  • c:\Windows\System32\svchost.exe (BITS service)

Monitorowanie użycia powyższych plików wykonywalnych w systemie również powinno należeć do zadań bezpieczeństwa.

Z technicznego punktu widzenia podczas uruchomienia klienta usługi BITS ładują się w systemie biblioteki Bitsproxy.dll, qmgrprxy.dll lub Microsoft.BackgroundIntelligentTransfer.Management.Interop.dll. Serwer zaś używa procesu „svchost.exe” z wartością wiersza polecenia procesu zawierającą słowo kluczowe „BITS”) i hosting biblioteki DLL usługi qmgr.dll. Komunikacja odbywa się po protokole RPC. Szczegóły techniczne możecie znaleźć tutaj.


Jak użyć BITS w Powershell?

W celu pobrania plików z Internetu przy użyciu BITS i PowerShell możemy wykorzystać metodę Powershell „Start-BitsTransfer”. W parametrach jej wywołania podajemy link skąd mamy pobrać dane i nazwę pliku oraz ścieżkę i nazwę pliku, do której ma być zapisany pobrany plik. Poniżej przykład pobrania i uruchomienia programu 7zip.exe

Ciekawostką jest, że za każdym razem, gdy pobierany jest do docelowej lokalizacji plik (w naszym przypadku „7zip.exe”), usługa BITS tworzy jego tymczasowy odpowiednik o nazwie „BITXXX.tmp”. Dopiero po ukończeniu transferu zmienia jego nazwę na właściwą. Może to być jeden z artefaktów wykorzystania przez system BITS w monitorowaniu (oczywiście trzeba mieć włączony odpowiedni audyt plików)


Audyt aktywności usługi BITS

Dobrą informacją jest, że system Windows domyślnie posiada włączony audyt aktywności usługi BITS. W celu zapoznania się jak on wygląda musimy sięgnąć do logu „Operational” znajdującego się w źródle (Bits-Client) – Microsoft-Windows-Bits-Client:

Najważniejsze zdarzenia to:

  • EventID 3 – usługa BITS utworzyła nowe zadanie
  • EventID 4 – zadanie transferu zostało zakończone
  • EventID 5 – zadanie anulowane
  • EventID 59 – usługa BITS rozpoczęła zadanie transferu , które jest skojarzone z adresem URL http://example.com
  • EventID 60 – usługa BITS przestała przesyłać zadanie transferu , które jest skojarzone z adresem URL http://example.com. Kod stanu to 0xxxx.

Inne zdarzenia związane z wydajnością i błędami przesyłania:

Zdarzenia, takie jak 59, 60 i 61, zawierają adres URL pobierania / wysyłania (bardzo przydatne do analizy śledczej i wykrywania), a zdarzenie 3 zawiera szczegóły ścieżki procesu klienta BITS i nazwę zadania (bardzo przydatne do wykrywania nietypowych klientów BITS).

Poniżej prezentujemy przykłady zdarzeń:


Ominięcie zabezpieczeń Windows Defender

Poniżej zamieszczamy przykład z próbą pobranie przez BITS narzędzia Mimikatz, które domyślnie Windows Defender zblokował podczas pobierania przez przeglądarkę Microsoft Edge, natomiast zezwolił przez BITS z poziomu PowerShell:

Zablokowane pobieranie Mimikatz przez Microsoft Edge
Udane pobranie Mimikatz przez klienta BITS w Powershell

Wynik pobrania Mimikatz w logu BITS:


Podsumowanie

Usługa BITS stwarza ogromne możliwości pracy na transferach plików zarówno dla programistów, administratorów, ale także dla atakujących. Korzystają z niej wbudowane aplikacje Windows oraz usługi (np. Windows Update). Monitorowanie jej powinno należeć do stałych zadań Działów Bezpieczeństwa IT, ponieważ niekontrolowane jej użycie może przyczynić się do pobierania, przesyłania i ex-filtracji danych w firmie. Zalecamy dodać reguły monitorowania BITS do systemów bezpieczeństwa. Od strony sieciowej możemy także monitorować/zaobserwować aktywność BITS objawiającą się w nagłówku żądania HTTP w polu User-Agent w postaci wartości „Microsoft BITS/(numer wersji)”.

Szczegóły znajdziesz w naszym artykule tutaj.

Popularne

Masowy wyciek danych PayPal – 15,8 miliona haseł w rękach cyberprzestępców

Masowy wyciek danych PayPal – 15,8 miliona haseł w rękach cyberprzestępców

16 sierpnia br. na forum cyberprzestępczym pojawiła się oferta sprzedaży ogromnej bazy danych, zawierającej ponad 15,8 miliona par adresów e-mail i haseł w formacie jawnego tekstu powiązanych z konta...
Groźna dziura w Microsoft IIS. Deserializacja usług może prowadzić do zdalnego wykonania kodu

Groźna dziura w Microsoft IIS. Deserializacja usług może prowadzić do zdalnego wykonania kodu

W połowie sierpnia 2025 roku ujawniono poważną lukę bezpieczeństwa w narzędziu Microsoft Web Deploy 4.0, używanym do publikacji aplikacji webowych na serwerach IIS. Luka – oznaczona jako CVE-2025-53772 – pozwal...
Nieznany exploit RCE dla Windows 10/11 i Server 2022 na sprzedaż. Czy konto SYSTEM jest już na wyciągnięcie ręki?

Nieznany exploit RCE dla Windows 10/11 i Server 2022 na sprzedaż. Czy konto SYSTEM jest już na wyciągnięcie ręki?

W świecie cyberbezpieczeństwa nic nie budzi większego niepokoju niż niezałatana luka typu zero-day, dająca możliwość wykonania zdalnego kodu bez żadnej interakcji ze strony użytkownika. Na czarnym ry...
Wyciek kodu źródłowego trojana bankowego ERMAC V3.0

Wyciek kodu źródłowego trojana bankowego ERMAC V3.0

Świat cyberbezpieczeństwa odnotował kolejne znaczące wydarzenie – ujawniono pełny kod źródłowy zaawansowanego trojana bankowego ERMAC V3.0, stworzonego z myślą o urządzeniach z systemem Android i działające...
Miliony laptopów Dell narażone na kompromitację

Miliony laptopów Dell narażone na kompromitację

Niedawno pisaliśmy o kłopotach Lenovo, dzisiaj czas na Dell. Okazuje się, że pięć luk w oprogramowaniu ControlVault3 i powiązanych interfejsach API systemu Windows naraża miliony laptopów na trwałe w...