Buer, nowy program ładujący pojawia się na podziemnym rynku

Przegląd

Od kilku lat badacze Proofpointa śledzą wykorzystanie downloaderów pierwszego etapu, które są wykorzystywane przez podmioty stanowiące zagrożenie do instalowania innych form złośliwego oprogramowania w trakcie i po zakończeniu złośliwych kampanii e-mail. Co ważniejsze, downloadery i inne złośliwe programy, takie jak botnety i trojany bankowe, wyparły ransomware jako podstawowe ładunki płatnicze, dając aktorom zagrożeń elastyczność w rozmieszczaniu szeregu złośliwych programów w infekcjach wtórnych. Na przykład, jeden z najbardziej rozpowszechnionych, Smoke Loader, był szeroko wykorzystywany do zrzucania ładunków płatnych, takich jak trojany bankowe Ursnif i The Trick, a także przy użyciu własnych modułów do kradzieży danych uwierzytelniających i innych informacji oraz danych, wśród innych złośliwych funkcji.

Od końca sierpnia 2019 r. badacze Proofpoint śledzą rozwój i sprzedaż nowego modułowego loadera o nazwie Buer przez jego autorów. Buer posiada funkcje, które są wysoce konkurencyjne w stosunku do Smoke Loadera, jest aktywnie sprzedawany na prominentnych podziemnych targowiskach i jest przeznaczony do wykorzystania przez aktorów poszukujących gotowego, gotowego do użycia rozwiązania.

Kampanie

28 sierpnia 2019

W dniu 28 sierpnia badacze firmy Proofpoint zaobserwowali złośliwe wiadomości e-mail, które wydają się odpowiadać na wcześniejsze legalne rozmowy e-mail. Zawierały one załączniki Microsoft Word, które wykorzystują makra Microsoft Office do pobrania payloadu następnego etapu.

Rysunek 1: Przykładowy załącznik Microsoft Word wykorzystany w kampanii z 28 sierpnia 2019 roku

Zaobserwowaliśmy, że payload następnego etapu jest pobierany z adresów URL obejmujących:

hxxp://jf8df87sdfd.yesteryearrestorationsnet/gate.php

hxxp://93345fdd.libertycolegioscom/gate.php

Upuszczony payload nosił nazwę verinstere222.xls lub verinstere33.exe (konwencja nazewnicza stosowana przez aktora w tym okresie). Zamiast Dreambotowego wariantu Ursnifa często kojarzonego z tym aktorem, ładunek zawierał nieudokumentowany program ładujący, który nie był wcześniej obserwowany w środowisku naturalnym.

W kolejnych tygodniach września i października badacze Proofpointa i inni członkowie społeczności infosecurity zaobserwowali kilka kampanii tego samego aktora, w których zrzucano albo Dreambotowy wariant Ursnifa, albo ten nowy program ładujący.

October 10, 2019

10 października badacze Proofpointa zaobserwowali w Australii kampanię malvertisingową przekierowującą na Fallout Exploit Kit (EK) zrzucającą nowy loader.

Figura 2: Ślad ruchu sieciowego HTTP z zestawem Fallout EK wykorzystującym podatne przeglądarki

Ładowacz upuszczał następnie kilka złośliwych ładunków payload drugiego stopnia, w tym KPOT stealer, Amadey i Smoke Loader.

21 października 2019

Od początku lipca badacze Proofpointa zaobserwowali około 100 kampanii z udziałem Ostapa ładujących niemal wyłącznie kilka instancji The Trick. Natomiast 21 lipca badacze Proofpointa zaobserwowali złośliwe wiadomości e-mail z tematami takimi jak „Penalty Notice # PKJWVBP” zawierające załączniki Microsoft Word. Dokumenty te zawierały makra, które po włączeniu uruchamiały Ostapa. Zaobserwowaliśmy, jak Ostap pobierał ten program ładujący z adresu

hxxps://185.130.104187/nana/kum.php?pi=18b&

który z kolei ładował program The Trick „ono22” ze swojego adresu C&C: garrisontxus

Rysunek 3: Ruch sieciowy obserwowany po włączeniu makra w złośliwych dokumentach.

Figura 4: Przykładowy załącznik Microsoft Word wykorzystany w kampanii z 21 października

Marketplace &Analiza funkcji

Ponieważ zaczęliśmy obserwować ten nowy program ładujący w użyciu w wielu różnych kampaniach, spodziewaliśmy się, że był on sprzedawany na podziemnym rynku wielu podmiotom. Co więcej, odkryliśmy ogłoszenie z 16 sierpnia na podziemnym forum opisujące program ładujący o nazwie „Buer”, który pasował do funkcjonalności szkodliwego oprogramowania zaobserwowanego w powyższych kampaniach.

