Tecniche di Evasione Sandbox Online – Proof of Concept

È un dato di fatto che gli incidenti di sicurezza causati da malware sono tra i più frequenti. Al fine di contenere l’incidente e/o valutare l’impatto è importante analizzare le informazioni relative alla natura del malware e al suo comportamento. La raccolta di queste informazioni consente di individuare infezioni provenienti da malware appartenenti alla stessa famiglia e di studiare soluzioni per risolvere o contenere la compromissione.

L’analisi dei sample mediante sandbox online è diventata una pratica comune tra gli analisti di sicurezza, spesso senza tener conto che i report prodotti dalle sandbox online non sono sufficienti a fornire una risposta certa ed esauriente.

Scenari possibili

Se il report presenta attività network verso il dominio taldeitali.net non è detto che il dominio in questione sia il solo che il malware sia capace di contattare. Idem se il report non fornisce alcuna evidenza relativa alle attività di rete.

Nel primo caso, il malware potrebbe contenere una lista di domini di backup da utilizzare nel caso in cui una delle risorse da contattare non risulti più raggiungibile. Nel secondo caso, avendo individuato l’ambiente in cui è stato eseguito, il malware potrebbe aver cambiato comportamento e di conseguenza il report prodotto dalla sandbox conterrà informazioni parzialmente o totalmente errate.

Proof of concept

sample_anti_malwr

Il sample riportato nello screenshot, è un proof di malware dropper creato in laboratorio che utilizza due indirizzi [righe 5, 6 (principale) e 9, 10 (alternativo)] da cui prelevare il file malware.exe e verso cui inviare le informazioni carpite.

Alla riga 16 viene acquisito uno dei tanti elementi univoci dell’host compromesso che successivamente verrà comparato con le variabili $Anubis e $Malwr [riga 26]. Se il riscontro è positivo, quindi il malware si è reso conto di esser stato eseguito all’interno di una sandbox online da lui nota, non compierà alcuna azione [riga 27] e il report prodotto non conterrà alcuna informazione relativa alle attività network (Malwr.com report).

malwr

Lo stesso sample sottoposto a una sandbox non nota al malware produrrà invece un report incompleto qualora la risorsa all’indirizzo principale [riga 5] risulti raggiungibile. (Reverse.it report).

reverse

In nessuno dei due casi l’analista che si affida esclusivamente al report delle sandbox online avrà evidenza dell’esistenza dell’indirizzo alternativo noto al malware [riga 9].

PEframe 5.0 – Le novità introdotte

Dopo tre mesi di test, dal 10 febbraio 2016 è finalmente disponibile la versione 5.0 di PEframe. Questa nuova versione, di cui il codice è stato quasi interamente riscritto, corregge un bug presente nella 4.2 (e precedenti) e implementa nuove funzionalità (vedi changelog) che consentono all’analista di scavare più in profondità ed ottenere maggiori dettagli tecnici dall’analisi statica del malware.

Nell’attesa di scrivere e rendere pubblica una documentazione completa, provo a sintetizzare i cambiamenti sostanziali apportati alla nuova versione.

A partire dalla 5.0 l’analisi è stata parzialmente estesa anche a malware di tipo ELF

L’output utente è rimasto pressocchè invariato rispetto alle precedenti versioni. È stata introdotta la sezione “Resources info”, migliorata la ricerca di nomi file e url, ed ora è possibile consultare integralmente le informazioni catturate da PEframe utilizzando l’opzione --json.

Tra le feature recentemente introdotte vale la pena citare la ricerca dei mutex objects e il detection rate di VirusTotal. Quest’ultima funzione, che necessita di una API Key configurabile manualmente attraverso il file stringsmatch.json, non carica il malware su VirusTotal ma verifica se l’hash del file è presente su VirusTotal e in caso affermativo restituisce il valore relativo all’ultima sottomissione.

Grazie al file di configurazione (stringsmatch.json) è possibile editare la sezione fuzzing per personalizzare le analisi attraverso il parsing delle stringhe.

Per una rapida analisi è consigliato lanciare peframe con il seguente comando:

peframe filename.exe

Per una visione completa dei dettagli tecnici, o per acquisire i dati completi attraverso sistemi automatici, è doveroso utilizzare la seguente sintassi:

peframe --json filename.exe

Per concludere…

Link: https://github.com/guelfoweb/peframe

HackInBo Security Dinner 2015

hackinbo-security-dinner

Che tradotto in altri termini vuol dire cena acara di fine anno. Sulla scia dell’evento organizzato a Roma lo scorso luglio al quale partecipò un numero ristretto di persone – 25 in tutto tra professionisti e appassionati di IT Security e Digital Forensics -, Mario, il patron di HackInBo, ripropone l’evento sabato 12 dicembre in quel di Bologna.

Questa volta si prevede la partecipazione di un folto numero di acari, circa un centianio quelli attualmente registrati su eventbrite.

