qbot trojan wykorzystuje html smuggling

QBot, znany również jako Qakbot, QuackBot i Pinkslipbot, to trojan bankowy, którego po raz pierwszy zaobserwowano już w 2007 roku. Pisaliśmy o nim wielokrotnie na Kapitanie Hacku. Qbot nadal stanowi poważne zagrożenie dla organizacji i stał się jednym z wiodących trojanów bankowych na świecie. Z biegiem lat zmienił swoje początkowe techniki dostarczania ładunków takie jak używanie makr VBA, makr Excel, plików VBS, exploitów (Follina) itp. Ostatnio zespół badawczy firmy Quick Heal natknął się na nową technikę, którą QBot wykorzystuje w swoich atakach. Nazywa się ona „HTML Smuggling”, czyli potocznie po polsku „Przemycenie HTML”.

HTML smuggling – co to za technika?

HTML Smuggling to wektor ataku, w którym atakujący przemyca zakodowany złośliwy skrypt lub ładunek osadzony w unikalny sposób. Wykorzystuje do tego HTML 5 i JavaScript. Istnieje wiele sposobów wykorzystania tej metody w cyberatakach. Poniżej przedstawiamy niektóre z nich:

1. Użycie tagu kotwicy („<a>”)

Tag zakotwiczenia HTML definiuje hiperłącze, które wiąże jedną stronę z drugą. Może tworzyć hiperłącza do innych stron internetowych, plików, lokalizacji lub dowolnego adresu URL. Ponadto jeśli chcemy pobrać dowolny plik hostowany na dowolnym serwerze, możemy użyć tego tagu. Na przykład:

<a href=”www.example.com/payload.exe” download=”payload.exe”>Download Here</a>

2. Korzystanie z JavaScript Blob

Blob JavaScript to obiekt, który składa się z kolekcji bajtów zawierających dane przechowywane w pliku. Dane typu Blob są przechowywane w pamięci użytkownika po to, aby wykorzystać je w tych samych miejscach, w których użyto by rzeczywistego pliku. Innymi słowy, takie obiekty mogą służyć do konstruowania rzeczy podobnych do plików na kliencie, które mogą być przekazywane do interfejsów API JavaScript jako adres URL. Na przykład bajty pliku payload.exe można podać jako dane wejściowe w kodzie JS jako JS BLOB. Potem da się go po prostu skompilować i pobrać po stronie użytkownika.

3. Użycie elementu typu embed

Służy do osadzania aplikacji zewnętrznych, które są zazwyczaj treściami multimedialnymi, jak audio lub wideo, w dokumencie HTML. Wykorzystywany jako kontener do osadzania wtyczek takich jak animacje flash.

Jak widzimy, w każdym z powyższych przykładów da się przemycić kod HTML lub JS, który będzie odwoływał się do złośliwego ładunku bądź następnej fazy trwającego ataku.

Dlaczego akurat ta technika? Kiedy ofiara otwiera załącznik HTML, dekoduje osadzone pliki i zapisuje je lokalnie. Dzięki zakodowanym wzorcom żadna szkodliwa zawartość nie przechodzi przez sieć, omijając filtry sieciowe i zapory. Stąd ta metoda ataku zyskuje popularność wśród cyberprzestępców.

QBot – schemat ataku

Poniżej przedstawiono schemat ataku opisywanego trojana QBot w omawianej wersji.

QBot – schemat ataku
blogs.quickheal.com

W jednym z analizowanych dokumentów znaleziono osadzony element HTML utworzony metodą „document.createElement”. Atakujący wykorzystali ten znacznik do dystrybucji ładunków w archiwach ZIP. Na poniższej grafice możemy zobaczyć dane zakodowane w base64 dla pliku ZIP:

QBot – schemat ataku
blogs.quickheal.com

Gdy plik HTML otwierany jest przez użytkownika, oszukuje on go, tak jakby nie dało się otworzyć treści jakiegoś dokumentu PDF i niezbędne byłoby skorzystanie z archiwum ZIP, które zabezpieczone jest hasłem. Samo hasło natomiast wyświetla się na ekranie. W rzeczywistości archiwum ZIP znajduje się już na komputerze ofiary, samo pobranie jakiegoś załącznika jest tutaj kolejny fejkiem.

QBot – schemat ataku
blogs.quickheal.com

Po rozpakowaniu pliku zip ofiara otrzymuje plik z rozszerzeniem ISO o nazwie „REJ_2975”, który ponownie zawiera w sobie kilka plików. Widzimy to poniżej.

QBot – schemat ataku
blogs.quickheal.com

Plik skrótu „REJ” jest odpowiedzialny za przeprowadzenie dalszego ataku. Jego zadaniem jest wykonanie skryptu poleceń „reprocesses” w folderze „oslo”. Następnie skrypt ładuje końcowy plik DLL modułu QBot o nazwie „counteractively.dat”, jak pokazano na poniższym rysunku:

QBot – schemat ataku
blogs.quickheal.com

Na końcu ładunek jest wstrzykiwany do procesu wermgr.exe poprzez znaną technikę process hollowing.

W celu osiągnięcia trwałości w środowisku QBot używa wpisów do rejestru oraz samoreplikacji. Dzieje się to w dwóch krokach:

1. Kopiowanie się do poniższego folderu:

- %AppData%\Roaming\Microsoft\{RandomStrings}

2. Tworzenie wpisu i wartości rejestru wskazującej na powyższy ładunek.

Tworzenie folderów i usunięte biblioteki DLL są wykonywane przez proces windows regsvr32.exe, jak pokazano poniżej:

QBot – schemat ataku
blogs.quickheal.com

W najnowszych wersjach ładunku Qbot odszedł od tworzenia pliku konfiguracyjnego w formacie „.dat”. Teraz zapisuje swój sklonowany wpis DLL na urządzeniu ofiary jako zaszyfrowane klucze rejestru w gałęzi „HKCU\Software\Microsoft\[RandomString]”.

QBot – schemat ataku
blogs.quickheal.com

Warto jeszcze wspomnieć o komunikacji C2. Jak pokazano na poniższej grafice, zainfekowany proces wermgr.exe nawiązuje połączenie z zakodowanymi na stałe adresami IP:

blogs.quickheal.com

Podsumowanie

Wyłączenie JavaScript w większości środowisk nie jest możliwe, ponieważ zbyt wiele legalnych systemów i aplikacji internetowych wymaga jego użycia. Oprócz tego dużo legalnych frameworków JavaScript wykorzystuje techniki zaciemniania w celu zminimalizowania rozmiarów plików i zwiększenia szybkości aplikacji internetowych. Dlatego blokowanie zaciemnionego JavaScript nie jest praktyczne. Jako best practice zaleca się użytkownikom zachowanie najwyższej ostrożności podczas obsługi podejrzanych wiadomości e-mail z załącznikami HTML, które coraz częściej wykorzystywane są w atakach na organizacje.

Podziel się z innymi tym artykułem!