Contexte


Téléchargez un grand modèle open source : le plus souvent, vous vous demandez s’il peut fonctionner correctement et si les poids sont authentiques. Cette fois, le vrai sujet de préoccupation se cache ailleurs : un dépôt étiqueté 27B paramètres, livré entre vos mains… mais qui ne contient en réalité que 487 KB. À l’intérieur, pas des poids : un cheval de Troie de vol d’informations.


Le 20 août 2026, le dépôt GitHub unburdened-jackinthebox365/qwen38-uncensored a soumis, dans le répertoire assets/, un fichier nommé uncensored_qwen_v2.6.zip, d’une taille de 487 153 octets. Le dépôt l’a emballé de manière presque inattaquable : la page d’accueil affirme fournir des poids quantifiés locaux de Qwen 3.8 (27B), et le README insiste sur une exécution totalement hors ligne, sans télémétrie, et sur le fait que les données ne quittent jamais la machine. Chaque phrase vise parfaitement les attentes des utilisateurs de modèles locaux. Quatre jours plus tard, le 24 août, le README a encore été modifié : le bouton de téléchargement, le lien de téléchargement dans le corps du texte, ainsi que les deux liens externes initiaux qui renvoyaient respectivement vers les sites officiels d’Ollama et de LM Studio, ont tous été redirigés vers la même adresse raw de ce ZIP.

À ce stade, le piège est évident. Un modèle quantifié Q4_K_M de 27B paramètres occupe normalement plus de 16 Go sur le disque, et l’indication affichée par bin/install.cjs dans le dépôt mentionne elle aussi environ 16,8 Go. Pourtant, les ressources réellement remises ne font que 487 Ko, et après extraction il n’y a que trois fichiers — Application.cmd, util.exe et cert.txt — sans aucun poids GGUF.


Nous en déduisons qu’il s’agit d’un faux dépôt distribué au nom de Qwen, et que le projet officiel Qwen n’a pas été compromis. Le script d’installation Node.js du dépôt implémente en apparence le flux « écrire le Modelfile → appeler ollama create » ; nous n’avons pas effectué de validation dynamique cette fois-ci. Le code principal du dépôt conserve les apparences d’un projet normal, tandis que le ZIP malveillant est soumis comme ressource téléchargée dans assets/. Si l’on ne vérifie que le code source ordinaire sans décompresser les ressources téléchargées, cette porte d’entrée peut être manquée.


Cet article repose principalement sur des preuves statiques et n’a exécuté aucun échantillon. Les requêtes C2 ont été reproduites avec des données d’hôte simulées ; seuls les retours ont été lus et les charges téléchargées, sans exécuter le contenu téléchargé ni accéder au point de terminaison final d’envoi. Les descriptions comportementales dans l’article indiquent que le code contient les implémentations ou les chemins d’appel correspondants, sans signifier que ces opérations ont eu lieu sur une machine réelle.

Réponse MistEye

MistEye est un système de renseignement sur les menaces Web3 et de surveillance de sécurité dynamique développé en interne par SlowMist, qui intègre des capacités de surveillance de sécurité et d’agrégation de renseignements afin d’offrir aux utilisateurs des alertes de risque en temps réel et une protection des actifs.
Dans cet incident, MistEye a effectué une analyse statique du dépôt leurre, des ressources téléchargées et des charges suivantes, a reproduit les requêtes C2 avec des informations d’hôte simulées, a conservé les réponses et les preuves de téléchargement, et a reconstitué une chaîne de diffusion multi-étapes tout en extrayant les IOC réseau et fichiers. Le 26 août, un recontrôle a vérifié la survie du C2 et la rotation de l’infrastructure de distribution ; une comparaison comportementale hors ligne a également été menée sur 29 ZIP similaires répartis dans 23 dépôts. Les IOC correspondants ont été intégrés au moteur de détection de menaces MistEye. 

Voici l’analyse technique détaillée.

trois fichiers dans le paquet téléchargé de 487 Ko


Le contenu complet de Application.cmd est une seule commande :

start util.exe cert.txt

En comptant les retours à la ligne, cela fait 25 octets. Il ne décompresse pas le modèle et n’appelle pas Ollama ; il demande simplement à util.exe, dans le même répertoire, de lire un fichier texte, puis le contrôle est transmis au script Lua contenu dans cert.txt. Il n’y a aucun autre fichier dans l’archive ; ces trois-là constituent tout le contenu.

