Niedawno specjaliści z K7 Lab zidentyfikowali interesującą technikę wykorzystywaną przez cyberprzestępców do uruchamiania narzędzia typu Remote Admin Tool (RAT). Wszyscy wiemy, iż WerFault.exe jest używany do raportowania błędów systemu Windows. Jednak w tym wpisie zobaczymy, w jaki sposób cyberprzestępcy wykorzystują ten legalny plik binarny do uruchamiania malware „Pupy RAT” na komputerze ofiary.
Poniżej przedstawiamy schemat całego ataku.
Analiza 3 etapów infekcji
Infekcja zaczyna się od ciekawie nazwanego obrazu ISO – „recent inventory & our specialties.iso”, odkrytego przez użytkownika Twittera SBousseaden. ISO zawiera cztery pliki: legalny plik WerFault.exe, złośliwą bibliotekę DLL o nazwie faultrep.dll, plik skrótu lnk o nazwie takiej jak ISO oraz plik XLS o nazwie File.xls. Kiedy ofiara otwiera plik skrótu, używa on LOLBina scriptrunner.exe przez cmd, aby uruchomić WerFault.exe z obrazu ISO.
W kolejnym etapie inicjowany jest Pupy RAT Loader. Pierwotnie Faultrep.dll to nazwa biblioteki DLL używanej przez WerFault.exe, która znajduje się w domyślnym folderze systemu Windows. Gdy WerFault.exe zaczyna się uruchamiać, wykorzystuje technikę DLL Side-Loading do załadowania pliku Faultrep.dll z ISO i zawiera fikcyjną funkcję eksportu WerpInitiateCrashReporting, podobną do oryginalnej biblioteki DLL. Złośliwy plik Faultrep.dll jest kompilowany w języku C.
Biblioteka DLL ma niestandardową funkcję rozwiązywania interfejsu API z dwoma argumentami, skrótem biblioteki DLL i skrótem funkcji.
Zauważono, iż program ładujący używa tej samej funkcji rozwiązywania API, co program Guloader. Rozwiązane biblioteki DLL to kernel32 i advapi32.
Po rozwiązaniu interfejsów API zaczyna spełniać swoje zadanie. Używając rozwiązanej funkcji CreateThread, tworzy dwa wątki. Pierwszy wątek otwiera przynętę – arkusz programu Excel o nazwie file.xls z ISO.
Podczas manualnego rozwiązywania funkcji można zauważyć, iż jedna z nich to SystemFunction032 z pliku advapi32.dll. Niestety funkcja ta jest nieudokumentowana w MSDN i niełatwo dowiedzieć się o jej zastosowaniu. Ostatecznie z dokumentów WineAPI wiadomo, iż służy do szyfrowania RC4 i przyjmuje dwa argumenty: klucz i dane. Podczas dalszej analizy wykryto funkcję deszyfrującą RC4, która jako klucz zawiera dane i zakodowany ciąg znaków.
Dane są wskazywane na adres nakładki. Po ich zrzuceniu i odszyfrowaniu potwierdzono, iż jest to plik PE (Portable Executable) z magicznymi bajtami.
Dane zostały wrzucone jako wejściowe do pliku PE. Został on skompilowany dzięki C i Python i okazało się, iż to Pupy RAT. Cały trik polega na tym, iż RAT jest ładowany do pamięci i wykonywany, podczas gdy WerFault.exe wykonywany jest z przodu jako legalny proces Windows.
Pupy RAT to wieloplatformowe narzędzie do zdalnej administracji typu open source dostępne na Githubie od 2013 roku. Prawdopodobnie używane jest przez APT33 i APT35 z Iranu do operacji cyberszpiegowskich, takich jak ta, która została wykryta w 2020 roku i wymierzona w dużą europejską organizację energetyczną.
W tym scenariuszu RAT próbuje nawiązać połączenie C2 w tle, gdy ofiara uważa, iż działa legalny WerFault. Ponieważ C2 był wyłączony w czasie analizy, RAT nie był w stanie nawiązać połączenia w celu przeprowadzenia dalszych złośliwych działań. Sądząc po arkuszu XLS w języku chińskim, ofiara mogła pochodzić z Chin.
Zapraszamy do zapoznania się z listą IOC takich jak skróty plików oraz serwer C2 atakującego.