mercoledì 22 gennaio 2014

Phishing: andiamo a pesca!

Ogni tanto mi arrivano email minatorie come questa:

ULTIMI GIORNI DISPONIBILI: dal 21 gennaio 2014 potrai operare online solo
con il nuovo sistema Sicurezza web Postepay.

Gentile Cliente,

Come anticipato in precedenti comunicazioni, il 20 gennaio scorso abbiamo
completato il rinnovamento dei sistemi di sicurezza per eseguire le
operazioni online di ricarica Postepay.

 Tuttavia, avendo rilevato che non hai ancora attivato il nuovo sistema
Sicurezza web Postepay, per evitare di sospenderti il servizio abbiamo
deciso: 
-in via del tutto eccezionale 
-di mantenere ancora attivo il precedente sistema basato sull'utilizzo dei
soli dati della Postepay (numero carta, scadenza, Cvv2) fino al 28 gennaio
2014.

 Dopo il 28 gennaio p.v. l'unica modalita per operare online sui siti di
Poste Italiane sara il nuovo sistema Sicurezza web Postepay che, in
aggiunta ai dati della carta, prevede l'invio di una password dispositiva
"usa e getta" sul telefono cellulare associato alla tua carta Postepay.

Per attivare il sistema Sicurezza web Postepay devi:
-scaricare l'allegato, aprirlo nel browser e seguire i passaggi richiesti;
 -successivamente, abilitare la tua carta al nuovo sistema sui siti di
Poste Italiane, accedendo alla sezione "Sicurezza web" nel menu dedicato
ai servizi online Postepay.

Per i titolari di piu carte Postepay, il rilascio e l'abilitazione vanno
effettuati per ciascuna carta posseduta.

Grazie per aver scelto Postepay
Distinti Saluti,
BancoPosta © Poste Italiane 2014

Se escludiamo la totale assenza di lettere accentate l'italiano è corretto ed è palese che non si tratta di un testo scritto da un pessimo traduttore automatico. Il server di posta del mio provider ha catalogato questa email come SPAM, vediamo un po' perché...

Prima di tutto ha un allegato in formato HTML, poi NON proviene da Poste Italiane ed infine paiono molto interessati ai dati della mia carta di credito Postepay.

Come faccio a dire che non viene da Poste Italiane? Mi è bastato guardare due cose: qual è il Mail Exchanger (MX) per postepay.it e qual è il server da cui è partita questa email. Per il primo basta usare il tool dig:

$dig @62.241.4.240 MX postepay.it

; <<>> DiG 9.9.4-P1 <<>> @62.241.4.240 MX postepay.it
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27375
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 4
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;postepay.it.                   IN      MX

;; ANSWER SECTION:
postepay.it.            7200    IN      MX      20 relay-bp.poste.it.

;; AUTHORITY SECTION:
postepay.it.            7200    IN      NS      dns2.poste.it.
postepay.it.            7200    IN      NS      dns.poste.it.

;; ADDITIONAL SECTION:
relay-bp.poste.it.      86400   IN      A       62.241.5.144
dns.poste.it.           86400   IN      A       62.241.4.240
dns2.poste.it.          86400   IN      A       62.241.8.240

;; Query time: 69 msec
;; SERVER: 62.241.4.240#53(62.241.4.240)
;; WHEN: mar gen 21 22:18:21 CET 2014
;; MSG SIZE  rcvd: 156

Come si può intuire dig consente di effettuare richieste direttamente ai server DNS e di vedere la risposta: in questo caso la richiesta è stata fatta direttamente al server dns delle Poste (dns.poste.it) tramite l'uso della clausola "@62.241.4.240". Avremmo potuto chiedere ad un qualsiasi altro dns impostato per la ricerca ricorsiva, ma così siamo più sicuri di aver centrato il bersaglio.

