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/firewalkOverview
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