util.exe fait 759,808 octets et correspond à un interpréteur LuaJIT 2.1 renommé. LuaJIT lui-même est un runtime Lua largement utilisé par des logiciels légitimes. Le chemin PDB résiduel dans le PE indique D:\a\defold\...\luajit.pdb, ce qui pointe vers un artefact d’empaquetage du moteur de jeu Defold. L’analyse statique n’a trouvé dans util.exe aucun comportement malveillant ne dépendant pas du script ; ce fichier ne sert qu’à exécuter le Lua obfusqué du même répertoire.

cert.txt ressemble à un certificat, mais son contenu est un Lua en une seule ligne de 182,116 octets. Le script entier ne contient aucun retour à la ligne ; toutes les chaînes sont transformées en échappements décimaux et en appels de table, si bien qu’une lecture directe ne montre qu’une suite de nombres et de petites variables. Voici un petit extrait du début du fichier, replié par instruction pour la lisibilité et tronqué par des points de suspension à la fin :

Les deux premières fonctions servent à récupérer des caractères selon un indice et à réordonner la séquence ; à partir de la troisième ligne commence la table de chaînes éclatées. Les centaines de chaînes en clair du script sont toutes stockées sous cette forme et ne sont reconstituées qu’à l’exécution.

Le point d’entrée à risque ne se trouve donc pas dans le prétendu programme de modèle. L’archive fournit un interpréteur générique et un texte ; toute la logique malveillante réside dans cert.txt.

图片
Images

Réponse C2 complétant la chaîne de diffusion suivante

Après désobfuscation hors ligne, la structure de cert.txt devient claire. Il maintient une table de plusieurs centaines de chaînes, entièrement transformée en échappements numériques en clair, puis restaurée octet par octet à l’exécution. Le script utilise LuaJIT FFI pour analyser et appeler des API Windows comme VirtualAlloc et CreateThread.

Le chargeur porte le numéro 845. Au démarrage, il collecte le nom d’hôte, le nom d’utilisateur, le GUID et la version système, capture une capture d’écran en BMP via BitBlt, puis demande une géolocalisation à une interface de localisation IP ; il assemble ensuite ces éléments dans une requête multipart POST vers 217[.]119[.]129[.]122 codée en dur. Voici la requête réellement émise après reconstruction selon le script :

La chaîne après /api/ dans le chemin se décode en numéro client 517b7c5e5663656a057f. La capture d’écran est placée dans la partie file ; ce qui commence par BM est bien l’en-tête d’un fichier BMP. Les informations de l’hôte sont placées dans la partie data, et les deux se trouvent dans la même requête. Après décodage, data donne une valeur simulée du type computer=SIMULATED-PC&user=simulated-user&query=203.0.113.10, qui ne correspond à aucun hôte réel.


Les tâches distribuées par le serveur sont traitées séparément selon l’extension et couvrent quatre catégories : charges exécutées directement en mémoire, programmes autonomes, DLL et scripts. Un seul chargeur peut gérer presque tous les formats de charges courants. Le script contient aussi la persistance Defender exclusion, la persistance via tâche planifiée et le retour de fin de tâche ; ces trois fonctions sont toutes placées dans des branches conditionnelles, dont l’activation dépend de la configuration du loader fournie par le serveur et des conditions locales. La configuration obtenue cette fois n’a activé que la persistance ; les autres options étaient désactivées. Il s’agit de fonctions conditionnelles et cela ne signifie pas que l’opération correspondante ait déjà été effectuée sur la machine réelle.


Lorsque l’adresse codée en dur devient invalide, le chargeur dispose d’un chemin de secours. Il envoie alors une requête eth_call à la chaîne Polygon, lit la valeur renvoyée par le contrat 0x1823A9a0Ec8e0C25dD957D0841e3D41a4474bAdc avec le sélecteur 0x3bc5de30, puis en extrait le C2 de secours ; lors du test réel, celui-ci a donné 194[.]48[.]248[.]94 :

Le préfixe de longueur 0x14 vaut 20, ce qui correspond exactement au nombre de caractères de l’adresse déchiffrée ; les deux éléments se confirment mutuellement. Ce segment hex n’a pas besoin de notre script de décodage : une simple consultation de la table ASCII suffit pour le vérifier soi-même. Parmi les cinq points de terminaison RPC configurés dans le script, trois ont renvoyé les données ci-dessus, identiques octet par octet ; un exige un abonnement payant et un autre refuse directement. Une fois l’adresse écrite dans le contrat de la chaîne publique, changer de serveur ne nécessite plus qu’une seule transaction ; bloquer séparément l’IP de secours actuelle ne peut pas empêcher le contrat de renvoyer une nouvelle adresse plus tard.

