Office Malware Forensics Lab — Analisi Statica con REMnux
Analisi statica di due file Office malevoli, eseguita interamente all'interno di una VM REMnux isolata. Nulla è mai stato eseguito — solo ispezionato.
Configurazione
- VM REMnux, nessuna cartella condivisa con l'host
- Strumenti: sha256sum, file, unzip e la suite oletools (oleid, olevba, oledump, mraptor)
- Entrambi i campioni prelevati da MalwareBazaar (abuse.ch)
Campione 1: Documento Word malevolo (.docx)
SHA-256: 68e82279bff55cf3b9f1f22ec4a165b1b1245a359f7e8d86664b2541d8f8d3fe
Cosa ho trovato:
- Un file all'interno del docx (
nste.xml) era in realtà dati in formato Rich Text Format camuffati da XML — una discrepanza che di per sé è già un campanello d'allarme
- Un oggetto incorporato era un eseguibile VBS da 196 KB (
419876.vbs)
- Un altro oggetto incorporato corrispondeva a CVE-2017-11882 — un noto exploit di Equation Editor che si attiva semplicemente aprendo il file, senza bisogno di macro
Verdetto: Malevolo. Si tratta di un documento realmente weaponizzato che sfrutta una RCE nota per rilasciare un eseguibile.
Campione 2: File Excel malevolo (.xlsx)
SHA-256: dc65419ba5d83b980d7018198a14209fa2f5ebf6f99d47bfe9f586852087befe
Cosa ho trovato:
- Il file era cifrato (protetto da password), cosa che normalmente nasconde il contenuto delle macro agli scanner antivirus
- Aveva 4 moduli VBA, ma tutti e 4 risultavano vuoti —
mraptor ha restituito "Macro OK" senza flag AutoExec/Write/Execute
- Un foglio di lavoro era nascosto
- C'erano stringhe codificate in esadecimale all'interno di uno stream di macro XLM in stile vecchio, separato dal livello VBA
- La decodifica di quelle stringhe non ha fatto emergere shellcode né un URL di download — solo alcuni identificatori di type-library
Verdetto: Sospetto, ma inconcludente. La cifratura, il foglio nascosto e le stringhe offuscate sembrano tutti tattiche di evasione, ma non sono riuscito a confermare un payload effettivamente attivo nel livello VBA. Il vero payload potrebbe risiedere nel livello legacy delle macro XLM (che non ho completamente invertito), oppure questo potrebbe essere un campione incompleto/di staging.
Passaggi seguiti
- Calcolare l'hash di ciascun file (SHA-256) per la catena di custodia
- Verificare il tipo reale del file con
file, confrontandolo con l'estensione
- Eseguire
oleid per una rapida lettura di cifratura/macro/link esterni
- Eseguire
oledump per elencare ogni oggetto incorporato
- Eseguire
olevba per estrarre e decodificare qualsiasi sorgente VBA
- Eseguire
mraptor per verificare comportamenti di macro ad esecuzione automatica
Cosa dimostra questo
- Come individuare una discrepanza nel tipo di file usata per eludere il rilevamento
- Come funziona CVE-2017-11882 senza bisogno di alcuna macro
- Come verificare realmente il comportamento delle macro invece di presumerlo da indicatori superficiali
- Perché cifratura + fogli nascosti + stringhe offuscate non significano automaticamente "malevolo confermato" — a volte le prove sono inconcludenti, e vale la pena dirlo chiaramente
Fonti
Autore
Mofolorunsho Adeleke
GitHub: https://github.com/Mo200909