QakBot, znany również jako QBot, QuackBot i Pinkslipbot, to trojan bankowy, który istnieje od ponad dekady. Pierwsza jego wersja została znaleziona w 2007 roku i od tego czasu jest stale utrzymywana i rozwijana przez twórców.
W ostatnich latach QakBot stał się jednym z wiodących trojanów bankowych na całym świecie. Jego głównym celem jest kradzież danych uwierzytelniających do banków (loginów, haseł itp.), chociaż popularna jest też funkcjonalność pozwalającą na szpiegowanie operacji finansowych. Oprócz tego malware pozwala operatorom na rozprzestrzenianie się i instalowanie oprogramowania ransomware w celu maksymalizacji przychodów od zaatakowanych organizacji.
Do dnia dzisiejszego QakBot nadal rozwija się pod względem funkcjonalności, oferując jeszcze więcej możliwości i nowych technik, takich jak rejestrowanie naciśnięć klawiszy, funkcjonalności persistence i techniki unikania wykrycia. Warto wspomnieć, że ta ostatnia obejmuje wykrywanie środowiska wirtualnego oraz regularne auto-aktualizacje. Ponadto QakBot stara się chronić przed analizą i debugowaniem przez ekspertów i przez zautomatyzowane narzędzia.
Kolejną ciekawą funkcjonalnością jest możliwość kradzieży wiadomości e-mail. Są one później wykorzystywane przez atakujących do wysyłania ukierunkowanych maili do ofiar (tzw. spear phishing).
Łańcuch infekcji
Wiadomo, że QakBot infekuje swoje ofiary głównie poprzez kampanie spamowe. W niektórych przypadkach e-maile były dostarczane z dokumentami Microsoft Office (Word, Excel) lub archiwami chronionymi hasłem z załączonymi dokumentami. Dokumenty zawierały makra, a ofiary były proszone o otwarcie załączników z informacją, że są tam istotne dane (np. faktury). W niektórych przypadkach wiadomości e-mail zawierały odsyłacze do stron internetowych rozpowszechniających złośliwe dokumenty.
Istnieje jednak inny wektor infekcji, który polega na przeniesieniu szkodliwego ładunku QakBot na komputer ofiary za pośrednictwem innego złośliwego oprogramowania na zaatakowanej maszynie.
Początkowe wektory infekcji mogą się różnić w zależności od tego co zdaniem cyberprzestępców ma największe szanse powodzenia dla atakowanej organizacji. Wiadomo, że doświadczeni hackerzy przeprowadzają wcześniej rozpoznanie organizacji docelowych, aby zdecydować, który wektor infekcji jest najbardziej odpowiedni.
Podstawowy łańcuch ostatnich wydań QBota (warianty 2020-2021) wygląda następująco:
- Użytkownik otrzymuje wiadomość phishingową z załącznikiem ZIP zawierającym dokument Office z osadzonymi makrami, sam dokument lub link do pobrania złośliwego dokumentu.
- Użytkownik otwiera złośliwy załącznik/link i zostaje nakłoniony do kliknięcia „Włącz zawartość”.
- Wykonywane jest złośliwe makro. Niektóre warianty wykonują żądanie „GET” na adres URL z żądaniem „PNG”. Jednak w rzeczywistości plik jest plikiem binarnym.
- Załadowany ładunek (stager) zawiera inny plik binarny zawierający zaszyfrowane moduły. Jeden z zaszyfrowanych zasobów zawiera plik binarny (program ładujący) DLL, który jest odszyfrowywany później w czasie wykonywania.
- „Stager” ładuje „Loader” do pamięci, który odszyfrowuje i uruchamia ładunek w czasie wykonywania. Ustawienia konfiguracji są pobierane z innego zasobu.
- Ładunek komunikuje się z serwerem C2.
Typowe funkcjonalności
Typowe złośliwe aktywności QakBota obserwowane podczas infekcji obejmują:
- Zbieranie informacji o zaatakowanym hoście;
- Tworzenie zaplanowanych zadań (eskalacji uprawnień i trwałości);
- Zbieranie poświadczeń, np. Credential Dumping (Mimikatz), Kradzież haseł (z danych przeglądarki i plików cookie), Targetowanie linków bankowości internetowej (web injecty);
- Brute Force hasła;
- Manipulacja rejestrem;
- Tworzenie własnej kopii;
- Wstrzykiwanie do pamięci legalnego procesu;
Komunikacja z C2
QBot zawiera listę 150 adresów IP zakodowanych na sztywno w zasobach binarnych programu ładującego. Większość z tych adresów należy do innych zainfekowanych systemów, które są używane jako serwer proxy do przekazywania ruchu do innych serwerów proxy lub rzeczywistego С2.
Komunikacja z С2 to żądanie HTTPS POST z danymi zakodowanymi w Base64. Dane są szyfrowane algorytmem RC4. Do szyfrowania używany jest statyczny ciąg „jHxastDcds)oMc=jvh7wdUhxcsdt2” i losowa sekwencja 16-bajtowa. Same dane są w formacie JSON.
Podsumowanie
QakBot to znany trojan bankowy, którego techniki mogą różnić się w zależności od wydania. Jest aktywny od ponad dekady i nie wygląda na to, żeby w najbliższym czasie odszedł do lamusa. Złośliwe oprogramowanie stale otrzymuje aktualizacje, a cyberprzestępcy dodają nowe możliwości i aktualizują swoje moduły w celu kradzieży informacji i maksymalizacji przychodów.
Wiemy, że cyberprzestępcy zmieniają sposób, w jaki wykonują złośliwe działania, w oparciu o obserwacje dostawców zabezpieczeń. Stosują zaawansowane techniki, aby pozostać niewykrytym. Chociaż QakBot wykorzystuje różne techniki, aby uniknąć ujawnienia (w tym enumeracje procesów) w celu znalezienia działających rozwiązań antywirusowych, niektóre zaawansowane systemy bazujące na przykład na wykrywaniu anomalii na końcówkach są w stanie znajdować takie działania.