Après correction du format de requête selon le script de comparaison, le beacon simulé de 845 a reçu HTTP 200, avec 1248 octets de JSON.


Les champs de réponse passent par trois niveaux d’encodage ; le sens de décodage est Base64 → hex en minuscules → XOR circulaire de 32 octets. La clé XOR ECe6VGLRJum2qYtl79OiOU7aHot7Zhbn est écrite dans le script. Les deux extraits ci-dessous présentent le contenu avant et après décodage de la même réponse, chacun tronqué aux 56 premiers caractères :

Il en ressort une stratégie de chargeur et une tâche :

Le champ pump contrôle si des données aléatoires sont utilisées pour étendre le fichier déposé à la taille spécifiée par le serveur ; dans la tâche actuelle, ce commutateur est désactivé.

La tâche télécharge un fichier appelé `tool.log` vers `%TEMP%\dist.lua` puis l’exécute. Ce fichier fait 396,616 octets et est entièrement en hexadécimal ASCII ; après décodage hex puis XOR, on obtient un Lua obfusqué de 198,308 octets. C’est le second chargeur, numéro 847 ; son C2 initial devient `217[.]119[.]129[.]97`, et la disposition de l’obfuscation est isomorphe à celle de 845. En exécutant le chargeur 847 avec les mêmes données d’hôte simulées, il lance un beacon vers `217[.]119[.]129[.]97`, et le serveur renvoie deux tâches.

Parmi les deux tâches, l’une reste `tool.log`, l’autre pointe vers `verb.log` du même dépôt, et le chemin de dépôt est écrit `AppData\..\Local\Programs\Chromium\Application\Chromium.exe`. Le `..` du milieu fait remonter le chemin vers LocalAppData, et le nom final se fait passer pour le programme principal du navigateur Chromium.

tool.log, verb.log ainsi que les deux PE suivants proviennent tous des réponses du C2 et des fichiers déposés lors du téléchargement ; ils n’étaient pas présents dans le ZIP d’origine. Le ZIP prouve que le chargeur est capable de télécharger et d’exécuter des fichiers ; les réponses C2 conservées montrent, elles, qu’au moment de la collecte le serveur a bien envoyé des tâches de téléchargement ultérieures au loaderId 845.

charge StealC extraite de verb.log

Décompression et chargement


verb.log 3,089,408 octets, également en ASCII hex, la chaîne de transformation est hex/XOR → PE externe → Base64URL/AES → PE interne. En utilisant la même clé XOR pour le déchiffrer, on obtient un PE externe 64 bits de 1,544,704 octets ; le texte Base64URL dans sa section de ressources se décode en un chiffrement AES-256-ECB de 797,728 octets. La clé bFYh8UMQGZOBUlvrpS3M4ZJybbubVbvg, dérivée par le PE externe à partir de deux tableaux de constantes, peut être restaurée statiquement ; le déchiffrement donne un second PE 64 bits de 797,728 octets, identique en taille.


Le PE externe charge manuellement le PE interne dans son propre processus : allocation mémoire, copie de l’en-tête et des sections, correction des relocations et de la table d’imports, création d’un thread puis démarrage à partir du point d’entrée. La chaîne d’appels statiques ne contient pas d’API d’injection interprocessus comme CreateProcess, WriteProcessMemory, SetThreadContext ou ResumeThread — tout le processus est un chargement réflexif dans le processus lui-même.

Vérification de l’environnement


La charge interne vérifie d’abord l’environnement : si la langue système par défaut correspond au russe, à l’ukrainien, au biélorusse, au kazakh ou à l’ouzbek, elle quitte ; ensuite, elle crée un Event nommé à partir des informations de l’hôte pour le contrôle d’instance unique, puis vérifie la date d’expiration intégrée. Ce n’est qu’après la réussite de toutes ces vérifications qu’elle entre dans la logique principale.

Objectif de collecte

  • Navigateurs : Chrome, Edge et Brave récupèrent les données de connexion, les cookies, l’historique et les bases de données associées ; Firefox appelle l’interface NSS pour déchiffrer les informations de connexion enregistrées. Lorsque la base de données est verrouillée, Restart Manager termine les processus qui l’occupent.

  • Messagerie et administration : identifiants Foxmail et Outlook, informations de session WinSCP, lesquelles correspondent directement aux serveurs accessibles par la victime.

  • Steam : configuration de connexion, jetons et fichier sentinelle.


