Firewalk

Outil de reconnaissance active qui utilise le sondage basé sur le TTL pour déterminer quels protocoles et ports de couche 4 une ACL de passerelle ou un firewall laisse passer. Active reconnaissance tool that uses TTL-based probing to determine which layer-4 protocols and ports a gateway ACL or firewall will pass through.

↗ https://github.com/emonti/firewalk

Overview

Firewalk maps firewall/ACL rulesets without needing direct visibility of the rules themselves. It works by sending packets with a TTL set to expire exactly one hop past the firewall — if the packet is allowed through, the host beyond it generates an ICMP TTL-exceeded response; if blocked, no response comes back. Iterating this across ports reveals which protocols/ports the firewall passes, useful for mapping filtering policy during network penetration tests.

Common Usage

Basic firewalk against a target behind a known gateway

firewalk -i eth0 -p tcp <gateway_ip> <target_ip>

Scan a specific port range

firewalk -i eth0 -p tcp -S 20-1024 <gateway_ip> <target_ip>

UDP protocol scan

firewalk -i eth0 -p udp <gateway_ip> <target_ip>

Manually set the initial TTL to the gateway (auto-detected by default)

firewalk -i eth0 -T 8 -p tcp <gateway_ip> <target_ip>

Notes

  • Requires knowing (or discovering via traceroute) the IP of the gateway/firewall immediately in front of the target
  • Findings indicate implied firewall rules — combine with a full port scan behind the firewall to cross-check reachable services
  • Results can be noisy behind stateful firewalls, load balancers, or when ICMP is filtered outbound from the target network — verify results manually where possible
Help / Man page
firewalk [options] <gateway_ip> <target_ip>

  -i IFACE       interface to send/receive packets on
  -p PROTO       protocol to probe: tcp | udp
  -S PORTRANGE   port range to scan (e.g. 20-1024)
  -T TTL         initial TTL (default: auto-detect hop count to gateway)
  -n             skip DNS resolution
  -v             verbose output
  -d N           inter-packet delay in seconds

Vue d’ensemble

Firewalk cartographie des jeux de règles firewall/ACL sans avoir besoin d’une visibilité directe sur les règles elles-mêmes. Il fonctionne en envoyant des paquets avec un TTL réglé pour expirer exactement un saut après le firewall : si le paquet passe, l’hôte situé derrière génère une réponse ICMP TTL-exceeded ; s’il est bloqué, aucune réponse ne revient. En itérant ce processus sur les ports, on révèle quels protocoles/ports le firewall laisse passer, ce qui est utile pour cartographier la politique de filtrage lors de tests d’intrusion réseau.

Utilisation courante

# Firewalk basique contre une cible derrière une passerelle connue
firewalk -i eth0 -p tcp <gateway_ip> <target_ip>

# Scanner une plage de ports spécifique
firewalk -i eth0 -p tcp -S 20-1024 <gateway_ip> <target_ip>

# Scan de protocole UDP
firewalk -i eth0 -p udp <gateway_ip> <target_ip>

# Régler manuellement le TTL initial vers la passerelle (auto-détecté par défaut)
firewalk -i eth0 -T 8 -p tcp <gateway_ip> <target_ip>

Notes

  • Nécessite de connaître (ou de découvrir via traceroute) l’IP de la passerelle/du firewall situé juste devant la cible
  • Les résultats indiquent des règles firewall implicites : combiner avec un scan de ports complet derrière le firewall pour recouper les services réellement accessibles
  • Les résultats peuvent être bruités derrière des firewalls avec état, des load balancers, ou lorsque l’ICMP sortant est filtré depuis le réseau cible : vérifier les résultats manuellement quand c’est possible
Aide / Page de manuel
firewalk [options] <gateway_ip> <target_ip>

  -i IFACE       interface to send/receive packets on
  -p PROTO       protocol to probe: tcp | udp
  -S PORTRANGE   port range to scan (e.g. 20-1024)
  -T TTL         initial TTL (default: auto-detect hop count to gateway)
  -n             skip DNS resolution
  -v             verbose output
  -d N           inter-packet delay in seconds