L’occasione è giusta per rivedere vecchi amici, conoscerne di nuovi e scambiare due chiacchiere. Il fatto di partecipare agli eventi di Sicurezza pregiudica sempre lo scambio di informazioni tra i partecipanti. Questo incontro è l’occasione giusta per parlarsi in totale tranquillità e per fare due chiacchiere. Ovviamente è aperto a tutti e potete portare chi volete!

Sabato 12 saremo a Bologna per inaugurare questa fantastica iniziativa. Partiremo da Roma in auto (quella di Elio, insieme a Michele e Corrado) e contiamo di arrivare sul posto già nel primo pomeriggio per anticipare le chiacchiere. Visto che probabilmente la serata sarà lunga, abbiamo prenotato un b&b in zona per prendercela comoda e tornare a casa l’indomani mattina.

Se non avete ancora confermato siete sempre in tempo per farlo (QUI). Vi aspettiamo sabato a Bologna.

PS – I vegetariani, Mario non si è dimenticato di voi, avranno tempo fino a domani 11 dicembre per confermare la presenza e far variare il numero di portate.

Decifrare il traffico della botnet Athena HTTP

athena-http

Se state analizzando la botnet Athena HTTP questo script in python che ho postato su gist potrebbe tornarvi utile per decifrare le informazioni scambiate tra il malware e il server di C&C. Individuare il traffico non è difficile, sono tutte richieste HTTP di tipo POST. Decifrare di volta in volta la comunicazione risulta un pelino più rognoso.

L’algoritmo di cifratura utilizzato nello script è valido per la versione 1.0.8 di Athena HTTP e del builder.

Benvenuto LUKS (cryptsetup)

Per anni ho usato TrueCrypt ed ho continuato ad utilizzarlo anche dopo il clamoroso annuncio apparso in cima alla pagina di download “WARNING: Using TrueCrypt is not secure as it may contain unfixed security issues”. Solo di recente ho deciso di migrare i dati custoditi nel contenitore TrueCrypt su un supporto predisposto con cifratura LUKS, soluzione che si presta a molteplici possibilità di utilizzo in base alle esigenze.

Per cifrare i device portatili ho usato Cryptsetup, già presente nella distro Backbox. Dopo aver individuato la partizione da cifrare (fate attenzione a non commettere errori) si procede con la formattazione del supporto.

# cryptsetup luksFormat /dev/sdg1

Alla domanda “Are you sure? (Type uppercase yes):” rispondere con YES e quando richiesta digitare la passphrase .

Se al posto della passphrase si opta per un keyfile la sintassi diventa la seguente:

# cryptsetup luksFormat /dev/sdg1 keyfile

Montiamo la partizione cifrata e assegnamo un’etichetta per individuare la partizione quando verrà mappata. Es. “LUKS001”.

# cryptsetup luksOpen /dev/sdg1 LUKS001

Vi verrà chiesto di digitare la passphrase.

Ora ci tocca formattare la partizione appena montata. Per esigenze lavorative (leggasi compatibilità con sistemi Windows) ho scelto FAT32.

# mkfs.vfat /dev/mapper/LUKS001 -n LUKS001

Per ext4 e ntfs la sintassi è la seguente:

# mkfs.ext4 /dev/mapper/LUKS001 -L LUKS001
# mkfs.ntfs /dev/mapper/LUKS001 -L LUKS001

Fatto ciò abbiamo concluso, chiudiamo la nostra partizione (LUKS001) e stacchiamo il device dalla porta USB.

# cryptsetup luksClose LUKS001

Quando lo ricollegheremo, il sistema chiederà di digitare la passphrase per montare il supporto. Comodo.

luks

A proposito di comodità, una feature davvero interessante è la possibilità di utilizzare la tecnica di Key escrow per generare una seconda chiave (sono disponibili 8 slot) con gli stessi privilegi della prima.

# cryptsetup luksAddKey /dev/sdg1

Vi verrà chiesto di digitare la prima passphrase e immediatamente dopo di configurarne una seconda.

 

3 Banche Italiane nella Webinject dei Malware Bancari

Questa volta non si tratta di ZeuS, anche se la sintassi utilizzata per scrivere la webinject è simile, se non identica, ma di un recente malware bancario (Tbag/pykbot) che veicola insieme a Pony.

La webinject che per momoria storica ho postato su pastebin è stata configurata per intercettare e modificare le form di tre banche italiane:

  1. https://www.csebanking.it
  2. https://banking.credem.it
  3. https://www.chebanca.it

I dettagli qui: http://pastebin.com/HVRpSeY1

MS15-034 Exploit al Mercato Nero

L’exploit per la vulnerabilità MS15-034 con esecuzione di codice remoto, per la quale Microsoft ha rilasciato un aggiornamento martedì 14 aprile, è in vendita sul mercato nero del deep web da mercoledì 15 al prezzo (in euro) di 106.546€. La cifra è riportata in Bitcoin.

therealdeal-1

Nella giornata di ieri con una nota di accorgimento il prezzo scende a meno di 40.000€.

therealdeal-2

Oggi, molto più in superficie, su Inj3ct0r è in vendita per poco più di 11.000€.

inj3ct0r