← retour aux outils back to tools

# 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