À partir de Chrome 127, les cookies et les mots de passe enregistrés sont protégés par App-Bound Encryption, avec une clé conservée dans un service au niveau système ; copier seulement le fichier de base de données ne permet plus d’obtenir le texte brut. Pour cela, la charge embarque un module auxiliaire PE, injecté par Early-bird APC dans un chrome.exe, brave.exe ou msedge.exe suspendu ; le module auxiliaire lit la clé App-Bound chiffrée dans le processus du navigateur, puis exporte une clé claire de 32 octets via l’interface du service COM Elevation correspondant à chaque navigateur, rendant à nouveau lisibles les fichiers de base de données collectés auparavant.


La collecte des portefeuilles est entièrement pilotée par le serveur : le collecteur récursif répartit les tâches de fichiers envoyées par le C2 selon leur type, et la branche wallets recherche le répertoire local à partir du nom de la tâche et du nom de fichier ; le C2 peut aussi envoyer des ID d’extensions, afin de collecter le stockage et l’IndexedDB des extensions Chromium correspondantes. Le texte brut de l’échantillon ne contient ni nom de portefeuille ni chemin d’installation, et il n’implémente pas non plus d’analyse de phrase mnémonique ou de clé privée comme BIP39 ou secp256k1 — le portefeuille ciblé est décidé au moment où le serveur envoie la tâche, et l’échantillon statique ne peut pas lister la cible de cette campagne.

Téléversement et attribution

La charge comprend aussi des fonctions de capture d’écran, de collecte des informations système et de la liste des processus, d’exécution secondaire via PowerShell, d’élévation de privilèges, ainsi que d’autodestruction à la sortie.

L’envoi des données se fait via des POST JSON de 512 KiB en fragments. Le point de terminaison d’envoi est stocké dans le fichier après chiffrement RC4 puis encodage Base64 ; déchiffré avec la clé de configuration 55uUe45tr1x1xy1lSK, il donne http[:]//89[.]169[.]12[.]194, et le corps de la requête est lui aussi chiffré avec une autre clé RC4.

StealC est un cheval de Troie voleur d’informations Windows spécialisé dans le vol d’identifiants de navigateur, de cookies, de portefeuilles chiffrés et d’autres données sensibles, qu’il envoie ensuite au C2 des attaquants. L’étendue de collecte de la charge interne, l’aide au déchiffrement App-Bound, la branche portefeuille et les envois chiffrés RC4 correspondent aux caractéristiques connues de StealC ; nous le classons donc comme StealC.
Si ces éléments sont effectivement obtenus, les conséquences diffèrent : les cookies de navigateur permettent la prise de session déjà connectée, les identifiants mail et Steam entraînent une perte de compte, et une session WinSCP correspond à des serveurs que la victime administre ; si une clé privée ou une phrase mnémonique fuit, le transfert d’actifs ne peut pas être annulé.

Re-vérification confirmant la rotation de l’infrastructure de distribution


Le 26 août, nous avons renvoyé les trois beacons avec les mêmes données d’hôte simulées. Les trois points de terminaison ont tous répondu HTTP 200, et le champ de stratégie du loader n’a pas changé d’un seul caractère. La variation se situe dans l’adresse de téléchargement à l’intérieur de la tâche.

vs.log et l’ancien tool.log sont identiques octet par octet, seul le nom a changé ; le chargeur 847 n’a pas changé. Après décodage, ssl.log est le nouveau PE externe, de 1,539,072 octets ; l’adresse d’entrée et la taille de l’image ont changé, et la clé AES a été remplacée par yK8-eM8KFA8Hl8cCybERmOLZupFvfCNZ.

La charge interne déchiffrée avec la nouvelle clé fait toujours 797,728 octets. En la comparant octet par octet à l’ancienne version, le fichier entier ne diffère qu’en un seul endroit, dans la section des données en lecture seule : le numéro de build envoyé au serveur est passé de build5 à build1. Le point de terminaison d’envoi, la clé de configuration RC4 et la clé de corps de requête sont tous inchangés.

Changer de dépôt, changer de nom de fichier, mettre à jour le PE externe, changer la clé AES : ces actions rendent les anciens hachages exacts inopérants. Il faut vérifier par des règles concrètes si la structure stable et les caractéristiques comportementales restent détectables. La charge voleuse en elle-même est restée stable pendant ces deux jours, seul un libellé de version a changé ; il s’agit d’une observation entre deux jours de collecte, insuffisante pour conclure à une stabilité plus longue.


