hping3

Assembleur et analyseur de paquets TCP/IP en ligne de commande. Fabrique des paquets TCP, UDP, ICMP et IP bruts personnalisés pour tester des pare-feux, faire du traceroute, et de la prise d'empreinte OS. Command-line TCP/IP packet assembler and analyzer. Crafts custom TCP, UDP, ICMP, and raw IP packets for firewall testing, tracerouting, and OS fingerprinting.

↗ http://www.hping.org

Overview

hping3 is a network tool that can send custom TCP, UDP, ICMP, and raw IP packets. Unlike ping which only sends ICMP, hping3 can probe any port, test firewall rules, perform traceroutes over TCP, detect ACL policies, and create simple network stress tests.

Basic Usage

ICMP ping (like regular ping)

sudo hping3 -1 target.com

TCP SYN scan on port 80

sudo hping3 -S -p 80 target.com

TCP ACK (bypass stateless firewalls)

sudo hping3 -A -p 80 target.com

UDP

sudo hping3 -2 -p 53 target.com

Verbose

sudo hping3 -S -p 80 -V target.com

Port Scanning

Scan a range of ports with SYN

sudo hping3 -S --scan 1-1000 target.com

Scan specific ports

sudo hping3 -S --scan 22,80,443,3389 target.com

Detect open ports (look for SYN-ACK response, TTL value)

sudo hping3 -S -p ++1 target.com   # Increment port each packet

Traceroute

TCP traceroute (works through firewalls that block ICMP)

sudo hping3 -S -p 80 --traceroute target.com

UDP traceroute

sudo hping3 -2 -p 53 --traceroute target.com

Firewall Testing

Test if port 80 is open (SYN - should get SYN-ACK)

sudo hping3 -S -p 80 target.com -c 3

Test ACK bypass (some stateless firewalls allow ACK)

sudo hping3 -A -p 80 target.com

FIN scan (stealthy - RST from closed, no response from open)

sudo hping3 -F -p 80 target.com

XMAS scan (FIN+PSH+URG)

sudo hping3 -F -P -U -p 80 target.com

NULL scan (no flags)

sudo hping3 -p 80 target.com

Spoofed Source / Decoy Scanning

Spoof source IP (responses go to spoofed IP, not to you)

sudo hping3 -S -p 80 --spoof 1.2.3.4 target.com

Flood with spoofed IPs (network stress test — use carefully)

sudo hping3 -S -p 80 --flood --rand-source target.com

Idle Scan (IP ID Scanning)

Check zombie’s IP ID sequence (must be incremental)

sudo hping3 -S -p 80 zombie_host.com

Idle scan using zombie (classic nmap -sI equivalent)

sudo hping3 -S -p TARGET_PORT -a ZOMBIE_IP TARGET_IP

Custom Payloads

Send custom payload with TCP SYN

sudo hping3 -S -p 80 target.com -d 100 -E /dev/urandom
# Send specific data
echo "GET / HTTP/1.0\r\n\r\n" > payload.txt
sudo hping3 -S -p 80 --data 40 -E payload.txt target.com

Tips

  • Always sudo — raw sockets require root
  • --flood sends as fast as possible without waiting for responses — use only on authorized targets
  • Compare SA (SYN-ACK) vs RA (RST-ACK) vs no response to classify ports/firewall behavior
  • hping3 is useful for crafting specific packet patterns that firewalls would normally block
Help / Man page
hping3 [options] host

Modes (default: TCP):
  -1           ICMP mode
  -2           UDP mode
  -9           Listen mode (RAW IP)
  -S           TCP SYN flag
  -A           TCP ACK flag
  -F           TCP FIN flag
  -P           TCP PUSH flag
  -U           TCP URG flag
  -R           TCP RST flag

Scanning:
  --scan ports    Scan port list
  -p port         Destination port
  +p              Increment port each packet
  --traceroute    Traceroute mode

Timing:
  -c count        Stop after N packets
  -i delay        Wait interval between packets
  --fast          Alias for -i u10000 (10 pps)
  --flood         Send as fast as possible

Spoofing:
  -a addr         Spoof source address
  --rand-source   Random source IP per packet

Data:
  -d size         Data size (bytes)
  -E file         Data from file
  --sign signature  Add signature

Output:
  -V              Verbose
  -q              Quiet
  -n              Numeric output only

Vue d’ensemble

