Cos’è

Hping3 è un generatore di pacchetti e un analizzatore dei protocolli TCP e UDP. Hping è uno degli strumenti per il testing di firewall e reti.

 

Utilizzo:

Test ICMP: hping3 si comporterà come un normale tool per ping.

hping3 -1 dominio.xyz

Traceroute usando ICMP: questo esempio è simile alle famose utility come tracert (windows) o traceroute (linux) che usa i pacchetti ICMP aumentando ogni volta in 1 il suo valore TTL.

hping3 --traceroute -V -1 dominio.xyz

Controllo della porta: invierà un pacchetto Syn ad una porta specificata (93 nel nostro esempio). Possiamo controllare anche da quale porta locale avvierà la scansione (5678).

hping3 -V -S -p 93 -s 5678 dominio.xyz

Traceroute a una porta determinata: puoi eseguire un traceroute a una porta specifica per controllare dove i pacchetti vengono bloccati. Può essere fatto semplicemente aggiungendo –traceroute all’ultimo comando.

hping3 --traceroute -V -S -p 93 -s 5678 dominio.xyz

Scansione Ack: questa scansione può essere usata per vedere se un host è vivo (quando non si riceve risposta al ping per esempio). Questo dovrebbe inviare una risposta RST indietro se la porta è aperta.

hping3 -c 1 -V -p 93 -s 5678 -A dominio.xyz

Scansione Null: questa scansione imposta il numero di sequenza su zero e non ha nessun flag impostato nel pacchetto. Se la porta TCP del dispositivo di destinazione è chiusa, il dispositivo di destinazione invia un pacchetto RST-TCP. Al contrario se invece è aperta, la destinazione scarta la scansione TCP-NULL, senza inviare alcuna risposta.

hping3 -c 1 -V -p 93 -s 5678 -Y dominio.xyz

Come si può facilmente evincere Hping3 è utilizzabile non solo per la raccolta di informazioni e individuazione di vulnerabilità, ma anche per l’esecuzione di attacchi DoS.

Un esempio di attacco:

hping3 -S -P -U --flood -V --rand-source www.sitovittima.xyz

-S (Syn & syn-ack, è il primo pacchetto che viene inviato per stabilire una connessione tcp)

-P (Indica all’entità ricevente che questo è l’ultimo segmento di dati e non sono in attesa di altri segmenti)

-U (Indica all’entità ricevente che questo segmento ha informazioni importanti, quindi elabora prima questo segmento invece dei segmenti bufferizzati)

–flood (Indica l’invio a grande velocità di una serie di pacchetti)

-V (Modalità verbose)

–rand-source (Invia pacchetti da vari indirizzi IP di origine casuale alla vittima)

 

Hping3 Help

hping3 host [options]
 -h --help show this help
 -v --version show version
 -c --count packet count
 -i --interval wait (uX for X microseconds, for example -i u1000)
 --fast alias for -i u10000 (10 packets for second)
 --faster alias for -i u1000 (100 packets for second)
 --flood sent packets as fast as possible. Don't show replies.
 -n --numeric numeric output
 -q --quiet quiet
 -I --interface interface name (otherwise default routing interface)
 -V --verbose verbose mode
 -D --debug debugging info
 -z --bind bind ctrl+z to ttl (default to dst port)
 -Z --unbind unbind ctrl+z
 --beep beep for every matching packet received
Mode
 default mode TCP
 -0 --rawip RAW IP mode
 -1 --icmp ICMP mode
 -2 --udp UDP mode
 -8 --scan SCAN mode.
 Example: hping --scan 1-30,70-90 -S www.target.host
 -9 --listen listen mode
IP
 -a --spoof spoof source address
 --rand-dest random destionation address mode. see the man.
 --rand-source random source address mode. see the man.
 -t --ttl ttl (default 64)
 -N --id id (default random)
 -W --winid use win* id byte ordering
 -r --rel relativize id field (to estimate host traffic)
 -f --frag split packets in more frag. (may pass weak acl)
 -x --morefrag set more fragments flag
 -y --dontfrag set don't fragment flag
 -g --fragoff set the fragment offset
 -m --mtu set virtual mtu, implies --frag if packet size > mtu
 -o --tos type of service (default 0x00), try --tos help
 -G --rroute includes RECORD_ROUTE option and display the route buffer
 --lsrr loose source routing and record route
 --ssrr strict source routing and record route
 -H --ipproto set the IP protocol field, only in RAW IP mode
ICMP
 -C --icmptype icmp type (default echo request)
 -K --icmpcode icmp code (default 0)
 --force-icmp send all icmp types (default send only supported types)
 --icmp-gw set gateway address for ICMP redirect (default 0.0.0.0)
 --icmp-ts Alias for --icmp --icmptype 13 (ICMP timestamp)
 --icmp-addr Alias for --icmp --icmptype 17 (ICMP address subnet mask)
 --icmp-help display help for others icmp options
UDP/TCP
 -s --baseport base source port (default random)
 -p --destport [+][+]<port> destination port(default 0) ctrl+z inc/dec
 -k --keep keep still source port
 -w --win winsize (default 64)
 -O --tcpoff set fake tcp data offset (instead of tcphdrlen / 4)
 -Q --seqnum shows only tcp sequence number
 -b --badcksum (try to) send packets with a bad IP checksum
 many systems will fix the IP checksum sending the packet
 so you'll get bad UDP/TCP checksum instead.
 -M --setseq set TCP sequence number
 -L --setack set TCP ack
 -F --fin set FIN flag
 -S --syn set SYN flag
 -R --rst set RST flag
 -P --push set PUSH flag
 -A --ack set ACK flag
 -U --urg set URG flag
 -X --xmas set X unused flag (0x40)
 -Y --ymas set Y unused flag (0x80)
 --tcpexitcode use last tcp->th_flags as exit code
 --tcp-mss enable the TCP MSS option with the given value
 --tcp-timestamp enable the TCP timestamp option to guess the HZ/uptime
Common
 -d --data data size (default is 0)
 -E --file data from file
 -e --sign add 'signature'
 -j --dump dump packets in hex
 -J --print dump printable characters
 -B --safe enable 'safe' protocol
 -u --end tell you when --file reached EOF and prevent rewind
 -T --traceroute traceroute mode (implies --bind and --ttl 1)
 --tr-stop Exit when receive the first not ICMP in traceroute mode
 --tr-keep-ttl Keep the source TTL fixed, useful to monitor just one hop
 --tr-no-rtt Don't calculate/show RTT information in traceroute mode
ARS packet description (new, unstable)
 --apd-send Send the packet described with APD (see docs/APD.txt)