cerca
Sicurezza nelle Reti - Prova Pratica - Giugno 2008
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Sicurezza nelle Reti - Prova Pratica - Giugno 2008

 :: Sicurezza nelle Reti - Prova Pratica - Giugno 2008 ::

Esercizio 1

Utilizzare tcpdump per salvare su un unico file tutto il traffico generato aprendo una sessione FTP ATTIVO verso il computer del docente e scaricando in locale il file presente sul server.

Dal file contenente il traffico generato nel punto precedente, ricavare, utilizzando il minor numero possibile di filtri tcpdump, i pacchetti necessari a mostrare:

  • handshake TCP della connessione DATI
  • protocollo di terminazione della connessione DATI

Utilizzare sempre almeno i seguenti filtri combinati con operatori logici:

  • indirizzo IP di una delle due macchine
  • combinazione di uno o più flag TCP (usare filtro sul contenuto binario)
  • porta (o range di porte) applicativa (usare filtro sul contenuto binario dell'intero parametro dell'header)

Soluzione

Per salvare il traffico, facciamo

tcpdump -n -v -i eth 0 -w traffico.dump

Per aprire la connessione FTP attiva, da linea di comando si fanno le seguenti cose:

% ftp IpDocente
>LS
>GET nomefile
>QUIT

ftp IpDocente apre la connessione, LS lista i files, GET lo recupera, QUIT esce. Se il file da scaricare non è lì, occorre cercarlo da qualche parte: dopo aver fatto LS ed essere comparsa una lista di directory, si fa CD nomedir per entrare nella directory.

Nell'FTP attivo, la connessione dati è eseguita dalla porta 20 del server ad una porta alta del client. L'handshake è composto così:

  • client: SYN
  • server: SYN ACK
  • client ACK

Ma in questo caso, è il PcDocente a fare da CLIENT, e il nostro Pc a fare da SERVER. La sequenza sarebbe quindi:

  • PcDocente: SYN
  • PcNostro: SYN ACK
  • Pcdocente: ACK

Per trovare il SYN del docente tramite tcpdump, facciamo:

tcpdump -n -v -i eth0 src host PcDocente and "tcp[0:2] = 20 and tcp[13] & 1 != 0" -r traffico.dump

che ci trova il pacchetto proveniente dalla porta 20 del PcDocente con settato il flag SYN.

Per trovare il SYN/ACK del PcNostro inviato alla porta destinazione 20, facciamo:

tcpdump -n -v -i eth0 src host PcNostro and "tcp[13] = 18 and tcp[2:2] = 20" -r traffico.dump

Per trovare gli ACK che il PcDocente ci ha inviato, facciamo:

tcpdump -n -v -i eth0 src host Pcdocente and "tcp[13] = 16 and tcp[0:2] = 20" -r traffico.dump

La disconnessione avviene invece in questo modo: chi vuole terminare invia FIN, l'altro risponde con FIN ACK, e il primo risponde con ACK, e finisce lì.
Siccome siamo noi a voler terminare la connessione, saremo noi ad inviare il FIN e a ricever FIN ACK:

tcpdump -n -v -i eth0 src host PcNostro and "tcp[13] = 1 and tcp[2:2] = 20" -r traffico.dump

E il docente risponderà con FIN ACK:

tcpdump -n -v -i eth0 src host PcDocente and "tcp[13] = 17 and tcp[0:2] = 20" -r traffico.dump

Una cosa su cui sono incerto è se sia possibile combinare tutte queste cose in un comando solo... guardandolo così, non credo proprio, e dal testo non capisco se il prof lo voglia o mica...

La cosa migliore che posso fare in un botto solo è questa: (ATTENZIONE E' DA RIVEDERE questo comando non viene accettato da tcpdump!)

tcpdump -n -v -i eth 0 (src host PcDocente and tcp[0:2] = 20 and tcp[13] = 2)
or (src host PcDocente and tcp[0:2] = 20 and tcp[13] & 1 != 0)
or (src host PcNostro and tcp[2:2] = 20 and tcp[13] = 18)
or (src host PcNostro and tcp[2:2] = 20 and tcp[13] & 1 != 0)
-r traffico.dump

che prende i seguenti pacchetti:

  • i pacchetti con soli SYN provenienti dalla porta 20 del PcDocente
  • i pacchetti con almeno FIN provenienti dalla porta 20 del PcDocente
  • i pacchetti con soli SYN ACK provenienti dal PcNostro e diretti alla porta 20 del PcDocente
  • i pacchetti con almeno FIN provenienti dalla PcNostro e diretti alla porta 20 del PcDocente

Rimangono fuori gli ACK di risposta, ma se inserisco anche un filtro, troverebbe TUTTI gli hack, e quindi ritengo non si possa far molto di meglio.


Torna alla pagina di Sicurezza nelle Reti