Firewalking es una técnica de auditoría que consiste en identificar y testear vulnerabilidades en nuestros firewalls. Con ella podemos crear mapas o tener una idea clara de lo que existe detrás de los routers o firewalls. Tan es así que podemos llegar a enviar paquetes a hosts que se encuentran detrás de nuestro firewall, descubriendo los servicios que se están prestando y los puertos que se encuentran abiertos.
La metodología consiste en enviar un paquete TCP o UDP con un TTL preestablecido. Si éste pasa el gateway, es modificado y su TTL decrece, de tal forma que si el resultado es cero el paquete será rechazado, enviándose un mensaje a la máquina remota (ICMP Tipo 11, Código 0) que informará que el paquete nunca llegó a destino. Este método sólo funciona en firewalls y routers de CAPA 3, que son corta fuegos de enrutamiento de paquetes.
Existe una herramienta desarrollada por Mike Schiffman que se basa en la aplicación traceroute y funciona enviando paquetes TCP o UDP con un TTL fijado para que expire en el primer salto luego del firewall: si el dispositivo permite el tráfico enviará los paquetes a destino con un TTL igual a cero. La ventaja es que el paquete será devuelto al origen (o atacante) como un paquete con tiempo excedido y, de este modo, nos daremos cuenta de que el puerto está abierto. Si el dispositivo no permite el tráfico no vamos a recibir ningún paquete de vuelta, por lo tanto, se asume que el puerto está cerrado.
Ejemplo práctico
firewalk -n -P135-140 -pTCP 10.10.0.5 10.10.0.20
Firewalking through 10.10.0.5 (towards 10.10.0.20) with a maximum of 25
hops.
Ramping up hopcounts to binding host...
probe: 1 TTL: 1 port 33434: <response from> [10.10.0.4]
probe: 2 TTL: 2 port 33434: <response from> [10.10.0.6]
probe: 3 TTL: 3 port 33434: <response from> [10.10.0.8]
probe: 4 TTL: 4 port 33434: <response from> [10.10.0.10]
probe: 5 TTL: 5 port 33434: Bound scan: 5 hops <Gateway at 5 hops> [10.10.0.10]
port 135: open
port 136: *
port 137: open
port 138: *
port 139: open
port 140: *
