
MSI Dump - uno strumento che analizza pacchetti di installazione MSI dannosi, estrae file, flussi, dati binari e incorpora lo scanner YARA.
msidumpMSI Dump - uno strumento che analizza pacchetti di installazione MSI maliziosi, estrae file, flussi, dati binari e incorpora lo scanner YARA.
Sui documenti Office abilitati per macro possiamo usare rapidamente oletools mraptor per determinare se un documento è malizioso. Se vogliamo analizzarlo ulteriormente, possiamo utilizzare oletools olevba o oledump.
Per analizzare file MSI maliziosi, finora avevamo solo uno, ma affidabile e degno di fiducia lessmsi.
Tuttavia, lessmsi non implementa le funzionalità che cercavo:
Ecco dove entra in gioco msidump.
Questo strumento aiuta sia nei triage rapidi che negli esami dettagliati di corpus di MSI maliziosi. Ci consente di:
file/MIME per determinare il tipo di dato internoÈ stato creato come strumento complementare al post del blog che ho pubblicato qui:
WindowsInstaller.Installer, attualmente non è possibile supportare piattaforme Linux native. Forse wine python msidump.py potrebbe aiutare, ma non l'ho ancora provato.cmd> python msidump.py evil.msi -y rules.yara

Qui possiamo vedere che l'MSI di input è iniettato con un sospetto VBScript e contiene numerosi eseguibili al suo interno.
Dalla tabella di triage vediamo che era presente nella tabella Binary. Otteniamolo:
python msidump.py putty-backdoored.msi -l binary -i UBXtHArj
Possiamo specificare quale record scaricare tramite il suo nome/ID o il suo numero di indice (qui sarebbe 7).

Diamo un'occhiata a un altro esempio. Questa volta c'è un eseguibile memorizzato nella tabella Binary che verrà eseguito durante l'installazione:

Per estrarre quel file andiamo con
python msidump.py evil2.msi -x binary -i lmskBju -O extracted
Dove
-x binary dice di estrarre i contenuti della tabella Binary-i lmskBju specifica quale record esattamente estrarre-O extracted imposta la directory di output
Per la migliore esperienza di output, esegui lo strumento in una finestra della console massimizzata o reindirizza l'output su file:
python msidump.py [...] -o analysis.log
PS D:\> python .\msidump.py --help
options:
-h, --help mostra questo messaggio di aiuto ed esci
Argomenti obbligatori:
infile File MSI di input (o directory) per l'analisi.
Opzioni:
-q, --quiet Sopprime il banner e le informazioni non necessarie. In modalità triage, mostrerà solo il verdetto.
-v, --verbose Modalità verbosa.
-d, --debug Modalità di debug.
-N, --nocolor Non usare colori nell'output di testo.
-n PRINT_LEN, --print-len PRINT_LEN
Quando si visualizza in anteprima i dati - quanti byte includere nell'anteprima/hexdump. Default: 128
-f {text,json,csv}, --format {text,json,csv}
Formato di output: text, json, csv. Default: text
-o path, --outfile path
Reindirizza l'output del programma a questo file.
-m, --mime Quando si analizza il tipo di dato interno, riporta i tipi MIME
Modalità di analisi:
-l what, --list what Elenca i contenuti di tabelle specifiche. Vedi il messaggio di aiuto per sapere cosa può essere elencato.
-x what, --extract what
Estrae dati dall'MSI. Per cosa può essere estratto, fare riferimento al messaggio di aiuto.
Opzioni specifiche di analisi:
-i number|name, --record number|name
Può essere un numero o un nome. In modalità --list, specifica quale record scaricare/mostrare completamente. In modalità --extract, scarica solo quel particolare record in --outdir
-O path, --outdir path
Quando si utilizza la modalità --extract, specifica la posizione di output in cui estrarre i dati.
-y path, --yara path Percorso alla regola/directory YARA con regole. YARA verrà confrontato con dati binari, flussi e file interni
------------------------------------------------------
- Cosa può essere elencato:
--list CustomAction - Tabella specifica
--list Registry,File - Elenca più tabelle
--list stats - Stampa le statistiche del database MSI
--list all - Tutte le tabelle e i loro contenuti
--list olestream - Stampa tutti i flussi e gli archivi OLE.
Per visualizzare i CAB incorporati nell'MSI prova: --list _Streams
--list cabs - Elenca file CAB incorporati
--list binary - Elenca dati binari incorporati nell'MSI per i propri scopi.
Che tipicamente include EXE, DLL, script VBS/JS, ecc.
- Cosa può essere estratto:
--extract all - Estrae dati binari, tutti i file da CAB, script da CustomActions
--extract binary - Estrae dati binari
--extract files - Estrae file
--extract cabs - Estrae cabinet
--extract scripts - Estrae script
------------------------------------------------------
CustomAction Type maliziosi basandosi sulla valutazione dei loro numeri, il che è soggetto a elusione.
A quanto pare, quando ho chiamato il mio strumento, non ho pensato a controllare se fosse già stato preso.
Esiste un altro strumento chiamato msidump che fa parte del pacchetto GNU msitools:
Questo e altri progetti sono il risultato di notti insonni e molto duro lavoro. Se ti piace quello che faccio e apprezzi che restituisco sempre alla comunità, Considera di offrirmi un caffè (o meglio una birra) solo per dire grazie! 💪
Mariusz Banach / mgeeky, (@mariuszbit)
<mb [at] binary-offensive.com>