Plus de dépôts GitHub malveillants


Nous avons en outre collecté 29 échantillons ZIP malveillants répartis dans 23 dépôts GitHub. L’examen initial montre que ces échantillons utilisent tous Lua comme partie de leur chaîne d’exécution, souvent sous la forme d’un lanceur .cmd ou .bat qui appelle un LuaJIT local ou un interpréteur renommé, puis exécute un script Lua dans le même répertoire. Les thèmes leurres des dépôts couvrent plusieurs catégories, notamment les modèles et outils IA, les services MCP, les scripts de développement et les projets de portefeuille.

Il faut préciser qu’à ce stade nous n’avons pas encore procédé à une reconstruction complète du code ni à une analyse détaillée de la chaîne d’attaque pour ces 29 échantillons ; les preuves disponibles permettent seulement de confirmer qu’ils présentent tous un comportement malveillant et qu’ils utilisent la pile Lua, sans conclure que tous emploient exactement la même méthode d’obfuscation, le même flux d’exécution, la même infrastructure C2 ou la même charge finale.


Résumé


Un faux dépôt GitHub se faisant passer pour Qwen a dirigé la ressource téléchargée vers un ZIP de 487 Ko ; le paquet ne contenait aucun poids de modèle, seulement un interpréteur LuaJIT et un script obfusqué. Les réponses C2 conservées relient l’échantillon à une charge voleuse interne ; nous le classons donc comme StealC.


Les risques concernent les sessions de navigateur, les identifiants mail et d’administration, les jetons Steam et les éléments liés aux portefeuilles, à condition que ces éléments aient effectivement été récupérés. Entre les deux collectes, le dépôt de distribution, le nom de fichier, le PE externe et la clé AES ont déjà changé ; la charge interne n’a varié que par un caractère dans son numéro de version. Les 29 ZIP similaires répartis dans 23 dépôts montrent que cette structure de diffusion a été réutilisée en masse ; la chaîne complète suivante de chaque variante reste à confirmer échantillon par échantillon.


Recommandations

1. Isoler et forensique : lorsqu’un hôte correspond au ZIP, aux hachages de script, au C2 ou aux URL de téléchargement listés dans cet article, sauvegarder d’abord la source du téléchargement, l’arbre des processus, les journaux de connexions réseau et les fichiers déposés, puis procéder au nettoyage.

2. Vérifier les modifications sur l’hôte : si des traces d’exécution du lanceur, ou des traces de chargement par LuaJIT ou par un interpréteur renommé de texte obfusqué volumineux, sont trouvées, il faut vérifier les tâches planifiées, les clés Run, les éléments StartupApproved, et confirmer si la liste d’exclusions de Defender a ajouté le disque système ou les extensions .exe / .dll.

3. Traiter les identifiants compromis : si l’exécution de l’échantillon est confirmée ou si une charge déposée associée est découverte, réinitialiser les sessions de navigateur et les mots de passe enregistrés, les comptes mail, les jetons Steam et les identifiants de session WinSCP ; si des clés privées ou des phrases mnémoniques de portefeuille ont été stockées sur l’hôte, transférer d’abord les actifs vers une nouvelle adresse, puis traiter la machine elle-même.

4. Ajouter une détection composite : intégrer à la surveillance la séquence « petit lanceur → LuaJIT local ou interpréteur renommé → texte mono-ligne volumineux dans le même répertoire → émission de requête HTTP ou écriture dans une mémoire exécutable ». Cette chaîne repose sur des services légitimes ; la détection doit donc s’appuyer sur la combinaison comportementale et sur les URL malveillantes précises listées dans cet article, sans bloquer aveuglément GitHub Raw ni les RPC Polygon publics.

IOC


IP


217[.]119[.]129[.]122


194[.]48[.]248[.]94


217[.]119[.]129[.]97


89[.]169[.]12[.]194


URL


http[:]//217[.]119[.]129[.]122/api/NTE3YjdjNWU1NjYzNjU2YTA1N2Y=


http[:]//217[.]119[.]129[.]97/api/NTE3YjdjNWU1NjYzNjU2YTA1N2Y=


https[:]//raw[.]githubusercontent[.]com/unburdened-jackinthebox365/qwen38-uncensored/main/assets/uncensored_qwen_v2[.]6[.]zip

 

