Politecnico di Milano Dipartimento di Elettronica e Informazione Reti di Comunicazione e Internet Laboratorio 6. Wireshark e Protocolli Applicativi
Agenda della lezione Wireshark Protocolli applicativi: File Transfer Protocol (FTP) Simple Mail Transfer Protocol (SMTP) Post Office Protocol (POP) 2
Agenda: Wireshark Laboratorio 6. Protocolli Applicativi e Wireshark 3
Packet sniffing I pacchetti seguono normalmente il loro percorso nel nodo (routing, filtraggio, forwarding), ma vengono osservati da un tool di sniffing I pacchetti sono visualizzati completamente dal tool di sniffing, con gli header di tutti i livelli ed il payload È possibile compiere elaborazioni di vario tipo sui pacchetti, per raccogliere statistiche, ottenere informazioni... 4
Wireshark È uno dei tool più comodi per sniffare pacchetti in rete Contiene strumenti avanzati di analisi e filtraggio È un tool multipiattaforma (Window, Linux, Mac) ed è liberamente scaricabile: http://www.wireshark.org/ Necessita dei permessi di root/administrator per poter effettuare delle catture di pacchetti Nella versione senza permessi, può però essere usato per analizzare catture già effettuate 5
Interfaccia di Wireshark 6
Alcune funzionalità utili Filtri sui pacchetti: permette di creare filtri per vedere solo determinati pacchetti. Il filtraggio si può fare in base ai diversi campi degli header, o ai diversi protocolli Follow TCP Stream: è possibile, selezionando un pacchetto TCP, chiedere a Wireshark di seguire il flusso TCP, concatenando i pacchetti e mostrando solo i payload. (ad es., seguite un flusso HTTP...) Analisi degli Header: è possibile, per ogni pacchetto, effettuare analisi dettagliate degli header, aprendoli e vedendone il contenuto in formato esadecimale e formattato dalla GUI Statistiche: è possibile ottenere delle statistiche sui flussi e diagrammi temporali 7
Filtri sui pacchetti e Follow TCP stream 8
Analisi degli header 9
Statistiche 10
Esercizi 1/2 Sul sito web del corso si trovano delle catture già fatte, analizzabili con Wireshark, aprirle e verificare gli scambi di pacchetti dei vari protocolli: HTTP, FTP, POP, SMTP Cattura HTTP 1: Quali client sono stati impiegati? Quante richieste di pagine web sono state fatte? In tutti i casi è possibile visualizzare la pagina completa di tutte le parti? Catttura HTTP 2: Qual è lo Username e la password di accesso alla zona riservata del sito? Che errore c'è nella struttura del sito web? (suggerimento: il web server risponde negativamente ad una richiesta...) Cattura FTP: A che porta del server il client si è connesso per ricevere il file server.png? 11
Esercizi 2/2 Cattura POP 1: Che client di posta è stato usato per inviare la mail? Cattura POP 2: Che tipo di encoding è usato per l'allegato? Catture SMTP: Che differenza c'è tra la cattura SMTP 1 e 2? 12
Agenda: Protocolli applicativi Laboratorio 6. Protocolli Applicativi e Wireshark 13
Protocolli Applicativi HTTP FTP SMTP POP3 14
Agenda: File Transfer Protocol Laboratorio 6. Protocolli Applicativi e Wireshark 15
Generalità Il File Transfer Protocol (FTP) è un protocollo di condivisione e trasmissione di file tra host RFC 959 Protocollo Client-Server Completamente testuale Opera direttamente sul filesystem del sistema Connessione di controllo: porta 21 16
Comandi FTP (1) Comandi necessari a comunicare via FTP: Connessione al server sulla porta 21 (connessione di controllo): myhost$ telnet 192.168.0.98 21 Autenticazione: USER <nomeutente> PASS <password> QUIT Informazioni: HELP STAT < NULL nome_file> SYST Lista più completa di comandi: http://www.nsftools.com/tips/rawftp.htm 17
Comandi FTP (2) PWD CWD LIST QUIT Movimenti: Setup: MODE <Stream Block Compressed> PASV PORT a1, a2, a3, a4, p1, p2 * RETR STOR DELE Manipolazione: Modalità di impiego: Protocollo con 2 connessioni (2 telnet) I comandi vengono dati su connessione di controllo I trasferimenti avvengono sulla connessione dati * IP del client a cui connettersi: a1.a2.a3.a4 - PORT a cui connettersi: p1*256 + p2 18
Sessione d esempio $ telnet 192.168.0.98 21 USER Anonymous PASS PASV Server 227 Entering Passive Mode (192,168,0,98,46,204) CWD /data Shell 1 Shell 2 46*256+204 = 11980 $telnet 192.168.0.98 11980 LIST -rw-r--r-- 1 620 620 826322 Mar 26 13:03 gnome_is_people.png -rw-r--r-- 1 620 620 35147 Mar 26 13:03 gpl.txt PASV 227 Entering Passive Mode (192,168,0,98,420,21) RETR gpl.txt $telnet 192.168.0.98 107541 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 [...] 19
Esercizi Loggarsi sul server FTP messo a disposizione in laboratorio (l'indirizzo di tale server verrà fornito durante il laboratorio USER anonymous, PASS <anything> ) Provare a scaricare un'immagine Provare l'altro metodo di connessione, PORT (con p1=128, p2= 204): funziona? (per aprire una porta TCP si può usare il tool netcat nel seguente modo: nc -l PORT oppure nc -l -p PORT ) 20
Agenda: Simple Mail Transfer Protocol Laboratorio 6. Protocolli Applicativi e Wireshark 21
Generalità (1) Il Simple Mail Transfer Protocol (SMTP) è un protocollo di trasmissione di email RFC 821 Specifica base Protocollo testuale Inizialmente permetteva solo il trasferimento ASCII, è stato successivamente esteso per trasmettere informazioni binarie (estensione MIME, 8BITMIME,...) Utilizza la porta 25 SMTP originariamente non prevede autenticazione: SMTP-AUTH / Internet Mail 2000 IETF Anti-Spam Research Group 22
Generalità (2) Sender Domain Receiver Domain Relaying SMTP Destination SMTP SENDER RECEIVER 23
Generalità (3) Voglio inviare una mail ad un amico del dominio receivers.com 1) Mi connetto al server SMTP del dominio receivers.com 2) Dichiaro (nel mittente della mail) il dominio da cui scrivo: senders.com 3) Scrivo la mail e la deposito nella cartella di friend@receivers.com Non mi è stato chiesto USER o PASS!!! (no autenticazione) I gestori del dominio receivers.com tuttavia possono operare alcuni controlli, ad esempio bannando degli indirizzi IP o loggando ogni accesso I provider offrono server SMTP che si occupano delle consegne alla mailbox del destinatario al posto nostro (gestendo il caso di server occupato, momenti di down,...) 24
Comandi SMTP Comandi di uso comune: HELO <domain> MAIL FROM:<reverse-path> RCPT TO:<forward-path> DATA RSET VRFY <string> HELP [<string>] QUIT I comandi sono Case Insensitive, tranne nel reverse e forward path, che sono Sensitive 25
Sessione d esempio albertux@antlab101:~$ telnet 192.168.0.98 25 220 www.labrci.lan ESMTP Postfix (Debian/GNU) HELO studente.it 250 www.labrci.lan MAIL FROM:<matr666999@studente.it> 250 2.1.0 Ok RCPT TO:<labrci001@labrci.lan> 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> Subject: Verifica SMTP From: matr666999@studente.it To: professore@labrci.it Buongiorno Questa mail serve a dimostrare che ho imparato SMTP.. 250 2.0.0 Ok: queued as F41CC9F6EE QUIT 221 2.0.0 Bye 26
Esercizi Inviare una mail da un mittente falso (pippo@disney.it) all'indirizzo email labrci<numeropc>@labrci.lan (l'ip del server SMTP verrà comunicato a lezione) (numeropc è di tre cifre, ad es: 001) Inviare, sempre allo stesso indirizzo mail, altre 2 mail usando mittenti e subject diversi (serve per un esercizio successivo) [A CASA] provare a mandare delle mail al proprio indirizzo email da pippo@disney.it 27
Agenda: Post Office Protocol Laboratorio 6. Protocolli Applicativi e Wireshark 28
Generalità Il Post Office Protocol (detto anche POP) è un protocollo di accesso alla mailbox RFC 1939 Protocollo testuale Protocollo con Autenticazione Utilizza la porta 110 Non è cifrato, per cui user e password passano in chiaro 29
Comandi Login in chiaro: USER <username> PASS <password> Risposte del server: -ERR +OK STAT info sullo stato mbox LIST elenca il # messaggi RETR n leggi messaggio n DELE n cancella messaggio n RSET annulla cancellazioni QUIT esce Operazioni comuni: TOP n mostra gli header della mail 30
Sessione d esempio albertux@antlab101:~$ telnet 192.168.0.98 110 +OK Dovecot ready. USER labrci001 +OK PASS labrci001 +OK Logged in. LIST +OK 1 messages: 1 598. RETR 1 +OK 598 octets Return-Path: <matr666999@studente.it> X-Original-To: labrci001@labrci.lan Delivered-To: labrci001@labrci.lan Received: from studente.it (ip254 [192.168.0.254]) by www.labrci.lan (Postfix) with SMTP id F41CC9F6EE for <labrci001@labrci.lan>; Wed, 26 Mar 2008 13:09:43 +0100 (CET) Message-Id: <20080326121008.F41CC9F6EE@www.labrci.lan> Date: Wed, 26 Mar 2008 13:09:43 +0100 (CET) From: matr666999@studente.it To: undisclosed-recipients:; Subject: Verifica SMTP From: matr666999@studente.it To: professore@labrci.it Buongiorno Questa mail serve a dimostrare che ho imparato SMTP.. DELE 1 +OK Marked to be deleted. QUIT +OK Logging out, messages deleted. 31
Esercizi Collegarsi al server POP della LAN dell'aula (l'ip è lo stesso dell'smtp server, comunicato a lezione) Username labrci<numeropc>, password labrci<numeropc> Scaricare la mail precedentemente inviata dall'indirizzo pippo@disney.it Con il comando TOP verificare gli header della mail Cancellare le 3 mail inviate in precedenza Annullare la cancellazione con il comando RSET Cancellarle di nuovo, definitivamente 32