Funkcje dodane i reklamowane w kolejnych tygodniach dokładnie pasują do ewolucji programu ładującego znalezionego w tych kampaniach.

Pobraliśmy tekst z tablicy ogłoszeń zamieszczony przez autora, w języku rosyjskim, żądający zapłaty 400 dolarów za szkodliwe oprogramowanie i oferujący swoje usługi w zakresie konfiguracji oprogramowania dla potencjalnych klientów w celu jego uruchomienia. Autor zauważa również, że aktualizacje i poprawki błędów są bezpłatne, ale istnieje dopłata w wysokości 25 dolarów za „przebudowę na nowe adresy”

Następujący tekst, który Proofpoint również wydobył z podziemnego rynku i który, jak się przypuszcza, został napisany przez autora złośliwego oprogramowania, jest podsumowaniem funkcjonalności programu ładującego opisanej w oryginalnym języku rosyjskim:

Rys. 5. Tekst z postu na podziemnym forum opisujący funkcjonalność bota Buer Loader

Podobnie, reklama wymienia również funkcjonalność panelu kontrolnego. Autor zauważa, że modułowy bot jest napisany całkowicie w języku C, przy użyciu panelu sterowania napisanego w .NET Core, podkreślając wyższą wydajność zarówno klienta, jak i serwera ze względu na wybór języka programowania.

  • Jak wynika z opisu, bot ma całkowitą ładowność 55 do 60 kilobajtów, działa jako natywny plik wykonywalny systemu Windows i biblioteka dynamicznych łączy, działa całkowicie w pamięci rezydentnej i jest kompatybilny z 32-bitowymi i 64-bitowymi systemami operacyjnymi Microsoft Windows.
  • Bot komunikuje się za pośrednictwem połączenia HTTPS i może być aktualizowany zdalnie z panelu kontrolnego po odszyfrowaniu, jak również po odbudowie.
  • Autor zauważa również, że program ładujący działa jako proces zastępczy zaufanej aplikacji i funkcjonuje przy użyciu uprawnień na poziomie użytkownika.
  • Najbardziej istotne jest to, że oprogramowanie nie będzie działać w krajach WNP (byłych państwach radzieckich, takich jak Rosja).

Ogłoszenie opisuje następujące cechy serwera i panelu sterowania:

  • Panel sterowania jest reklamowany jako napisany również w .NET Core, zwracając uwagę na łatwą instalację na systemach serwerowych Ubuntu / Debian Linux.
  • Serwer zapewnia szeroki zakres statystyk, w tym liczniki botów online, żywych, martwych i całkowitych; aktualizację w czasie rzeczywistym listy botów; licznik pobranych plików; oraz możliwość filtrowania systemów według typu systemu operacyjnego, praw dostępu zainstalowanych botów i liczby logicznych rdzeni CPU.
  • Pobrane pliki z zainfekowanych systemów są przechowywane w postaci zaszyfrowanej na serwerze, a dostęp do nich jest przyznawany za pomocą tokena.
  • Co najważniejsze, podobnie jak w przypadku samych botów, autor zauważa, że serwer nie przetwarza żądań API wysyłanych z państw członkowskich WNP.

Post na forum zawierał również uwagi techniczne dotyczące wydania programu ładującego Buer i panelu kontrolnego (wersja 1.1.2). We wstępie autor zauważył, że uruchomienie programu ładującego składa się teraz z trzech kroków — jeśli dwa pierwsze kroki nie powiodą się w zainfekowanym systemie, a wstrzyknięcie do procesu zastępczego nie powiedzie się (na przykład z powodu niekompatybilności z samą kryptą), program ładujący wykona się zamiast tego pod własnym procesem.

Wiadomości o wydaniu zawierają następujące informacje dotyczące programu ładującego:

  • Ładowacz wykorzystuje architekturę FastFlux.
  • Ładowacz działa pod zaufanym procesem w systemie Microsoft Windows. Proces MemLoadEx obsługuje teraz x64 exe jako zaufaną aplikację.
  • MemLoad został zaktualizowany i obsługuje teraz natywne x32 exe.

