FIREWALK(8)
β¨ NAME β¨
okay so bestie, meet firewalk β it's an Active Reconnaissance Network Security Tool with Extreme Prejudice. yes that's the actual official name and no I will not be toning it down π
This page lives in section 8 of the System Manager's Manual, so like⦠sysadmin territory, iykyk.
π¦ SYNOPSIS π¦
firewalk [-dhinprSsTtvx] target_gateway metric
πΈ DESCRIPTION πΈ
Firewalk is an active reconnaissance network security tool that tries to figure out which layer 4 protocols a given IP forwarding device will actually pass along. fr fr, that's the whole vibe check.
The way it works: it sends out TCP or UDP packets with a TTL that's one greater than the targeted gateway. If the gateway is chill and allows the traffic, it forwards those packets to the next hop, where they expire and elicit an ICMP_TIME_EXCEEDED message. If the gateway host does not allow the traffic, it'll probably just drop the packets on the floor and you'll get absolutely nothing back. silence. ghosted. π
Now, to get the correct IP TTL that makes packets expire one hop beyond the gateway, we have to ramp up hop-counts. We do that the same way traceroute does it. Once we've got the gateway hopcount β and at that point the scan is said to be bound β we can start our scan. periodt.
It's significant to note (and this part is lowkey the main character of the whole concept) that the ultimate destination host does not have to be reached. It just needs to be somewhere downstream, on the other side of the gateway, from the scanning host. π«Ά
Want more lore on Firewalking and networking security tools in general? Go look at http://www.wiley.com/cda/product/0,,0471205443,00.html β it's giving required reading.
π COMMAND-LINE OPTIONS π
Heads up bestie: if an option takes an argument, the argument comes after the option letter, and the default is shown in parenthesis. π
-d1-65535 (34434) β Specify the initial destination port to use during the network discovery (aka TTL ramping) phase.-hβ Program help. your little rescue blanket π©Ή-iinterface_name β Specify the interface to use. Only necessary on multi-homed machines.-nβ Do not resolve IP addresses into hostnames. This saves a DNS lookup and speeds the scans (mainly during network discovery). skipping the glow-up, going straight to business β¨-P1-2000 (0) β Set a network writing pause, which may be necessary to keep the program from flooding the network.-pTCP, UDP (UDP) β Type of scan to perform.-rβ Strict RFC 793 compliance. This only comes into play when doing a TCP scan when your packets have an expire vector of one and your metric host is one hop from your gateway. Since the packets will reach their destination, they will not expire, so we look for terminal responses. For a TCP port in the listen state, we will get back aSYN|ACKwith theACKas ourSEQ + 1. However, for a closed port, the response is stack dependent. If the host is RFC compliant we will receive anRST|ACKwith theACKas ourSEQ + 1. However, if the host is not compliant (ie: microsoft) then the best we can do is inverse tuple matching (which is the default).-S1-65535,... (1-130,139,1025) β Specify the ports for the scan. Ports may be specified in ranges, delimited by dashes, and multiple ranges may be specified, delimited by commas. Omitting the terminating port number is shorthand for 65535.-s1-65535 (53) β Specify the source port for the scan (both phases).-T1-2000 (2) β Network packet reading timeout. This is the time firewalk will spend waiting for a response before timing out.-t1-25 (1) β Set the initial IP time to live (TTL) value. If a target gateway is known to be (at least) n hops from the source host, the TTL can be preloaded to facilitate a faster scan.-vβ Dump program version and exit. bye bestie π-xexpire vector (1) β The expire vector is the number of hops that the scanning probes will expire, past the gateway host. The binding hopcount is the hopcount of the gateway + the expire vector.
π COMMAND-LINE EXAMPLES π
okay so this section is justβ¦ sitting here. empty. no examples were provided in the original, so there's nothing for me to hand you β I'm not about to invent some, that's not the vibe. bestie, this one is genuinely blank. π
π CAVEATS π
also empty, bestie!! nothing written here either. I refuse to make things up. go read the rest of the page, it's all up there. π
β SEE ALSO β
traceroute(8), tracerx(8), pcap(3), libnet(3), dnet(3)
the squad. the friend group. go say hi. π«Ά
π AUTHOR π
Mike D. Schiffman <mike@infonexus.com>
π BUGS π
Please send bug reports to mike@infonexus.com β don't be shy, that's literally what the address is for. π
and that's the whole page, bestie!! π
This one comes from firewalk, dated 04.20.2002, filed under FIREWALK(8). iconic, timeless, slightly cursed. slay. π
β¨
π¦ where this page comes from
- debian bookworm: firewalk 5.0-5 Β· BSD-2-Clause
- debian trixie: firewalk 5.0-5+b1 Β· BSD-2-Clause
- ubuntu jammy: firewalk 5.0-3 Β· BSD-2-Clause
- ubuntu noble: firewalk 5.0-5build2 Β· BSD-2-Clause
- ubuntu questing: firewalk 5.0-6
- ubuntu resolute: firewalk 5.0-6build1 Β· BSD-2-Clause
- ubuntu stonking: firewalk 5.0-6build1 Β· BSD-2-Clause
- Copyright (c) 1998 - 2002 Mike D. Schiffman <mike@infonexus.com>
- Copyright (c) 1998, 1999 David E. Goldsmith <dave@infonexus.com>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms