Stan zagrożeń w internecie znajduje się obecnie na poziomie standardowym. Nie występują duże epidemie a eksperci z Kaspersky Lab nie zanotowali żadnych poważnych incydentów związanych z bezpieczeństwem. Poziom zagrożenia: 1

Szkodliwe oprogramowanie PlugX: dobry haker to przepraszający haker

Dmitrij Tarakanow
Kaspersky Lab Expert
Dodany 10 marca 2016, 12:36 CET
Tagi:

Czasami twórcy szkodliwego oprogramowania oraz inni niegodziwcy w świecie cyfrowym umieszczają wiadomości w swoim szkodliwym oprogramowaniu. Niekiedy robią to wyłącznie dla „funu”, niekiedy ich celem jest obrażenie osoby, która sabotuje ich działalność przestępczą, innym razem chcą przekazać wiadomość osobom „po przeciwnej stronie barykady”, które z nimi walczą. Mamy nadzieję, że opisany w tym poście przypadek należy raczej do pierwszej kategorii, tzn. jest to zabawny komunikat. Przynajmniej my go tak odbieramy.   

Nasze pierwsze badanie dotyczące PlugX zostało opublikowane w 2012 roku – od tego czasu to narzędzie zdalnego dostępu (ang. RAT) stanowi dobrze znany instrument wykorzystywany w serii ataków na całym świecie na cele z różnych branż. PlugX został wykryty w atakach ukierunkowanych nie tylko na organizacje wojskowe, rządowe czy polityczne, ale również na mniej lub bardziej zwykłe firmy. W 2013 roku odkryliśmy, że grupa Winnti, odpowiedzialna za ataki na firmy z branży gier online, wykorzystuje narzędzie zdalnej administracji PlugX przynajmniej od maja 2012 roku.     

Tym razem przeglądając nietypowe próbki PlugX, natknęliśmy się na okaz, który zawierał zakodowany zasób RC4. W rzeczywistości była to próbka testowa z fikcyjnymi ustawieniami. Na szczęście znaleźliśmy pierwotnego konstruktora, który dość łatwo generuje takie próbki.   

1_auto.png
Rys. 1. Konstruktor PlugX

Zasadniczo, konstruktor kompiluje kilka różnych dropperów PlugX, w tym sławne archiwa SFX RAR zawierające triadę PlugX – legalnie podpisany plik wykonywalny podatny na atak ładowania bezpośredniego biblioteki DLL, bibliotekę DLL, która jest wybierana przez plik wykonywalny, oraz plik funkcji szkodliwej, który zawiera to co najważniejsze – bibliotekę funkcjonalną PlugX, C2 oraz inne ustawienia.    

Jedna taka triada zawiera RGB LCD Display Utility for ThinkPad firmy Lenovo: tplcdclr.exe, wtsapi32.dll (ładowany przez aplikację) oraz plik “szkodliwej funkcji” wts.chm (ładowany przez bibliotekę DLL).


2.png

Rys. 2. Pierwsza triada PlugX z konstruktora


3.png

Rys. 3. Legalny plik wykonywalny z pierwszej triady PlugX

 

Kolejny zestaw trzech elementów zawiera podpisaną wersję Domain Name System Benchmarking Utility Steve’a Gibsona sep_NE.exe, plik winmm.dll, na którym opiera się aplikacja, oraz plik “funkcji szkodliwej” sep_NE.slf.   


4.png

Rys. 4. Druga triada PlugX z konstruktora


5.png

Rys. 5. Legalny plik wykonywalny z drugiej triady PlugX

Jednak wśród wszystkich dropperów generowanych przez konstruktora istnieją dwa szablony wyglądające na pliki wykonywalne, przy czym dane przechowywane są zwykle w oddzielnym pliku „funkcji szkodliwej”, osadzonym w pierwotnym ciele pliku jako zasób.

6_auto.png
Rys. 6. Zaszyfrowana zawartość “funkcji szkodliwej” jako zasób w dropperze

