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

La risposta di Anonymous al Terrorismo Islamico

Già la sera dell’attacco alla sede del giornale satirico Charlie Hebdo, un gruppo di hacktivisti facenti parte del movimento Anonymous ha lanciato su scala mondiale l’operazione Charlie Hedbo diffusa online attraverso l’hashtag #OpCharlieHebdo. Nella giornata di ieri un gruppo di Anonymous francesi ha divulgato su pastebin una lista di account, molti dei quali rappresentano un punto di riferimento per un folto numero di follower, che operano in favore della jihad e sostengono l’attacco jihadista attraverso i social network twitter (in particolare) e facebook. Obiettivo dell’iniziativa è quello di sensibilizzare gli utenti a denunciare la presenza online di questi account potenzialmente pericolosi e di ottenere la sospensione.

Lista dei potenziali terroristi presenti su twitter: http://pastebin.com/Qu7udRGH

Altra lista di potenziali terroristi, molti account sono stati già sospesi: http://pastebin.com/nEMhTZCW

Tango down siti jihad: http://pastebin.com/Kf626EQj

Anonymous Italia ha ufficialmente aderito all’iniziativa e ricordato attraverso un video con voce robotica che “Attaccare la  libertà di espressione è attaccare Anonymous”.

È la risposta di Anonymous al terrorismo islamico, è solo l’inizio ma si prevede un lungo seguito.

Image File Execution Options

“Image File Execution Options” è una chiave di registro annidata sotto “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion” che stando alla documentazione Microsoft può essere configurata per lanciare un debug all’avvio di una qualsiasi applicazione. In pratica è sufficiente creare una sottochiave con il nome dell’applicazione di cui si desidera eseguire il debug, assegnare il valore stringa “Debugger” e associare come valore data il percorso completo al debug (un altro eseguibile) che si vuole utilizzare.

Ai tempi, probabilmente, Microsoft non tenne in considerazione il fatto che qualcuno avrebbe potuto sfruttare questa feature per scopi meno nobili. Già nel 2007 gli sviluppatori del malware Gromozon anzichè utilizzare la classica chiave di registro “Run” sfruttarono questa tecnica associando il path del malware all’eseguibile explorer.exe per assicurarsi che venisse lanciato ad ogni riavvio del sistema.

In passato ho notato questo genere di attività dai log di Process Monitor ma non ho mai attenzionato a fondo la questione. Di recente mi capitato di analizzare un malware che fa uso improprio di questa feature e cercando in rete ho trovato un vecchio documento che descrive bene i metodi alternativi al corretto utilizzo della chiave di registro “Image File Execution Options”. Dateci un’occhiata, ne vale la pena.

Cyber*

Leggendo alcuni articoli su cyber(security|war|warfare|intelligence|defense) pubblicati sul web da testate di spessore viene da pensare che qualcosa in tal senso si stia muovendo. Tutto lascia presagire che vi sia una (lenta) presa di coscienza da parte degli organi preposti alla gestione della sicurezza nazionale e che lentamente ci si stia preparando per fronteggiare i numerosi cyber attacchi provenienti da ogni parte del mondo. (Per cyber attacchi in questo contesto si fa particolare riferimento a malware di stato e compromissioni di server che reggono infrastrutture critiche).

I target sono già censiti, e non è una novità dire che buona parte di loro è sotto assedio. Il business delle armi digitali proprio in questi ultimi anni ha delineato un mercato fiorente e in continua evoluzione, idem per le strategie di attacco atte a garantire maggiore probabilità di successo. Oggi si passa anche per il mobile e i social network.

Quello che si sta cercando di fare, in realtà, è ufficializzare la presenza di una “forza armata” in grado di intraprendere un’azione di guerra (se così la vogliamo definire, spesso propagandata come iniziativa di difesa), già in corso da anni, basata su attacchi e contrattacchi informatici che mirano a compromettere o mettere del tutto fuori uso target sensibili e a carpire informazioni riservate dai Paesi avversari.

Ma generalmente per esprimere questo concetto vengono usate parole differenti, ecco qualche esempio: La Nato si allarga alla cyberguerra: “Attacco informatico come invasione armata” oppure Israel to Create Cyber Security Authority after Alleged Iranian Hacker Attack o ancora Tactical Cyber: How to Move Forward.

Malware PE Firmati Digitalmente

Da quando Davide Barbato mi ha sottoposto la necessità di rilevare la presenza di firma digitale nei malware PE ho cominciato a interessarmi al problema. In passato si sono verificati casi in cui qualche malware è stato distribuito con firma digitale, Stuxnet nel 2010 fu forse il primo caso serio, ma oggi questa pratica pare diventata abbastanza comune.

In merito alla necessità appena descritta non esiste una documentazione ufficiale, qualcuno per fortuna ha già affrontato la questione per vie indirette e fornito buoni spunti per comprendere meglio la struttura di un PE e da qui ottenere le giuste specifiche per individuare l’eventuale presenza di una Digital Signature all’interno di un file PE.

Stando a quanto riportato da Peter Gutmann nel 2000, uno dei campi dell’ OptionalHeader, quello relativo all’indice delle directory che contiene i puntatori ai dati nella rispettiva sezione, presenta una directory (non documentata) denominata IMAGE_DIRECTORY_ENTRY_SECURITY. Quando un PE è firmato digitalmente il VirtualAddress e il Size relativi a questa entry directory forniscono l’indirizzo di partenza della firma all’interno del PE (solitamente posizionato alla fine) e le dimensioni del blocco di codice con valori diversi da zero.

Analizzando un file PE firmato,  come esempio è stato scelto Procmon.exe, dalle proprietà del file possiamo osservare il tab “Digital Signatures”:

procmon-digital-sign

I valori che otteniamo richiamando la entry directory IMAGE_DIRECTORY_ENTRY_SECURITY sono i seguenti:

  • IMAGE_DIRECTORY_ENTRY_SECURITY.VirtualAddress = 25A400
  • IMAGE_DIRECTORY_ENTRY_SECURITY.Size = 6776

Conoscendo entrambi i valori è possibile individuare la posizione esatta della Digital Signature a partire dall’indirizzo fornito dal VirtualAddress (25A400) fino al termine del blocco di byte pari al valore ottenuto da Size (6676).

procmon-hex.sign

In fede a queste informazioni,  ho incluso in PEframe (rilascerò a giorni la nuova versione) un check che riguarda proprio la Digital Signature e una sezione che ne mostra i dettagli (VA, Size, MD5 e SHA-1) se il check è andato a buon fine. Ecco un esempio.

peframe-procmon-sign

Per questioni di praticità PEframe si limiterà a informare l’analista che il malware analizzato è firmato digitalmente e restituirà le informazioni utili a identificare univocamente il blocco di codice contenuto nel malware (PE). Per l’estrazione e la verifica della firma è sempre possibile ricorrere a disitool di Didier Stevens o altri strumenti come SignTool rilasciato da Microsoft.