https[:]//github[.]com/Minaadelfouad64/tools/raw/refs/heads/main/verbose/tool[.]log

 

https[:]//github[.]com/Minaadelfouad64/tools/raw/refs/heads/main/verbose/verb[.]log

https[:]//github[.]com/fuhuhlatoogan/mtp/raw/refs/heads/main/p/vs[.]log

https[:]//github[.]com/fuhuhlatoogan/mtp/raw/refs/heads/main/p/ssl[.]log

                 

Dépendances malveillantes

                 

https[:]//github[.]com/unburdened-jackinthebox365/qwen38-uncensored

                 

https[:]//github[.]com/Minaadelfouad64/tools

                 

https[:]//github[.]com/fuhuhlatoogan/mtp

                 

https[:]//github[.]com/0ogata0/qwen-php-client

                 

https[:]//github[.]com/115th-discomfited211/Awesome-Harness-Engineering

                 

https[:]//github[.]com/123affano1/claudetrack

                 

https[:]//github[.]com/1sustgmboab/nexonco-mcp

                 

https[:]//github[.]com/2josEx/claude-brain

                 

https[:]//github[.]com/428alexander9/claude-skills-marketplace

                 

https[:]//github[.]com/45d5r/databricks-mcp-server

                 

https[:]//github[.]com/7ossamfarid/mcp-mindmesh

                 

https[:]//github[.]com/Bean5789/bbd2api

                 

https[:]//github[.]com/CleverPortal/CollabNote-Fullstack-App

                 

https[:]//github[.]com/Juanvil9941/AI-Invoice-System

                 

https[:]//github[.]com/Kalainilavann/takeout_downloader_script

                 

https[:]//github[.]com/Prestonflatfooted659/Void-Tools-v2.0

                 

https[:]//github[.]com/Walloperlioncub193/Canva-Resource

                 

https[:]//github[.]com/archontelemetered604/clash-for-windows

                 

https[:]//github[.]com/fantastic-interpolation620/ctx-wire

                 

https[:]//github[.]com/mikenob39wang/phone-number-location-tracking-tool

                 

https[:]//github[.]com/recognisable-riddance165/Portable-Offline-LLM

                 

https[:]//github[.]com/sociologisttentcaterpillarmoth213/100xdev-ci-cd

                 

https[:]//github[.]com/soldat-panther/qq-farm-cdp-auto

                 

https[:]//github[.]com/thaddeusprobabilistic193/Xault-Wallet

                 

https[:]//github[.]com/twelfth-puerperium297/tokenoptim

                 

https[:]//github[.]com/wasila7220/multi-model-router

                 

Fichiers malveillants

                 

nom_de_fichier : uncensored_qwen_v2.6.zip
MD5 : bf21a07ad5743d3ae9f55ff526428a0a
SHA1 : 8e3391c17c3f4fb6f42594de7425df96dbbbc01e
SHA256 : 36d0bac5743ed9c6858258f28f2c2f9161dc06c4d5af73eb7eda1211ea610758

                 

nom_de_fichier : Application.cmd
MD5 : 17d94f34b9d15449b03bc099a637782b
SHA1 : eb474f898256e8e7baaf0d63b306d1169e637c73
SHA256 : 7c4f3e09c6428d0a0d7d85615695f5fedb35bb4e7180d31e1f8a1bacf22e5639

                 

nom_de_fichier : cert.txt
MD5 : ccfc0f145861f23c6850c691c4be54b9
SHA1 : b88ac887493f31cf9f160ddbc6bc3a2aa298a0ca
SHA256 : a75561a3224d9f836058a6d0204ed2e6c1f638275a59495935cd2a5e46fd28ca

                 

nom_de_fichier : tool.log,vs.log
MD5 : 8063ba8ec896b52e5e6d435cc60e82f7
SHA1 : f445bd4c5b65b7e013ec518f34f4cd64676201d2
SHA256 : 7ebbb61733d8aefcf9401f00e8ff7e593c9f0edecb6609675aebd3eb78a5ae2d

                 

nom_de_fichier : verb.log
MD5 : 650a8ee5d091275040ae4dd02dcdd806
SHA1 : 343d819ceb63c742912723c42fd158b82d0a90be
SHA256 : 699af883d862d8949a494f69e2d300142ce506a0ac6c7a239193c111dfed241e

                 

nom_de_fichier : inner-payload.aes256-ecb-decrypted.bin
MD5 : 01e433263a7fd50e812195ff4c11cc90
SHA1 : ea53a41c53181374cade8d69882bb1390f0c2562
SHA256 : ec981c45d494896037583c746543490176c9ce9a1482e62c4e8ab189c2650b1c

                 