Per sapere l'IP del mittente mi è bastato guardare il sorgente della email stessa (la procedura per leggerlo cambia a seconda del client usato). I campi Received sono impilati (stacked), il che significa che il primo Received che leggete è stato inserito dall'ULTIMO server che ha ricevuto questa email mentre l'ultimo campo Received è stato inserito dal PRIMO server che l'ha ricevuta (ed è anche quello che ci interessa per scoprire chi l'ha mandata):

Received: from unknown (HELO postepay.it) (test@bizmro.com@151.1.70.175)
by mailhosting3 with ESMTPA; 20 Jan 2014 14:17:43 -0000

A casa mia 151.1.70.175 è diverso da 62.241.5.144 e spero che lo sia anche a casa vostra...

A questo punto mi sono incuriosito, ho scaricato l'allegato e l'ho aperto con un editor di testo. Si trattava di un vero e proprio documento HTML 4 che nell'intestazione aveva la riga:

<base href="http://84.246.226.233/files/">

E qui le cose si fanno interessanti... Infatti un whois ci rivela che si tratta di un IP francese:

$ whois 84.246.226.233
% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf

% Note: this output has been filtered.
%       To receive output for a database update, use the "-B" flag.

% Information related to '84.246.225.0 - 84.246.226.255'

% Abuse contact for '84.246.225.0 - 84.246.226.255' is 'pb@netissime.com'

inetnum:        84.246.225.0 - 84.246.226.255
netname:        NETWORK2
descr:          netissime
admin-c:        EMN7-RIPE
country:        FR
admin-c:        BH1182-RIPE
tech-c:         BH1182-RIPE
status:         ASSIGNED PA
mnt-by:         ELB-MNT
mnt-lower:      ELB-MNT
mnt-routes:     ELB-MNT
source:         RIPE # Filtered

role:           ELB MULTIMEDIA NETWORK
address:        17 RUE JEAN BOUREGY VILLEURBANNE FRANCE
admin-c:        Bh1182-RIPE
tech-c:         Bh1182-RIPE
nic-hdl:        EMN7-RIPE
source:         RIPE # Filtered
remarks:        ***************************************************
remarks:        In case of abuse or spam, please use :
remarks:        Web : http://www.netissime.com
remarks:        Email:  abuse@netissime.com
remarks:        ***************************************************
abuse-mailbox:  abuse@netissime.com
mnt-by:         elb-mnt

person:         Boulahbel  hichem
address:        17 rue jean bourgey Villeurbanne 69100
phone:          +33437430037
nic-hdl:        Bh1182-RIPE
source:         RIPE # Filtered

% Information related to '84.246.224.0/21AS34274'

route:          84.246.224.0/21
descr:          Routage ELB MULTIMEDIA HOSTING
origin:         AS34274
mnt-by:         elb-mnt
source:         RIPE # Filtered

% This query was served by the RIPE Database Query Service version 1.70.1
(WHOIS2)

Incuriosito ho provato a collegarmi al sito usando lynx:

                                              Default Parallels Plesk Panel Page
Parallels Plesk Panel

Web Server's Default Page

   This page is generated by Parallels Plesk Panel, the leading hosting
   automation software. You see this page because there is no Web site at
   this address.

   You can do the following:
     * Create domains and set up Web hosting using Parallels Plesk Panel.

   For more information please contact .

Other Parallels Solutions

   Parallels Desktop for Mac

Parallels Desktop® for Mac

   Lets you run Windows on any Intel-based Mac without rebooting! The best
   solution for running Windows, Linux, or any of many other operating
   systems alongside OS X.
   Learn More!
   Parallels Workstation

Parallels® Workstation

   Lets you run Windows, Linux and more side-by-side on a single PC
   without rebooting. The most powerful, stable, easiest-to-use,
   cost-effective desktop virtual PC solution available today.
   Learn More!
     * Parallels Virtuozzo Containers - the most efficient server
       virtualization technology.
     * Parallels Automation - hosting, SaaS, and cloud computing
       automation solution.


Quindi è un VPS e questa è la homepage di default... E la directory "files"? Ecco cosa risponde il web server a chi cerca di accedervi:

                                                                   403 Forbidden
                                   Forbidden

   You don't have permission to access /files/ on this server.
     __________________________________________________________________


    Apache/2.2.9 (Fedora) Server at 84.246.226.233 Port 80


Qualcuno si è ricordato di settare il file .htaccess oppure Apache è stato configurato globalmente per non consentire l'indexing delle directory. Peccato che si sia dimenticato di cambiare la pagina di errore di default rivelandoci che distro usa per fare phishing (a meno che non sia ESTREMAMENTE furbo e non abbia usato la pagina di default di Fedora per sviare le indagini).

Vediamo un pochino cos'altro c'è in quell'allegato HTML:

<form name="neon" method="POST" onsubmit="return gopro()"
action="done.php">

Ok, "neon", vediamo cosa succede se faccio una richiesta vuota a done.php:

$ nc 84.246.226.233 80
GET /files/done.php HTTP/1.1
Host: 84.246.226.233

HTTP/1.1 302 Found
Date: Tue, 21 Jan 2014 13:04:16 GMT
Server: Apache/2.2.9 (Fedora)
X-Powered-By: PHP/5.2.6
Set-Cookie: PHPSESSID=rr7in03smvjrm0bchshqq51v86; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
pre-check=0
Pragma: no-cache
Location: http://www.postepay.it/
Content-Length: 0
Connection: close
Content-Type: text/html

Questa volta non ho usato lynx ma ho fatto la richiesta direttamente tramite nc (ovvero netcat). Netcat è un programma molto utile installato di default in Debian e disponibile come pacchetto in moltissime distribuzioni che consente di inviare direttamente dati attraverso TCP o UDP. In questo caso io (essere umano) ho finto di essere un browser e ho chiesto al server web di darmi il file corrispondente all'URL "/files/done.php". La risposta del server è stata un redirect al sito postepay.it...

Tipico del "pescatore": quando ha ottenuto i dati che cercava rimanda sempre l'utente nel sito legittimo. Peccato che abbia commesso alcuni errori molto grossolani...

In primo luogo un utente medio che cade vittima del phishing non sa scaricare un allegato ed eseguirlo, molto meglio usare l'HTML nelle email e celare il link alla pagina con il form da compilare anziché allegarlo alla email.

In secondo luogo i campi Received si possono forgiare: avrebbero potuto creare alcuni campi fasulli e celare così la reale origine dell'email (un IP italiano, molto probabilmente assegnato dinamicamente).

Morale della favola: quando una email puzza molto probabilmente c'è del marcio sotto, ma almeno adesso avete qualche strumento in più per controllare.