W uwagach do wydania wymieniono następujące funkcje panelu sterowania:

  • Dostęp do API jest realizowany przy użyciu HTTPS z obsługą samopodpisanych certyfikatów.
  • Obsługa edycji zadań w panelu. Użytkownik może zatrzymać zadanie w trakcie wykonywania, zmienić jego ładunek oraz liczbę wykonań.
  • Dodana możliwość tworzenia zadań według ID bota. Bardzo przydatne przy obciążeniach punktowych.
  • Okno tworzenia zadań krok po kroku.
  • Powiadomienie pozwalające dowiedzieć się o niezbędnych botach online.
  • Zwiększono unikalność identyfikatora bota.
  • Dodano tagi do panelu, pozwalające na sortowanie botów w celu późniejszych działań z nimi.
  • Wyświetla nazwę komputera w tabeli.
  • Poprawiono kompatybilność z kryptowalutami.
  • Dodano historię botów.
  • „The panel now expands to Docker” (obsługa kontenerów Docker).
    • Uwaga Proofpoint Researcher: Zakładamy, że ta funkcja ma na celu ułatwienie integracji z dzierżawionymi hostami Docker, upraszczając instalację, choć potencjalnie panel/C&C mógłby zostać zainstalowany na skompromitowanym hoście Docker.
  • Weryfikacja na pliku w panelu. Teraz panel nie przeoczy pliku, którego loader nie będzie w stanie pobrać i powiadomi o tym klienta.
  • Zadania mogą być teraz powtarzane.

Na koniec autor opisał następujące zmiany techniczne dla wersji 1.1.9. Są one godne uwagi, ponieważ świadczą o tym, że złośliwe oprogramowanie jest aktywnie i profesjonalnie rozwijane.

  • Ładowacz zyskał nową metodę uruchamiania External dla plików lokalnych. Zaletą tej metody jest unikalność i brak CreateProcess / ShellExecute przez program ładujący. Uruchomienie tworzy zaufany proces bez żadnych poleceń do niego.
  • Panel posiada możliwość tagowania wszystkich botów, które wykonały określone zadanie. Dzięki temu użytkownik będzie mógł dystrybuować payload do określonych grup botów.
  • Wdrożone API integracyjne. Udostępniono dokumentację do niego.
  • Dodano możliwość wysyłania pliku przez referencję w trybie proxy. Plik jest przesyłany do bota w formie zaszyfrowanej.
  • Błąd zliczania botów według kraju został naprawiony i dodano inne ulepszenia.

Zrzuty ekranu panelu kontrolnego

Następujące zrzuty ekranu panelu kontrolnego zostały dołączone do podziemnej reklamy, pokazując niektóre z możliwości back-end dostępnych dla klientów, w tym monitorowanie telemetrii, filtrowanie hostów i inne.

Rysunek 6: UX logowania panelu sterowania dla Buer Loader C&C

Rysunek 7: Ekran monitorowania telemetrii bota dla panelu sterowania Buer.

Rysunek 8: Ekran monitorowania telemetrii botów w trybie ciemnym dla panelu sterowania Buer.

Rysunek 9: Widok filtra panelu sterowania przedstawiający zdalne boty filtrowane według architektury Microsoft Windows.

Rysunek 10: Widok panelu sterowania przedstawiający zarządzanie plikami dla zadań programu ładującego

Rysunek 11: Widok panelu sterowania zdalnych botów posortowanych według uprawnień użytkownika.

Rysunek 12: Widok panelu kontrolnego, status zadania

Rysunek 13: Widok panelu kontrolnego, tworzenie zadania

Analiza malware

Buer Loader to nowy downloader malware, który pobiera i wykonuje dodatkowy payload.

Funkcje antyanalityczne

Ładowacz zawiera pewne podstawowe funkcje antyanalityczne:

  • Sprawdza obecność debuggerów poprzez inspekcję flagi NtGlobalFlag w Process Environment Block (PEB) i Thread Environment Block (TEB)
  • Sprawdza maszyny wirtualne przy użyciu Red Pill , No Pill i pokrewnych mechanizmów
  • Sprawdza locale, aby upewnić się, że złośliwe oprogramowanie nie jest uruchamiane w określonych krajach (Rysunek 14)

Figura 14: Sprawdzanie złośliwego oprogramowania w celu upewnienia się, że nie jest ono uruchamiane w określonych krajach

Persistence

Persistence jest ustawiane przez skonfigurowanie wpisu RunOnce w rejestrze. W zależności od wersji, wpis w rejestrze wykona malware bezpośrednio lub zaplanuje zadanie do wykonania.

Szyfrowane ciągi znaków

Ta próbka zawiera funkcję do szyfrowania ciągów znaków.

Figura 15: Sekwencja deszyfrowania dla łańcuchów

Następująca funkcja jest przykładem odszyfrowania zaszyfrowanych łańcuchów w Ghidrze przy użyciu Jythona:

Figura 16: Sekwencja deszyfrowania dla łańcuchów (wersja Python)

