Il titolo di questo mini-howto suona un pò come un POC (Proof of Concept) ed infatti è una tipica mini-guida scolastica; nel senso che quando si è capito come sia possibile spedirsi una e-mail falsa (intesa come falso mittente) si capisce come mai arrivino sulla propria casella postale tutte quelle strane e-mail provenienti da Banche, Poste, Microsoft, Norton Antivirus e altre aziende e gruppi pubblicitari.
Tramite la procedura che vedremo a breve, infatti, chiunque può scrivere una mail a chiunque spacciandosi per chiunque. Questa tecnica (detta anche fake mail) può essere utilizzata per spedire messaggi anonimi, per fare uno scherzo (di cattivo gusto) a qualcuno, per indurre qualcuno a visitare un sito civetta, per rubare delle credenziali di accesso, per trafugare informazioni, effettuare phishing, Social engineering, ecc. L’unico limite è solo la propria fantasia.
Tengo a precisare che quanto esposto di seguito per il nostro fine, è stato scritto a scopo puramente didattico.
1. Il Programma TELNET
La voce telnet su http://it.wikipedia.org/wiki/Telnet riporta la seguente definizione:
“Telnet è un protocollo di rete utilizzato su Internet. I documenti IETF STD 8 (RFC 854 e RFC 855) dicono: L’obiettivo del protocollo TELNET è fornire un supporto per le comunicazioni sufficientemente generalizzato, bidirezionale ed orientato ai byte (otto bit). È solitamente utilizzato per fornire all’utente sessioni di login remoto di tipo linea di comando tra host su internet. Per estensione, telnet è anche il nome di un programma che un utente può usare per avviare una sessione telnet ad un host remoto; il programma telnet implementa la parte client del protocollo. I client telnet sono stati disponibili sulla maggior parte dei sistemi Unix per parecchi anni e sono disponibili per qualsiasi tipo di computer. In inglese ‘to telnet’ è usato come verbo e significa stabilire una connessione telnet.”
2. Telnet e la posta elettronica
Se tramite telnet si può stabilire una connessione con un host remoto, possiamo anche stabilire una sessione con il nostro server di posta in uscita SMTP, in realtà possiamo contattare qualsiasi server SMTP. Ricordo che quando si scrive una e-mail si utilizza il protocollo SMTP contattando un server SMTP, mentre quando si riceve una e-mail si utilizza il protocollo POP3 o IMAP contattando un server POP3 o IMAP. Quindi non è strano il fatto che possa contattare direttamente un server SMTP diverso dal mio perchè il lavoro di un server SMTP è quello di essere contattato per spedire un messaggio di posta elettronica a qualcuno. Utilizzando la porta 25 del server SMTP, l’accesso avviene senza un login con credenziali.
Una volta contattato un server SMTP tramite una sessione Telnet, possiamo scrivere un e-mail a chiunque spacciandoci per chiunque. Nell’esempio che segue scriverò una e-mail ad un mio indirizzo, spacciandomi per Bill Gate (cognome utilizzato volutamente diverso….).
3. Esempio
Dopo aver selezionato un terminale su linux, si aprirà una finestra dove scriverò il comando:
telnet out.alice.it 25
chiedendo di connettere, senza effettuare alcun login, il server SMTP di alice.it che risponde sulla porta 25.
Se il server risponde ready come in figura significa che sono in sessione con la macchina remota di alice.it che fornisce il servizio SMTP. Ovviamente alice.it non ha una sola macchina che eroga questo servizio e quindi mi risponderà quella che è disponibile in quel momento.
A questo punto rispondo al server spacciandomi per il server di microsoft.com, con il comando:
ehlo microsoft.com
e il server mi risponderà con un OK come mostrato in figura.
NOTA IMPORTANTE: in una sessione TELNET se si sbaglia a digitare qualcosa sulla riga di comando non si può correggere, si deve chiudere la sessione e ricominciare tutto da capo.
Ora inizio a scrivere l’e-mail, con il comando:
MAIL FROM:<b.gate@microsoft.com> e tasto Invio
il server risponde OK
continuo inserendo il destinatario, con il comando:
RCPT TO:<paolo@paolettopn.it> e tasto Invio
il server risponde con un 250 che equivale a OK
continuo con il comando:
DATA e tasto Invio
il server risponde con 354 Start mail input; end with <CRLF>.<CRLF>
continuo con il comando:
TO: Paolo Garbin e tasto Invio
FROM: b.gate e tasto Invio
Subject: Greetings e tasto Invio
lascio una riga vuota con il tasto Invio
scrivo il messaggio vero e proprio
termino inserendo un solo punto a capo e con un Invio
Ricevo il messaggio queued mail for delivery che significa che il messaggio di posta è stato messo in coda per la spedizione
Chiudo la sessione TELNET con il comando quit e tasto Invio
4. Risultato
Ecco il risultato! Sul programma di posta (mail client) troverò un nuovo messaggio di posta in arrivo, non letto, proveniente da b.gate con oggetto Greetings.
Aprendo il messaggio di posta leggo quanto segue (invece che a.scatolini troverete il Vs. indirizzo email e il vostro nome):
Sembra che sia del tutto normale, ma anche se volessimo indagare andando a vedere le proprietà del messaggio:
Vedo che il mittente è b.gate@microsoft.com, il resto sembra incomprensibile ma una traccia del misfatto è stata comunque lasciata, in questo caso. Se ce ne fosse il bisogno, la Polizia postale potrebbe facilmente risalire all’autore (cioè a me stesso) andando a controllare l’indirizzo IP unico utilizzato in rete Internet in una certa data e ora di un dato giorno, provando che l’IP era stato assegnato all’utente che ha scritto la falsa e-mail (cioè me).
Infatti nella 19° riga c’è il mio indirizzo IP <87.18.228.87> che utilizzavo nell’ora e data riportata nella 21° riga <Sun. 16 Sep 2007 18:04:49 +0200>.
5. Il trucco degli spammer
Ma allora, ci si domanderà, perché e come continuano a mandarmi tutte queste false e-mail, se poi si ha la possibilità di rintracciare il mittente tramite l’indirizzo IP utilizzato?
Il trucco c’è ed è abbastanza semplice spiegarlo. Prima di inviare delle valanghe di SPAM e/o false e-mail, l’autore si rende anonimo sulla rete in diversi modi.
Il modo più semplice per rendersi anonimi è quello di passare attraverso una serie di Proxy Server che come unica funzione hanno quella di rendere anonimi gli utenti e i loro servers, utilizzando gli indirizzi IP di diversi sistemi informatici posti in posti remoti sul territorio estero. Riuscire a determinare tutti i salti fatti da quella mail è praticamente impossibile.
Il documento originale da cui ho preso spunto, è stato scritto per Windows XP e rilasciato con licenza CopyLeft da Augusto Scatolini, settembre 2007 – ver. 1.0
Scopri di più da Il mondo di Paolettopn (IV3BVK - K1BVK)
Abbonati per ricevere gli ultimi articoli inviati alla tua e-mail.
Consiglio di leggere quanto descritto su:
https://it.wikipedia.org/wiki/Sender_Policy_Framework
Alessandro
Grazie Ale, per il tuo supporto all’argomento.
Paolo