Tutorial
Guida
Telnet 1
|
|
Guida
Telnet 2
|
|
Guida
Telnet 3
|
|
Guida
Telnet 4
|
|
Telnet
e Smtp
|
|
TELNET
E SMTP
~~~~~~~~~~~~~
Supponiamo di voler, per un motivo qualsiasi, inviare
una e-mail a qualcuno facendo sembrare che essa
sia stata mandata da qualcun altro. Il
metodo piu` semplice e` utilizzare uno dei siti
per hackers che offrono la possibilita` di inviare
FakeMail (basta cercare questa parola in un motore
di ricerca su Internet, ad esempio www.yahoo.com
ha una sezione apposita per FakeMail e posta anonima).
Ma per ora tralasciamo i siti e vediamo in pratica
come funziona la tecnica delle FakeMail (che tra
l'altro e` applicabile, in modo diverso, anche alle
news). Il motivo per cui la studieremo e` che provandone
il funzionamento, ne approfitteremo per imparare
ad utilizzare Telnet e soprattutto SMTP, ovvero
il servizio della posta in uscita. Questa e` infatti
la base per capire come funzionano molte delle tecniche
piu` utilizzate, e vi permettera`, quando sarete
padroni della materia, di implementarne di nuove.
Iniziamo dunque imparando ad usare Telnet. Usandolo
per collegarvi a un sito semplicemente inserendo
un host name, vi collegherete al servizio Telnet.
Ma abbiamo detto che non e` questo il nostro obiettivo.
A noi interessa il servizio SMTP. Dunque, come fare
per accedervi? Bisognera` inserire, oltre all'indirizzo
del server a cui vogliamo collegarci, anche un numero
di "porta". Ma cos'e` una porta? Se riflettete,
ogni server ha un unico indirizzo "centrale"
(nome.com) ma gestisce molti servizi (web, ftp,
posta...). Di conseguenza dovrebbe avere altrettanti
server su altrettanti indirizzi diversi.
Per
evitare un proliferare di indirizzi inutili esistono
le porte, in pratica
nient'altro numeri a cui sono associati i vari servizi.
Vogliamo collegarci a SMTP? Basta utilizzare la
porta 25. Ci interessano le news? La porta e` 119.
Oppure FTP, porta 21... sono tutti numeri "fissi"
(standard) e quindi, tranne in rarissimi casi, collegandosi
- per esempio - alla porta 25 ci rispondera` sempre
SMTP.
NOTA: se avete Winsock potete leggere il file "services",
contenente i numeri delle porte piu` usate. Il file
si trovera` nella directory di Winsock.
Ora che abbiamo
chiarito il discorso delle porte, supponiamo di
volerci
collegare a SMTP usando Telnet. Scegliamo un server
qualsiasi (sono davvero rari i casi in cui un server
non gestisca la posta) e, in base al programma usato,
dovremmo operare differentemente. La maggior parte
di essi funziona in questo modo: per collegarsi
a SMTP del server prova.it bisogna inserire prova.it:25
come nome del server. Alcuni invece non prevedono
l'uso dei due punti per delimitare nome e porta,
ma hanno uno spazio in cui inserire, separatamente,
il numero o il nome del servizio. Dunque,
una volta connessi a prova.it:25 avremo un messaggio
di questo tipo:
220
prova.it Sendmail x.x/x.x 11/11/97 ready at Mon,
30 Oct 97 06:22:19 -0200
e niente
altro. Il server sta ora aspettando comandi da parte
nostra.
La prima cosa da fare e` identificarsi, e cio` va
fatto con il comando HELO in questo modo:
HELO
nomeprovider.it
sostituendo
nomeprovider.it con il nome del nostro provider.
NOTA: usando
Telnet *NON* e` possibile cancellare. Quindi digitate
senza fretta, e se proprio sbagliate riavviate la
connessione e ripetete tutto, oppure - in alcuni
casi - puo` essere sufficiente premere invio e riscrivere
la riga da zero. Non cancellate, anche se sembra
funzionare. I risultati possono essere imprevedibili
e potreste rivelare la vostra identita`.
Talvolta e`
possibile inserire un nome falso, ma i nuovi server
conoscono gia` il vostro IP Address quando vi collegate,
quindi tanto vale inserire il vero nome.
La risposta sara`:
250
prova.it Hello NOMEPROVIDER.IT, pleased to meet
you
A questo
punto dovremo dire al server qual'e` il nostro indirizzo
di e-mail. Usiamo allo scopo il comando "MAIL
FROM" e digitiamo:
MAIL
FROM:
...ovviamente
l'indirizzo da inserire e` quello falso =)
Il server rispondera` con un messaggio. Se avremo
sbagliato qualcosa, sara` un messaggio d'errore,
e dovremo ripetere l'immissione. A
questo punto dobbiamo scegliere la nostra "vittima",
che supponiamo essere vittima@lamer.it. Usiamo il
comando "RCPT TO" e scriviamo:
RCPT
TO:
Il server
rispondera` con un altro messaggio.
Ed ora che abbiamo definito sorgente e destinazione
passiamo all'invio delle intestazioni e del corpo
del messaggio.
Avvisiamo il server che siamo pronti, scrivendo:
DATA
e il
server ci dira` di scrivere il messaggio e di concludere
con un punto su una riga vuota. Fermiamoci un attimo.
In ogni e-mail esistono delle intestazioni (headers)
che si trovano prima del corpo del messaggio vero
e proprio. Il loro scopo e` elencare tutti i computer
attraverso i quali e` passato il messaggio, nonche`
il nostro IP Address! Cio` potrebbe rivelare la
nostra identita` a un hacker o a un SysAdmin esperto.
Per evitarlo, digitiamo:
Received:
by nomeprovider.it id AA11212 with SMTP; Sun, 12
Oct 97 13:40:58
dove
nomeprovider.it e` il nome del vostro provider (quello
che avete usato con HELO) e l'ultima parte (Sun,
12 Oct...) e` la data in formato standard. ID AA11212
va cambiato. Potete mettere un numero qualsiasi
(possibilmente che inizi con AA1 piu` altre 4 cifre,
per farlo sembrare piu` reale). Si tratta solo di
un numero di serie del server, niente di importante.
Ora dobbiamo digitare:
Message-ID:
Cio`
serve a far credere che il messaggio sia partito
effettivamente dal server "microsoft.com"
con l'ID AA11345 (puo` essere un numero qualsiasi,
purche` NON uguale a quello inserito prima con l'intestazione
"Received:").
Inseriamo ora
di nuovo il destinatario, la data e il soggetto
della e-mail:
To:
Date: Sun, 12 Oct 97 11:30:27
Subject: questa e` una prova...
Lasciamo
uno spazio e scriviamo il messaggio che vogliamo
inviare (lungo quanto vogliamo). Per concludere
il messaggio lasciamo due righe vuote, digitiamo
un punto, premiamo invio, scriviamo QUIT e invio.
La FakeMail verra` inviata automaticamente dal server,
e noi possiamo anche chiudere Telnet. E` importante
inviare a se stessi dei messaggi di prova per vedere
se il server scelto ha ricevuto i dati correttamente,
se non sono stati commessi errori e, soprattutto,
per vedere se il proprio IP Address si trova in
mezzo alle intestazioni "Received:", oppure
(sbagliato) alla fine. Ora che sappiamo come fare
ad inviare una FakeMail, possiamo passare al passo
successivo: usare le FakeMail per far danni... vogliamo
seppellire la mailbox di qualcuno? Creiamo una normale
FakeMail con il metodo spiegato sopra, ma come mittente
dovremo inserire l'indirizzo e-mail della vittima
e come destinatario usiamo un "listserv"
(come ad esempio listserv@brownvm.brown.edu). Un
Listserv e` un programma che invia programmi tramite
e-mail nel caso non si riesca a prelevarlo via FTP.
Se ad esempio sappiamo che nella directory "mieifiles"
del server pluto.it c'e` un file di 20 megabyte
il cui nome e` "enorme.gz" possiamo fare
in modo che quei 20 MB vengano inviati sotto forma
di testo nella e-mail della nostra vittima... Nell'esempio
di cui sopra, dopo aver scritto i primi comandi
della FakeMail, arrivati a "Subject:"
scriviamo quanto segue:
REPLY
vittima@lamer.it
CONNECT pluto.it anonymous indirizzo@falso.com
BINARY
GET mieifiles/enorme.gz
QUIT
e concludiamo
quindi con le due righe vuote, il punto, QUIT, ecc.
Ecco
la spiegazione passo passo:
REPLY
indica l'indirizzo e-mail a cui rispondere CONNECT
specifica il nome del provider a cui collegarsi
e l'account da usare BINARY specifica un file di
tipo binario (non va cambiato) GET specifica il
nome del file da prelevare (completo di eventuali
directory) QUIT termina la connessione. Ovviamente,
se dopo GET anziche` QUIT usiamo altri GET, il risultato
sara` molto piu` dannoso. Nel caso di un file di
20 MB, riscrivendo altre 10 volte il comando "GET
..." verranno mandati un totale di ben 200
megabyte al povero utente destinatario! E poiche`
i server di e-mail spezzano i messaggi in tanti
piccoli messaggi, la vittima riceverebbe migliaia
e migliaia di messaggi... E` un buon motivo per
non dare in giro il proprio indirizzo di e-mail,
no?
C. Email & Identificazione
EMAIL E IDENTIFICAZIONE
~~~~~~~~~~~~~~~~~~~~~~~
Per concludere il nostro studio su FakeMail e messaggi
anonimi, vedremo ora come riconoscere una e-mail
"vera" da una "falsa", come
identificarne (in parte) l'autore, e come utilizzare
i remailer anonimi per un'anonimita` di livello
elevatissimo. Per poter studiare un messaggio dobbiamo
necessariamente essere in grado di leggerne gli
"headers" (intestazioni), cioe` quelle
righe che iniziano con la parola "Received:"
e simili, che si trovano prima del corpo del messaggio
vero e proprio). Visualizzare gli headers e` semplice:
ogni programma di posta elettronica ha un'opzione
(in genere nel menu`) per attivare/disattivare la
visualizzazione degli stessi. Netscape Mail, ad
esempio, ha la voce "Show Headers" nel
menu` "Options", mentre con "Internet
Explorer" e` necessario cliccare sul titolo
dell'e-mail da analizzare, quindi premere il tasto
destro e scegliere l'ultima voce (Properties, ovvero
Proprieta`). Eudora ed altri client hanno una funzione
simile a quella di Netscape Mail (nei menu`). Prendiamo
dunque ad esempio questa e-mail, di cui visualizziamo
gli headers:
Received:
from posta.hackers.it (111.123.33.4) by provider.it
via mtad (2.3)
id mx03-Biqmta0276; Mon, 27 Sep 1997 06:45:07 -0600
(MDT)
Received: from america.com ([123.45.67.89]) by posta.hackers.it
(post.office MTA v1.9.3b ID# 0-12345) with SMTP
id AAA187
for ; Mon, 27 Sep 1997 14:34:21 +0200
From:
To:
Subject: test...
Analizziamone
ora gli headers: il primo (Received) e` lungo due
righe, in quanto ogni header inizia con una parola
chiave seguita dai due punti, e nel secondo rigo
non esiste una prima parola, ne` i due punti; ne
deduciamo percio` che e` il seguito della riga superiore.
L'header "Received" ci informa del percorso
seguito dall'e-mail da quando e`
stato generato a quando l'abbiamo ricevuto. Normalmente
ce n'e` piu` di uno e sono disposti in ordine inverso
(il primo rappresenta l'ultimo computer in cui e`
arrivata l'e-mail - con ogni probabilita` il nostro
o quello del nostro provider - e l'ultimo Received
rappresenta il computer "mittente"). Infatti,
ogni volta che un server riceve una e-mail, aggiunge
un "Received" in *cima* alle altre intestazioni
gia` presenti. Tornando alla nostra e-mail, vediamo
percio` che l'ultimo "Received" ci
informa che il computer america.com ha l'IP Address
123.45.67.89 e ha mandato questa e-mail al server
posta.hackers.it usando SMTP.
Guardando l'header successivo (sopra) notiamo che
poi il messaggio e` stato mandato a sua volta da
posta.hackers.it (che vediamo avere un IP Address
pari a 111.123.33.4) a provider.it, che e` il server
destinatario (il nostro). Infatti, se guardiamo
l'header "To:" vediamo che destinatario
finale e` utente@provider.it.
Il mittente, stando all'header "From:",
dovrebbe essere mittente@america.com
ma come sincerarsene? Utilizzando il programma Finger
possiamo sapere se l'utente "mittente"
esiste su "america.com", ma utilizzando
Finger non possiamo sapere se sia stato effettivamente
lui a mandare il messaggio o meno. Ricorriamo percio`
ancora una volta all'analisi degli header "Received".
Il primo header, quello che ci informa da CHI e`
stato inviato il messaggio, corrisponde all'ultimo
header (cioe` al secondo "Received").
Da li` scopriamo che il computer mittente e` america.com
con IP 123.45.67.89 e dell'IP possiamo essere sicuri...
ma non possiamo fidarci di "america.com"
e l'unico modo per sapere se effettivamente Host
Name e IP Address coincidono e` utilizzare un programma
DNS. Bastera` inserire l'IP Address per conoscere
l'Host Name ad esso corrispondente. Questo metodo
e` di estrema importanza, in quanto se da un lato
non ci permette di scoprire l'autore, almeno potremo
sapere quale computer e` stato usato per inviare
e-mail, news, ecc. Molti provider di posta elettronica
gratuita (come Hotmail e Netaddress) e non, permettono
di bloccare l'invio
di e-mail che provengono da un determinato "dominio"
(es. provider.it), ma per farlo e` necessario conoscerne
l'Host Name oppure l'IP Address. Quando si effettua
un mail-bombing usando Kaboom, Up Yours o altri
programmi del genere, si lascia dunque in modo indelebile
il proprio IP Address nelle e-mail. L'unico "lato
buono" e` che inviando alcune migliaia di e-mail
a un indirizzo, *probabilmente* il proprietario
della mailbox non riuscira` a scaricarle tutte (o
non vorra` farlo) e non potra` percio` analizzarne
le intestazioni per scoprire il colpevole ;) In
ogni caso con i servizi di e-mail tramite Web, o
con programmi ad hoc e` possibile scaricare un singolo
messaggio e analizzarlo, quindi e` bene lasciare
il mail-bombing ai lamers che non hanno nient'altro
da fare... Il motivo per cui programmi come Kaboom
e Up Yours si dichiarano "100% non
rintracciabili" e` perche` la lista dei server
SMTP inclusa in essi contiene per lo piu` vecchi
server che non registrano l'IP Address di chi si
collega. Ma tali server sono stati sfruttati, hackerati,
bombardati e sovraccaricati di e-mail in uscita,
e sono stati percio` disattivati o hanno cambiato
nome. In ogni caso, tutti i piu` nuovi server SMTP
registrano (purtroppo) l'IP e in alcuni casi sono
addirittura in grado di riconoscere un tentativo
di FakeMail e rispondere "sfottendo"...
:-} Supponiamo ora che anziche` utilizzare e-mail
false vogliamo scriverne una anonima per rispondere
a qualcuno senza essere rintracciati, o magari per
partecipare a un Newsgroup in maniera del tutto
anonima. Esiste
un servizio, quello dei cosiddetti "remailer",
per inviare posta
completamente anonima (senza mittente e senza alcuna
traccia di IP Address o altro).
NOTA: Per una
lista completa con tutte le informazioni come: velocita`,
caratteristiche e affidabilita` basta cercare le
parole "anonymous remailer" con un qualsiasi
motore di ricerca sul Web.
Usarli nella
loro forma piu` semplice (senza criptazione e senza
re-routing multipli) e` facile, basta inviare una
normalissima e-mail (con qualsiasi programma di
posta elettronica) all'indirizzo e-mail di un remailer.
Ad esempio, remailer@replay.com (oppure remailer@huge.cajones.com
o ancora remailer@cypherpunks.ca) e, PRIMA del messaggio
inserire una riga vuota, una coppia di due punti
e altre informazioni, come segue:
::
Request-Remailing-To: destinatario@email.com
Questa
e` una prova....
Dunque
l'indirizzo del destinatario NON va inserito come
destinatario.
Come destinatario useremo l'indirizzo del remailer,
mentre quello del vero destinatario andra` scritto
a fianco a "Request-Remailing-To". Questo
e` quanto per le e-mail anonime. Come fare, invece,
per inviare delle news anonime? Seguendo lo stesso
procedimento, ma usando come destinatario un "gateway"
(passaggio) mail-news. A cosa serve? Inviando un
messaggio al gateway, questo lo inviera` a sua volta
alle news. Volendo mandare un messaggio al Newsgroup
alt.hackers bastera` sostituire i punti con dei
trattini e aggiungere l'indirizzo del gateway (ad
esempio cs.utexas.edu) quindi il risultato sara`
alt-hackers@cs.utexas.edu al quale manderemo il
nostro messaggio tramite remailer. Aggiungiamo ora
alcune informazioni per completare il capitolo.
Sul Web esistono vari siti per FakeMail che non
registrano IP Address. Uno molto veloce e` (al momento
in cui si scrive) MailMan al seguente indirizzo:
http://www.nettex.com/~thecap/
Per quanto riguarda la posta anonima tramite remailer,
ne esistono anche sul Web. Per chi preferisse le
Form ai programmi di posta elettronica bastera`
cercare, come detto prima, dei remailer usando i
motori di ricerca. Un indirizzo tra i piu` affidabili:
http://www.replay.com/remailer/
NOTA: questi siti sono attivi non per arrecare danni,
ma per fornire un
servizio a quanti vogliono preservare la propria
privacy elettronica.
Abusandone potreste mettere voi nei guai, o causare
la chiusura del servizio.
Inoltre molti remailer possono negarvi l'accesso
al servizio in caso di
proteste da parte di terzi. In altre parole, usate
il cervello...
D. Web server
Tratto
dalla guida di Lord Shinva