nom_de_fichier : ssl.log
MD5 : 9d11bce9c213924b53bcb986f07945c6
SHA1 : 2abf1436933dc6b63a016661d5d16f1eda303b59
SHA256 : 7b0d919bd510cbcc587cca4b74aad1e086fb1fc34882a39946e6db7d4361a746

                 

nom_de_fichier : inner-payload.build1.bin
MD5 : 370f95bf40a9c9fe852b2e4bdd95689f
SHA1 : 219a0e7c3907bb65ef7db7428400745570d4e105
SHA256 : 5d63f3dc9371d4496ca0e728a794151978e94b69ae4b3c705cea4e67cc6cf208

                 

nom_de_fichier : client_qwen_php_v2.4.zip
SHA256 : 073c6192ab4c2d5d25fc13acab4c216c96f9d5926064c534e3803bb31d527b28


nom_de_fichier : Engineering_Harness_Awesome_1.9.zip
SHA256 : 0870fe8a4d9e64e335047e16ed1d6b0805beab9686495a1e8c247cf2e1a8e930

                 

nom_de_fichier : Software_v1.6.zip
SHA256 : 71b37b48f80106fc864be7e82481cd1a2f7decfeaf1dce45abb924d7f32da933

                 

nom_de_fichier : nexonco-mcp-v3.0-alpha.1.zip
SHA256 : a866d90d6f1dd82ddcd2cbef4f5550c77bb58dbda87c02eedb441a117b7d89b9

                 

nom_de_fichier : claude-brain-v1.4-alpha.3.zip
SHA256 : a271231ebf6174b11aeb3337c238abc0eac44b48b5fa8d2b168883601d8cc3a5

                 

nom_de_fichier : brain_claude_2.2-alpha.1.zip
SHA256 : ca4babb4444af81cf93b34436de7a4a3c8e1a93f6233bcc8753ddd868b4c9eaa

                 

nom_de_fichier : claude-skills-marketplace_v3.4.zip
SHA256 : 438033226b1bd1e26db8ab71a777e74cc90b5c31310139269fe8e52308f6c938

                 

nom_de_fichier : skills-marketplace-claude-2.9.zip
SHA256 : f07a4eadd43513f56ae4fdf6f6dfc966de17f06093c75c1dec0dd426668779f9

                 

nom_de_fichier : server_databricks_mcp_1.6.zip
SHA256 : 66afc7d87d10dbe392898c4e5c613e0442fabb396415c2bef3a5ef2ac752c5ad

                 

nom_de_fichier : mindmesh_mcp_1.0-alpha.5.zip
SHA256 : e8da8c82ccb1c6fd68e7c03187485d6ebbd07a4946a7f07cac54fef65b00d2bf

                 

nom_de_fichier : bbd-api-3.1.zip
SHA256 : 3524dc4a232c76067f8b2df9adf34ae1106dcc1528e5467c1abc285fc51d1e82

                 

nom_de_fichier : Note-Collab-App-Fullstack-v3.6-alpha.5.zip
SHA256 : 6f823d15658b07d6d90f292848fcdd30fe840f83d653cc34966e2fd61d9c3117

                 

nom_de_fichier : Invoice_A_System_3.9.zip
SHA256 : 8332d91619563e46e248f427cf489f8bd61a83124eb4c95749ce284b443a2803

                 

nom_de_fichier : downloader-script-takeout-v1.1.zip
SHA256 : 8412f2d2b47181f272b0c0e02fe619331e0c2c8d3b90f32e8ce08ac98aaec3f6

                 

nom_de_fichier : downloader_takeout_script_v3.8.zip
SHA256 : b781102c6ff857fb45089a6b3d30c5ebb7699ec7e8771bfa0039bef28de782bd

                 

nom_de_fichier : takeout-downloader-script-galvanocauterization.zip
SHA256 : 13dc7623c66d1fed51ae94b0d96e8ed45c93d893afabf9aceb4ef0a8da0243ee

                 

nom_de_fichier : Void-v-Tools-v1.7.zip
SHA256 : 841d0c25137f35b60d940705ab7b5dc3e9936f37e0561934e72c5dafe93466d8

                 

nom_de_fichier : Resource-Canva-2.2.zip
SHA256 : ac6a24d02209df94f56f67e7f3f19dc997f7a2625b91add1dd10cdec0a06d392

                 