Rysunek 17: Przykładowe deszyfracje łańcuchów

Wywołania Windows API

Ta próbka używa algorytmu haszującego do rozwiązania większości swoich wywołań Windows API. Algorytm haszujący zapewnia, że każdy znak w nazwie API jest wielką literą. Następnie obraca w prawo (ROR) każdy znak o 13 i dodaje je razem.

Rysunek 18: Algorytm haszujący do rozwiązywania wywołań Windows API

Następująca funkcja jest przykładem tego, jak można użyć Pythona do pomocy w rozwiązywaniu wywołań API.

Rysunek 19: Przykładowy skrypt Pythona używany do pomocy w rozwiązywaniu hashowanych wywołań interfejsu API systemu Windows

Następująca tabela zawiera listę niektórych wybranych używanych hashy i odpowiadających im nazw interfejsów API systemu Windows:

.

.

.

CreateMutexW

0xed619452

OpenMutexW

0x7bffe25e

CreateProcessW

0xb4f0f46f

WinHttpOpen

WinHttpOpen

0xaf7f658e

WinHttpCrackUrl

0x8ef04f02

WinHttpConnect

0x9f47a05e

WinHttpOpenRequest

0x1dd1d38d

Tabela 1: Wywołania Windows API z wybranymi hashami

Komendy i sterowanie

Funkcje komend i sterowania (C&C) są obsługiwane za pomocą żądań HTTP(S) GET. Przykładowy sygnał polecenia wygląda jak na Rysunku 20:

Rysunek 20: Przykładowy sygnał polecenia

Te żądania trafiają do „update API” i zawierają zaszyfrowany parametr. Parametr ten może zostać odszyfrowany przez:

  1. Dekodowanie Base64
  2. Dekodowanie Hex
  3. Dekodowanie RC4 (klucz użyty w analizowanych próbkach to „CRYPTO_KEY”)

Przykładem parametru plaintext jest:

88a5e68a2047fa5ebdc095a8500d8fae565a6b225ce94956e194b4a0e8a515ae|ab21d61b35a8d1dc4ffb3cc4b75094c31b8c00de3ffaaa17ce1ad15e876dbd1f|Windows 7|x64|4|Admin|RFEZOWGZPBYYOI

Zawiera on dane w formacie pipe-delimitowane dane składające się z:

  • Bot ID (skrót SHA-256 hex różnych parametrów systemowych, takich jak identyfikator GUID i nazwa profilu sprzętowego, nazwa komputera, numer seryjny woluminu, i CPUID)
  • Skrót SHA-256 własnego obrazu wykonywalnego
  • Wersja systemu Windows
  • Typ architektury
  • Liczba procesorów
  • Uprawnienia użytkownika
  • Nazwa komputera

Przykładowa odpowiedź beacon command jest pokazana na rysunku 21:

Figure 21: Example command beacon response

Można ją odszyfrować podobnie jak parametr request powyżej, z tą różnicą, że zakodowane heksadecymalnie bajty są oddzielone znakami myślnika. Przykładowa odpowiedź plaintext jest przedstawiona na rysunku 22:

Rysunek 22: Plaintext command beacon response

