La quinta domanda chiedeva se era possibile estrarre qualche file dal processo inizialmente responsabile per l’attacco. Dato che il processo sospettato era Acrobat Reader, tramite Volatility ne ho estratto l’immagine in memoria del processo, dopodiché ho provato ad usare foremost su di essa. Il risultato è interessante, anche perché due file PDF estratti dall’impronta in memoria del processo non vengono estratti se invece si esegue foremost sull’intera immagine della memoria. I due file interessanti sono rispettivamente di 60kbyte e di 600kbyte, ed il primo è cifrato.
Usando i PDF-tools di Didier Stevens si riesce ad analizzare la struttura dei file PDF, anche se tutti risultano corrotti in vari modi.
Quello cifrato non riserva particolari sorprese, mentre quello da 600kbyte ha una “azione automatica” eseguita all’apertura del documento, ossia l’esecuzione di un codice Javascript. Il codice Javascript è nascosto in un blocco con il tag di identificazione del tipo offuscato: /F#6c#61#74e#44e#63#6fde e /#41#53#43II#38#35#44#65#63#6fd#65 che in realtà corrispondono a: /FlateDecode /ASCII85Decode. Usando l’utility pdf-parser.py, sempre nei PDF-tools, si riesce ad estrarre il blocco ed a mettere le mani in un consistente blocco (84kbyte) di codice Javascript pesantemente offuscato.
La sesta domanda chiede di individuare la tecnica usata per sferrare l’attacco. Questa è forse la risposta che ha richiesto più lavoro. L’attacco viene portato dal file PDF usando un tag di tipo /AA, che nel formato PDF sta per Add Action. In breve, è possibile associare un’azione alla visualizzazione di una determinata pagina. In questo caso l’azione è stata di mandare in esecuzione il blocco di codice Javascript. Per capire cosa abbia fatto il codice, occorre invertire l’offuscamento, ma le cose non sono così semplici. Il Javascript usato da Acrobat Reader è certamente standard, tanto da essere possibile eseguirlo in Firefox, ad esempio, ma quello che cambia drasticamente sono le funzioni disponibili all’interno dell’ambiente di esecuzione. In Acrobat, Javascript ha a disposizione tutte le funzioni necessarie per lavorare con i file PDF (e non solo quelli), funzioni che in Firefox, ad esempio, non esistono. Quindi eseguire il blocco di codice Javascript in Firefox, racchiudendolo tra i tag SCRIPT non produce alcun risultato utile. Esaminando un po’ il codice “a vista” si riesce ad individuare una chiamata alla funzione Javascript eval( ). Riuscire a vedere il parametro (la stringa) passata ad eval spesso significa vedere il codice non offuscato. Installando Firebug in Firefox si riesce nell’intento. Basta piazzare un breakpoint subito prima della chiamata alla funzione eval e si ottiene il codice Javascript in chiaro.
Ebbene, il codice Javascript contiene ben tre differenti shellcode, da usare in funzione della versione di Acrobat Reader (7, 8 o 9). In tutti e tre i casi il risultato dell’esecuzione dello shellcode è che viene scaricato un file eseguibile ed avviato senza possibilità di intervento dell’utente.
La settima domanda chiede di individuare eventuali file sospetti caricati da un qualsiasi processo attivo nella macchina in esame, e se tale file possa essere messo in relazione con l’attacco iniziale. Anche qui Volatility fa la parte del leone, utilizzando anche un plugin sviluppato da Michael Hale Ligh. Nel processo relativo a WinLogon si trovano quattro file sospetti: \WINDOWS\system32\sdra64.exe, \WINDOWS\system32\lowsec\user.ds, \_AVIRA_2109 e \WINDOWS\system32\lowsec\local.ds. Dalla successiva analisi si vedrà che tali file sono associati proprio al malware Zbot. Eseguendo il citato plugin di Volatility per estrarre codice iniettato in altri processi sul processo di WinLogon, si ottengono sei file, ma solo uno di loro contiene stringhe relative ai file sospetti trovati prima. Interessante è anche una lista di nomi di funzioni esportate da alcune DLL di sistema di Windows. Tali funzioni vengono utilizzate per iniettare codice in altri processi. Lo stesso file, passato a VirusTotal per l’analisi viene identificato come una variante di Zbot.

