Qualche giorno addietro, nella lista riservata agli iscritti IISFA del capitolo italiano, è stato segnalato un sito dove sono a disposizione “ready to deploy” dei kit per il phishing per un nutrito elenco di siti di home banking, oltre ai soliti eBay e PayPal.

Passato il primo momento di sorpresa per tanta tracotanza (arrivare a mettere in vendita dei kit per perfetto phisher, il massimo!), la curiosità prende il sopravvento. Lo so, prima o poi mi metterò nei guai per questo…

La domanda che mi frullava per la testa è stata: cosa ci guadagna il tizio? Perché i kit sono liberamente scaricabili, in pacchetti compressi con il formato RAR, senza alcuna protezione. Quindi che razza di pagamento pensa di ottenere?

Lo confesso, ho scaricato un paio di kit, ed ho iniziato ad analizzare il codice, naturalmente in PHP.

E la sorpresa è doppia. Sì, perché c’è molto di più di un kit per il phishing, nei pacchetti. Vado a spiegarmi. Nella più classica modalità da truffatore esperto di umane debolezze, il kit di phishing ha un doppio uso, il secondo dei quali è a danno anche di chi dovesse sfruttare il kit per fare phishing.

Nei file costituenti il kit ve ne è uno che si incarica di spedire al phisher i dati inseriti dall’ignaro navigante che cada nella trappola. Il metodo scelto è l’e-mail, a differenza di altri che semplicemente scrivono i dati su un file locale al server che poi il nostro amico phisher preleverà dopo qualche giorno. In evidenza c’è una riga in PHP dove si intuisce al volo che è il posto dove inserire il proprio indirizzo di posta elettronica per ricevere i dati.

Il file in oggetto è a prima vista molto semplice, ed è costituito da una serie di istruzioni di concatenazione di stringa, per comporre il messaggio contenente user ID, password, numeri di carta di credito, indirizzi, ecc. Guardando meglio il codice si nota che è inutilmente complicato, e che le istruzioni di concatenazione sono assurdamente frammentate. Trattandosi di codice scritto da un Grande Hacker, è abbastanza nella norma, ma tutto sta nel non lasciarsi fuorviare. Guardando il codice e cercando di capire cosa faccia, mi sono reso conto che in una variabile c’era una vocale “e” al posto di una “a”. Le righe erano alternate e componevano DUE messaggi differenti, uno dei quali in realtà era un indirizzo di posta elettronica molto poco intuitivo. Al termine il messaggio composto viene inviato a tre differenti indirizzi di posta elettronica: il primo è quello nella variabile bene in vista, pronto per essere sostituito dall’indirizzo del phisher-wannabe. Gli altri due indirizzi sono presi da due variabili, una è quella inframmezzata alla composizione del messaggio, dell’altra non vi è traccia nel file.

Ho tentato una ricerca in tutti i file del pacchetto di “$Var3″ (il nome della variabile è inventato, è inutile cercarlo con Google…), senza fortuna. Allora ho tentato il jolly: una ricerca per la funzione PHP base64_decode. Tana!

In uno dei form della pagina di phishing c’è un campo input di tipo hidden il cui nome è “Var3″ ed il cui valore è l’output di una chiamata alla funzione base64_decode, con una stringa che, a questo punto l’avrete capito, si risolve in un altro indirizzo di posta elettronica, diverso da tutti gli altri.

In definitiva, se Ernesto (nome inventato), convinto di fare una gran birbonata, installa il kit del perfetto phisher su un sito, i dati li riceverà anche chi ha preparato il kit. E lo scopo è proprio questo, visto lo sforzo che c’è nel codice di nascondere ed offuscare proprio quei due indirizzi di posta aggiuntivi. Se Ernesto venisse scoperto, cosa abbastanza verosimile, pagherebbe dalla A alla Z, mentre il nostro furbacchione si godrebbe i risultati della birbonata di Ernesto, indisturbato. Ricordiamo che avrebbe a sua disposizione tutti i dati che ha in mano Ernesto, inviatigli in “copia conforme”, e che Ernesto probabilmente attenderebbe di averne un po’ prima di iniziare ad usarli, mentre il creatore del kit inizierà ad usarli da subito, prima che Ernesto sospetti qualcosa o che venga scoperto, come quasi certamente sarà.

Tutto ciò, naturalmente, a meno che non si trovi come avversario un investigatore un po’ più smaliziato. A questo punto non avrebbe vita troppo facile, ma per prima cosa sarebbe necessario che l’investigatore si ponga la domanda, si faccia venire il dubbio.

Altrimenti, la cosa potrebbe venir fuori solo al momento dell’interrogatorio di Ernesto.

Ecco, immaginate. Sala per interrogatori, due agenti vestiti di scuro, uno in piedi alle spalle di Ernesto, l’altro seduto dall’altra parte del tavolo:
- Chi ti ha aiutato a creare il codice per il phishing?
- L’ho fatto io! (Ernesto, credendo di fare più impressione, tenta di prendersi il merito)
- Naaahhh. Non ne sei capace. Abbiamo visto nel tuo computer. Il codice che sviluppi non gli si avvicina neanche. Abbiamo curiosato nella cache del tuo browser e sappiamo dove l’hai preso.

Chi è meno credibile: Ernesto che si vanta di aver sviluppato del codice, cosa di cui non è neanche lontanamente capace, o l’investigatore smaliziato al punto da capire che il livello di competenza di Ernesto è insufficiente ed è anche lui vittima di qualcun altro più furbo?

Fate voi. Al solito, non mi rimane che ricordare:
Trust no one