nom_de_fichier : for-clash-windows-3.2.zip
SHA256 : 036062622f3a1fa2718afc91f8fe4edc693b757365dfc2c0958b70fe8c84c20d

                 

nom_de_fichier : wire-ctx-2.6-alpha.1.zip
SHA256 : db0640eb414a89bb62953f0aa7603557f3b8de515e7c3696156abc10f835ecef

                 

nom_de_fichier : location-tracking-tool-phone-number-v3.3.zip
SHA256 : 3fc5816afde3e58bf9fcaa1b3873f2d4bc8629ee7a8341a4a4979d2729cad5e6

                 

nom_de_fichier : location_number_tracking_tool_phone_v2.5.zip
SHA256 : 398ea394f9a4242ebe9fd67a5ca62445fc4a34b1731d4f99b8eea5e65a98ddcb

                 

nom_de_fichier : tracking-tool-location-number-phone-3.2.zip
SHA256 : b6e81d95c0c336e8b8bde3889f4df4ee17639f6ff055c631de19cab3c7efb63b

                 

nom_de_fichier : Offline_LLM_Portable_v2.1-alpha.1.zip
SHA256 : 1313b6cfb1ea43367fdd845f64526b4972a3a345bb8b13cef7ebb678d59b5f55

                 

nom_de_fichier : ci_cd_xdev_v2.3-alpha.3.zip
SHA256 : ed1ae6799ecb1fc7c5239c4ab95b3b9de9462f21219f144a25b91b6fd430a2c2

                 

nom_de_fichier : farm-cdp-qq-auto-1.1.zip
SHA256 : 6145aeacba6533e10dcea287d0fff64c48a790c58ae266ed18ea5d13c36d27ca

                 

nom_de_fichier : v3.9.zip
SHA256 : a0dd4924bec9bc077b1f98ddcb45b4e07b01e63ad703c2507d822b5b5130a077

                 

nom_de_fichier : Software-Lithodes.zip
SHA256 : 40c2b7b8dcfa6bfe0a199af9ea4baa00a4b8ecd73afa326702cdc4197d64bdef

                 

nom_de_fichier : model-multi-router-v3.5-beta.1.zip
SHA256 : 152929ae778e6ed9f358ca8590d2155e1a04137b109a5442891e1ba3fe1a7f82


À propos de MistEye


MistEye est une plateforme de renseignement sur les menaces Web3 et de surveillance de sécurité dynamique développée en interne par SlowMist, qui fournit via API des capacités de détection d’activités malveillantes dans l’écosystème des paquets open source et d’alerte sur les risques de la chaîne d’approvisionnement.


Tous les paquets malveillants et IOC impliqués dans cette opération ont été intégrés au moteur de détection de menaces MistEye ; les développeurs peuvent utiliser l’API pour automatiser l’analyse des dépendances d’un projet, déterminer rapidement s’il correspond à un paquet malveillant connu et obtenir des recommandations de remédiation.

                 

📖 Documentation API : https://app.misteye.io/api-docs


🛠️ MistEye-DepScan : https://github.com/slowmist/MistEye-DepScan
Outil CLI léger qui analyse en une seule commande les dépendances d’un projet et les paquets globalement installés afin de détecter les paquets malveillants connus ; prend en charge les écosystèmes npm / PyPI / Cargo / Go / RubyGems


🛠️ MistEye-Skills : https://github.com/slowmist/misteye-skills
Pack de compétences de sécurité pour assistants de codage IA, déclenchant automatiquement les contrôles de sécurité MistEye avant l’installation des dépendances et l’accès aux URL


🛠️ MistEye-DNS-Guard : https://github.com/slowmist/MistEye-DNS-Guard
Outil de protection DNS, détecte les domaines malveillants et les accès à risque, et identifie le phishing, les C2 et d’autres menaces réseau


Cet article a été rédigé par l’équipe de renseignement sur les menaces de SlowMist, avec MistEye Threat Intelligence System et l’analyse pilotée par SlowMist Agent AI ; pour toute question, n’hésitez pas à nous consulter ou à nous faire un retour.


Références


[1]https://x.com/OpcodeIntel/status/2091578565628502324

[2]https://www.microsoft.com/en-us/security/blog/2026/06/24/stealc-and-amadey-breaking-down-infostealers-and-the-cybercrime-services-that-deliver-them/

[3]https://security.googleblog.com/2024/07/improving-security-of-chrome-cookies-on.html