hping3 est un outil réseau capable d’envoyer des paquets TCP, UDP, ICMP et IP bruts personnalisés. Contrairement à ping qui n’envoie que de l’ICMP, hping3 peut sonder n’importe quel port, tester des règles de pare-feu, faire du traceroute sur TCP, détecter des politiques d’ACL, et créer des tests de charge réseau simples.

Utilisation de base

# Ping ICMP (comme un ping classique)
sudo hping3 -1 target.com

# Scan TCP SYN sur le port 80
sudo hping3 -S -p 80 target.com

# TCP ACK (contourner les pare-feux sans état)
sudo hping3 -A -p 80 target.com

# UDP
sudo hping3 -2 -p 53 target.com

# Verbeux
sudo hping3 -S -p 80 -V target.com

Scan de ports

# Scanner une plage de ports en SYN
sudo hping3 -S --scan 1-1000 target.com

# Scanner des ports spécifiques
sudo hping3 -S --scan 22,80,443,3389 target.com

# Détecter les ports ouverts (chercher une réponse SYN-ACK, valeur TTL)
sudo hping3 -S -p ++1 target.com   # Incrémente le port à chaque paquet

Traceroute

# Traceroute TCP (fonctionne à travers les pare-feux qui bloquent l'ICMP)
sudo hping3 -S -p 80 --traceroute target.com

# Traceroute UDP
sudo hping3 -2 -p 53 --traceroute target.com

Test de pare-feu

# Tester si le port 80 est ouvert (SYN, devrait recevoir un SYN-ACK)
sudo hping3 -S -p 80 target.com -c 3

# Tester le contournement ACK (certains pare-feux sans état laissent passer l'ACK)
sudo hping3 -A -p 80 target.com

# Scan FIN (furtif : RST depuis un port fermé, pas de réponse depuis un port ouvert)
sudo hping3 -F -p 80 target.com

# Scan XMAS (FIN+PSH+URG)
sudo hping3 -F -P -U -p 80 target.com

# Scan NULL (aucun flag)
sudo hping3 -p 80 target.com

Usurpation de source / scan par leurre

# Usurper l'IP source (les réponses partent vers l'IP usurpée, pas vers vous)
sudo hping3 -S -p 80 --spoof 1.2.3.4 target.com

# Flood avec des IPs usurpées (test de charge réseau : à utiliser avec prudence)
sudo hping3 -S -p 80 --flood --rand-source target.com

Idle scan (scan par IP ID)

# Vérifier la séquence d'IP ID du zombie (doit être incrémentale)
sudo hping3 -S -p 80 zombie_host.com

# Idle scan en utilisant un zombie (équivalent classique de nmap -sI)
sudo hping3 -S -p TARGET_PORT -a ZOMBIE_IP TARGET_IP

Payloads personnalisés

# Envoyer un payload personnalisé avec un TCP SYN
sudo hping3 -S -p 80 target.com -d 100 -E /dev/urandom

# Envoyer des données spécifiques
echo "GET / HTTP/1.0\r\n\r\n" > payload.txt
sudo hping3 -S -p 80 --data 40 -E payload.txt target.com

Conseils

  • Toujours sudo : les sockets bruts nécessitent le root
  • --flood envoie aussi vite que possible sans attendre les réponses : à utiliser uniquement sur des cibles autorisées
  • Comparez SA (SYN-ACK) vs RA (RST-ACK) vs absence de réponse pour classifier les ports/le comportement du pare-feu
  • hping3 est utile pour fabriquer des motifs de paquets spécifiques que les pare-feux bloqueraient normalement
Aide / Page de manuel
hping3 [options] host

Modes (default: TCP):
  -1           ICMP mode
  -2           UDP mode
  -9           Listen mode (RAW IP)
  -S           TCP SYN flag
  -A           TCP ACK flag
  -F           TCP FIN flag
  -P           TCP PUSH flag
  -U           TCP URG flag
  -R           TCP RST flag

Scanning:
  --scan ports    Scan port list
  -p port         Destination port
  +p              Increment port each packet
  --traceroute    Traceroute mode

Timing:
  -c count        Stop after N packets
  -i delay        Wait interval between packets
  --fast          Alias for -i u10000 (10 pps)
  --flood         Send as fast as possible

Spoofing:
  -a addr         Spoof source address
  --rand-source   Random source IP per packet

Data:
  -d size         Data size (bytes)
  -E file         Data from file
  --sign signature  Add signature

Output:
  -V              Verbose
  -q              Quiet
  -n              Numeric output only