Zawartość “funkcji szkodliwej” jest przechowywana w zaszyfrowanej postaci w ciele pliku. Po odszyfrowaniu zawartość ta wygląda jak jeden ze zwykłych plików „funkcji szkodliwej” PlugX, tych, które na początku mają łatwo rozpoznawalny kod powłoki:


7.png

Rys. 7. Odszyfrowana zawartość “funkcji szkodliwej”

Algorytm wykorzystywany do szyfrowania zasobu funkcji szkodliwej to RC4. Natomiast (właśnie to skłoniło nas do napisania tego postu) klucz RC4 służący do odszyfrowania zasobu to “SORRY.i_have_to_do_this” (Przepraszam, ale muszę to zrobić).

8_auto.png
Rys. 8. “Skruszony” klucz RC4

Całkiem interesujące… Nie jest to komunikat, jakiego można spodziewać się w tego rodzaju szkodliwym oprogramowaniu APT. Już wcześniej prowadzone były dochodzenia dotyczące niesławnego twórcy PlugX. Znaleźliśmy również wiele rodzin szkodliwego oprogramowania, które w jakiś sposób są powiązane z PlugX i zostały prawdopodobnie stworzone przez tę samą osobę. Wszystko razem wskazuje na to, że osoba ta od dłuższego czasu ma ręce pełne roboty, generując szkodliwe oprogramowanie dla różnych chińskojęzycznych grup APT. Z pewnością jest to praca, w której nie ma miejsca na sentymenty. To dlatego taki tekst wydaje się tu nie na miejscu. Chyba że twórca tego szkodliwego oprogramowania miał dobry humor i umieścił tę wiadomość jako formę trolowania.         

Jest jeszcze druga możliwość. Ponieważ jest to funkcja droppera, dropper dla PlugX mógł zostać stworzony przez inną osobę, nie twórcę PlugX. W typowej hierarchii cyberprzestępczej można wyróżnić, między innymi, twórców bota, ransomware itd. oraz pakerów, którzy tworzą wrappery/droppery, aby pomóc głównemu szkodliwemu oprogramowaniu uniknąć wykrycia przez oprogramowanie antywirusowe.    

Prawdopodobnie jest to psikus zrobiony przez jakąś osobę, która nie jest jeszcze weteranem w świecie chińskojęzycznych ataków APT i nadal traktuje tworzenie szkodliwego oprogramowania jak swego rodzaju zabawę.

Jesteśmy pewni, że czytelnicy posiadają wystarczająco dużą wyobraźnię i sami mogą dopisać inne ciekawe i zabawne scenariusze dotyczące okoliczności, w jakich ta wiadomość mogła trafić do opisywanych dropperów PlugX. W każdym razie naprawdę mamy nadzieję, że nie jest to sygnał od jakiegoś uczciwego człowieka w rozpaczliwej sytuacji, którego okoliczności zmusiły do robienia złych rzeczy.   

Próbki wygenerowane przez konstruktora i samego konstruktora wykrywamy przy użyciu następujących modyfikacji rodziny Gulpix:


Backdoor.Win32.Gulpix.ajp
Backdoor.Win32.Gulpix.ams
Backdoor.Win32.Gulpix.axe
Backdoor.Win32.Gulpix.axf
Backdoor.Win32.Gulpix.axg
Backdoor.Win32.Gulpix.axi
Backdoor.Win32.Gulpix.axj
Backdoor.Win32.Gulpix.axm
Backdoor.Win32.Gulpix.axn
Backdoor.Win32.Gulpix.axo

Oraz dwóch werdyktów heurystycznych:
HEUR:Trojan.Win32.Generic
HEUR:Trojan.Win32.Invader

Skrót MD5 konstruktora to e57691e4f220845df27806563c7dca0b.

Legalne pliki wykonywalne zawarte w triadach PlugX, o których wspominano w poście:
ce2ae795117e54ca8403f86e7a3e19a7 - DNS Benchmark Utility;
d9978f95ce30e85943efb52c9c7d731b – ThinkPad Display Utility tplcdclr.exe Lenovo.