Odszyfrowany tekst jest obiektem JSON zawierającym różne opcje dotyczące sposobu pobierania i wykonywania ładunku:

  • type – istnieją dwa typy:
    • update – update self
    • download_and_exec – pobierz i wykonaj
  • options – określa opcje dla ładunku do pobrania: nieużywany w analizowanych próbkach
  • AccessToken – używany do pobrania payloadu (patrz poniżej)
  • External – wskazuje, czy payload jest pobierany z C&C czy z zewnętrznego URL
  • method – metoda wykonania:
    • exelocal – utworzenie procesu
    • memload – wstrzyknięcie i ręczne załadowanie payloadu
    • memloadex – wstrzyknięcie i ręczne załadowanie payloadu
    • loaddllmem – wstrzyknięcie i ręczne załadowanie payloadu
  • parametry – parametry do przekazania w wierszu poleceń
  • pathToDrop -. nieużywane w analizowanych próbkach
  • autorun – wskazuje, czy ustawić Registry RunOnce persistence dla payload
  • modules – zobacz sekcję Modules poniżej
  • timeout – nieużywane w analizowanych próbkach
  • Payloads pobierane z serwera C&C są wykonywane poprzez żądania do „download API”, jak widać na Rysunku 23:

    Rysunek 23: Pobieranie payloadu z serwera C&C

    Przykład parametru żądania plaintext przedstawiono poniżej:

    88a5e68a2047fa5ebdc095a8500d8fae565a6b225ce94956e194b4a0e8a515ae|58007044-67d4-4963-9f5f-400dfbc69e74

    Zawiera on ID bota i „AccessToken” z odpowiedzi command beacon. Jeżeli payload jest pobierany z C&C, to jest on szyfrowany kluczem RC4. W analizowanych próbkach kluczem był „CRYPTO_KEY”.

    Modules

    Odpowiedź command beacon zawiera listę „modułów”. Badacze Proofpointa nie zaobserwowali jeszcze, aby moduły Buer były wykorzystywane w naturze, ale na podstawie kodu lista ta będzie zawierała moduły AccessTokens. Nazwa pliku z modułem jest wyszukiwana poprzez wysłanie AccessTokena do „module API” w C&C. Moduł zostanie następnie pobrany przy użyciu „downloadmodule API”. Po pobraniu i odszyfrowaniu jest on ładowany przy użyciu metody „loaddllmem”.

    Wnioski

    Nowy downloader, Buer, pojawił się ostatnio w różnych kampaniach, poprzez malvertising prowadzący do zestawów exploitów; jako wtórny ładunek płatniczy poprzez Ostap; oraz jako główny ładunek płatniczy pobierający szkodliwe oprogramowanie, takie jak trojan bankowy The Trick.

    Nowy program ładujący posiada solidne funkcje geotargetowania, profilowania systemu oraz antyanalizy i jest obecnie sprzedawany na podziemnych forach wraz z usługami konfiguracyjnymi o wartości dodanej. Rosyjskojęzyczny autor (autorzy) aktywnie rozwija downloader z wyrafinowanymi panelami kontrolnymi i bogatym zestawem funkcji, co czyni złośliwe oprogramowanie konkurencyjnym na podziemnych rynkach.

    Pobieracz został napisany w C, podczas gdy panel kontrolny w .NET core, co wskazuje na optymalizację pod kątem wydajności i niewielkiego śladu po pobraniu, jak również możliwość łatwego zainstalowania panelu kontrolnego na serwerach Linux — wbudowana obsługa kontenerów Docker jeszcze bardziej ułatwi jego rozprzestrzenianie się na wynajętych hostach wykorzystywanych do złośliwych celów, a potencjalnie również na skompromitowanych hostach. Ta ostatnia możliwość jest zawarta w reklamowanych funkcjach i informacjach o wydaniu.

    https://www.cert.pl/en/news/single/ostap-malware-analysis-backswap-dropper/

    https://www.proofpoint.com/us/threat-insight/post/ostap-bender-400-ways-make-population-part-with-their-money

    https://www.aldeid.com/wiki/X86-assembly/Instructions/sidt

    https://www.aldeid.com/wiki/X86-assembly/Instructions/sldt

    Indicators of Compromise (IOCs)

    .

    .

    IOC

    IOC Type

    Description

    fa699eab565f613df563ce47de5b82bde16d69c5d0c05ec9fc7f8d86ad7682ce

    sha256

    http[://45.76.247[.177:

    sha256

    197163b6eb2114f3b565391f43b44fb8d61531a23758e35b11ef0dc44d349e90

    sha256

    https[://173.212.204[.171/api/update/

    URL

    Buer C&C callback

    9e8db7a722cc2fa13101a306343039e8783df66f4d1ba83ed6e1fe13eebaec73

    sha256

    (Fallout Drop)

    http[://134.0.119[.53:8080/api/update/

    URL

    Buer C&C callback

    ab21d61b35a8d1dc4ffb3cc4b75094c31b8c00de3ffaaa17ce1ad15e876dbd1f

    sha256

    (Ostap drop)

    https[://garrisontx[.us/api/update/

    URL

    Buer C&C callback

    https[://185.130.104[.187/nana/kum.php?pi=18b

    URL

    Ostap instance dropping Buer – 2019-10-.21

    753276c5887ba5cb818360e797b94d1306069c6871b61f60ecc0d31c78c6d31e

    sha256

    Buer 2019-.11-28

    ffload01[.top|185.125.58[.11

    ffload01[.top|185.186.141[.129

    domena|IP

    Buer C&C 2019-11-.28

    Sygnatury ET i ETPRO Suricata/Snort

    2029077 || ET TROJAN Buer Loader Update Request

    2029079 || ET TROJAN Buer Loader Response

    2029079 || ET TROJAN Buer Loader Response

    2029078 || ET TROJAN Buer Loader Download Request

    2839684 || ET TROJAN Buer Loader Successful Payload Download

    2029080 || Zaobserwowany certyfikat SSL/TLS (Buer Loader)

    Dodaj komentarz