Ping UDP (-PU)

Como su nombre lo indica hace uso del protocolo UDP para tratar de buscar algún tipo de respuesta en el destino, como ya sabemos este es un protocolo que no es orientado a la conexión, esto quiere decir que no envía acuses de recibo por cada paquete cuando se recibe en el destino, la única manera de que nos sea útil en este caso, es que el puerto al que estemos tratando de llegar este cerrado de manera que el objetivo nos envíe un paquete ICMP Destination unreachable (Port unreachable) revelando de esta manera su presencia den la red

# nmap -sn -PU --send-ip -n  192.168.1.254

Las opciones anteriores se usan al igual que en los tipos de ping anteriores, para asegurar el comportamiento buscado de Nmap, miremos ahora la captura de wireshark:

1 0.000000  192.168.1.6    192.168.1.254  UDP  42  Sour...  Destination port: 40125
2 0.001147  192.168.1.254  192.168.1.6    ICMP 70  Destination unreachable ...

Se puede observar que por defecto el paquete UDP se envía al puerto 40125, éste es un puerto alto en el cual es muy poco probable que algún sistema esté escuchando, mejorando las posibilidades de obtener el segundo paquete ICMP que nos revele la presencia del host destino en la red. Si el puerto está abierto el destino no enviará ninguna respuesta dada la naturaleza del protocolo UDP. Se pueden indicar otros puertos: -PU21,53,80.

Ping SCTP INIT (-PY)

SCTP es un protocolo relativamente nuevo de capa 4, Nmap envía un paquete SCTP Init (primer paso del four-way-handshake) intentando así de establecer una asociación, si el puerto está cerrado se recibirá un paquete SCTP Abort, en caso de estar abierto se recibe un SCTP Init-ACK. Revelando en ambos casos la presencia del host en la red.

# nmap -sn -PY --send-ip -n  192.168.1.254
1 0.000000  192.168.1.6  192.168.1.254  SCTP  66  INIT
2 1.001028  192.168.1.6  192.168.1.254  SCTP  66  INIT

Aunque ya sebemos que el host destino se encuentra activo, no obtenemos ninguna respuesta de éste siendo no visible para Nmap, esto sucede ya que mi router no está ni negando ni aprobando el intento de asociación, lo que nos puede llevar a pensar que mi precario router no tiene implementado en su stack de protocolos el SCTP.

Ping IP Protocol (-PO)

Con este tipo de ping indicamos que tipo de protocolo basado en IP queremos usar, recordemos que la cabecera de un paquete IP hay un campo que indica a que protocolo de capa superior se debe entregar el paquete, podemos encontrar una lista completa de los números de protocolos en la página de IANA. De tal modo que si usamos los números 1,6 correspondientes a ICMP, TCP respectivamente:

# nmap -sn -n -PO1,6 --send-ip 192.168.1.254

Nmap realizará dos tipos de ping, un Ping ICMP Echo (-PE) y un Ping ACK(-PA) descritos anteriormente, lo podemos comprobar con la captura:

1  0.000000000  192.168.1.6   192.168.1.254   ICMP  42  Echo (ping) request ...
2  0.000032000  192.168.1.6   192.168.1.254   TCP   54  62754 > 62754 [ACK] ...
3  0.003412000  192.168.1.254 192.168.1.6     ICMP  42  Echo (ping) reply ...
4  0.004111000  192.168.1.254 192.168.1.6     TCP   54  62754 > 62754 [RST] ...

Ya solo queda jugar con las diferentes combinaciones posibles. Recordar también que este tipo de ping sólo puede ser ejecutado como usuario root.

Conclusiones

Para terminar esta parte de Host Discovery unas cuantas conclusiones:

  • Si vamos a realizar un ping basado en IP (PS, PA, PE, PP, PM) y el objetivo está ubicado en nuestra misma red local, debemos agregar la opción –send-ip para forzar que Nmap no use el Ping ARP. Además usar –send-ip junto con -PR evitará que se envíen las peticiones ARP correspondientes y si no se usa otro tipo de técnica de descubrimiento no se enviará ningún paquete por parte de Nmap, por ejemplo de la siguiente manera Nmap no generará ningún paquete:
# nmap -sn -n -PR --send-ip 192.168.1.254
  • Dentro de nuestra red local el Ping ARP bastará para descubrir los host activos, por su rapidez y precisión, además: ¿Qué host no responde una petición ARP Request?
  • Creo que es mejor ejecutar siempre Nmap como root para esperar siempre el comportamiento y los resultados esperados.