Inviare Email con Netcat

L’invio di posta elettronica su Internet si effettua tramite un protocollo chiamato SMTP, ovvero Simple Mail Transfert Protocol.
L’SMTP è un protocollo testuale: si inviano comandi semplicemente collegandosi al server e digitandoli.

Le azioni che andremo a vedere sono le stesse azioni che effettua automaticamente un qualsiasi client di posta elettronica come Outlook o Thunderbird. Noi lo faremo manualmente, con  l’ausilio di netcat.

Per inviare un’email manualmente occorre seguire alcuni passi:

  1. Trovare il server SMTP del destinatario
  2. Collegarsi al server
  3. Invia  il comando di riconoscimento HELO
  4. Specificare l’indirizzo del mittente
  5. Specificare l’indirizzo del destinatario
  6. Digitare il corpo dell’email
  7. Uscire dalla sessione

Vediamo nel dettaglio.

1. Trovare il server SMTP del destinatario

Spesso il server SMTP di un dominio è mail.nomedominio.it o smtp.nomedominio.com. Per andare sul sicuro si usi il metodo che ho descritto in questo articolo per trovare il mail server di un dominio.

Si potrebbe utilizzare anche un qualsiasi server smtp open relay. Questi server, utilizzati dagli spammer, sono come dei proxy: permettono di inviare email a qualsiasi dominio.
Invece i server smtp di un dominio specifico inviano solo email destinate a (o provenienti da) utenti del dominio stesso.
Se per esempio volessi inviare un’email ad info@pillolhacking.net potrei usare un qualsiasi server smtp open relay o il server smtp del dominio pillolhacking.net.

2. Collegarsi al server

Una volta trovato il server entra in scena netcat. Per collegarsi si usa il seguente comando:

nc mail.pillolhacking.net -vv 25

dove mail.pillolhacking.net è l’indirizzo del server del dominio pillolhacking.net e 25 è la porta Tcp standard del protocollo smtp. In realtà mail.pillolhacking.net è un alias per
m-04.th.seeweb.it.

3. Invia  il comando di riconoscimento HELO

Se tutto è andato bene appare la scritta:
m-04.th.seeweb.it [217.64.195.227] 25 (smtp) open

e noi ci presentiamo al server con il comando HELO. Il comando HELO necessita di un parametro. In genere i client mettono il nome del computer. Si può mettere qualsiasi stringa. In questo esempio metto il mio nick name:

HELO angelor

il server risponde:

220 m-04.th.seeweb.it ESMTP Sendmail 8.13.4/8.13.4/Debian-3sarge3
250 m-04.th.seeweb.it Hello [xxx.xxx.xxx.xxx], pleased to meet you

Da notare che viene presentato il tipo di software utilizzato (Sendmail), la versione (8.13.4) e il sistema operativo (Debian): informazioni preziose se volessimo pianificare un attacco.
SMTP è un protocollo gentile, il server mi da il benvenuto: pleased to meet you.

4. Specificare l’indirizzo del mittente

Entriamo nel vivo. Bisogna specificare l’indirizzo del mittente. Lo facciamo con il comando MAIL FROM:

MAIL FROM: angelo@pillolhacking.net

il server risponde:

250 2.1.0 angelo@pillolhacking.net… Sender ok

Naturalmente nessuno ci obbliga a mettere il nostro vero indirizzo email, ma è anche vero che nell’email inviata appararirà il nostro vero indirizzo Ip: chi volesse fare scherzi è avvisato.

5. Specificare l’indirizzo del destinatario

Ora specifichiamo l’indirizzo email del destinatario con il comando RCPT TO:

RCPT TO: info@pillolhacking.net
250 2.1.5 info@pillolhacking.net… Recipient ok

Anche in questo caso tutto bene. Se avessi fornito un indirizzo non appartenente al dominio pillolhacking.net l’email sarebbe stata rifiutata.

6. Digitare il corpo dell’email

Per scrivere il corpo dell’email bisogna digitare il comando DATA, Tutto quello che viene digitato dopo questo comando apparirà nell’email una volta ricevuta dal destinatario. In pratica ci troviamo in una modalità editor, modalità dalla quale si esce digitando un punti (.) su di una riga vuota:

DATA
354 Enter mail, end with “.” on a line by itself

Cao, questa email l’ho scritta con netcat!
.
250 2.0.0 x1ADG5zo125562 Message accepted for delivery

Una volta digitato il punto (e premuto return) l’email viene messa in coda e inviata appena possibile (nel giro di pochi secondi in genere).

7. Uscire dalla sessione

Non rimane che congedarsi dal server concludendo la sessione. Basta digitare il comando QUIT:
QUIT

221 2.0.0 m-04.th.seeweb.it closing connection

Provate con un indirizzo a vostra disposizione. Nel giro di pochi secondi vi vedrete recapitare l’email.

Questo articolo fa parte della serie “Le 7 Vite di Netcat“. Potrai trovare altre informazioni su Netcat negli altri articoli della serie:

  • Inviare email con Netcat
6 Comments
  1. Pingback: Le Sette Vite di Netcat | PillolHacking.Net

  2. Pingback: Leggere gli header HTTP e le pagine Web con Netcat | PillolHacking.Net

  3. Pingback: Leggere la posta elettronica con Netcat | PillolHacking.Net

  4. Pingback: Trasferire File con Netcat | PillolHacking.Net

  5. Pingback: Netcat Come Scanner | PillolHacking.Net

  6. Ogni server che ho provato mi dava un errore quando scrivevo RCPT TO: perchè prima devo autenticarmi. Si può oltrepassare questo ostacolo? Sennò, come ci si autentica?
    Molte grazie

Comments are closed.