UDP scan (-sU)

Escanear estos puertos puede ralentizar el escaneo de una manera dramática debido a la naturaleza de UDP. Si se recibe un paquete ICMP port unreachable quiere decir que el puerto está cerrado, debido a este comportamiento es que el rendimiento del escaneo puedo reducirse de manera notoria debido a varios factores:

  • Si no se recibe el paquete anterior, Nmap retransmitirá el paquete inicial para asegurarse que la respuesta no se perdió.
  • Inclusive cuando el puerto está cerrado y debería recibir el paquete ICMP, algunos sistemas limitan el envío de esta respuesta. En la documentación de Nmap nos colocan como ejemplo el kernel linux 2.4.20 que limita el envío de estas respuestas a 1 paquete por segundo.
  • Nmap detecta estos límites y reduce la velocidad de envío de paquetes UDP que terminarían siendo inútiles para nuestro propósito. Entonces si nos encontramos con el caso anterior y estamos escaneando los 65535 puertos UDP, nos demoraríamos poco más de 18 horas en terminarlo.

Cuando ocasionalmente se recibe una respuesta de algún servicio el puerto es clasificado como abierto, pero generalmente y debido a que la mayoría de servicios que utilizan UDP no envían respuestas un escaneo a un puerto UDP será catalogado como abierto/filtrado ya que se puede interpretar que el servicio está escuchando (y por eso no envía respuesta) o que algún dispositivo de red está haciendo drop a estos paquetes. Ejemplo:

# nmap -Pn -sU -p U:53,161,51000 --reason 192.168.1.254
Starting Nmap 6.01 ( http://nmap.org ) ...
Nmap scan report for 192.168.1.254
Host is up, received arp-response (0.0062s latency).
PORT      STATE         SERVICE REASON
53/udp    open|filtered domain  no-response
161/udp   open          snmp    udp-response
51000/udp closed        unknown port-unreach
MAC Address: ...

El ejemplo lo realicé con 3 puertos para mirar lo que explicaba anteriormente. El puerto 53 no recibe respuesta, el 161 recibe respuesta y con el puerto 51000 recibimos el paquete ICMP port unreachable.

IP protocol scan (-sO)

Este no es propiamente un escaneo de puerto, se usa para determinar que protocolos que usan IP (TCP, UDP, ICMP, etc) están soportados por el objetivo, la manera de indicarlos es usando los números asignados por IANA (1) (2). Nmap hace esto cambiando entre cada paquete el número de protocolo en el correspondiente campo de la cabecera IP. Ejemplo:

nmap -Pn -sO -p 1,6,17,132 --reason 192.168.1.254

Starting Nmap 6.01 ( http://nmap.org ) ...
Nmap scan report for 192.168.1.254
Host is up, received arp-response (0.0058s latency).
PROTOCOL STATE         SERVICE REASON
1        open          icmp    port-unreach
6        open          tcp     proto-response
17       open          udp     port-unreach
132      open|filtered sctp    no-response
MAC Address: ...

Ya que no es un escaneo de puerto como tal, debemos analizar los resultados un poco diferente, en el reporte el open quiere decir que se encuentra implementado el protocolo (ICMP, TCP, UDP) y que no obtuvo respuesta del SCTP, y no puede determinar si está o no implementado (open|filtered). Cuando un protocolo no está soportado por el objetivo se recibe un paquete ICMP Protocol unreachable, con la excepción de ICMP ya que el recibir este paquete revela la presencia de éste en el objetivo.

Conclusiones

  • Los reportes de Nmap están basados en cómo ve la herramienta el puerto debido a dispositivos de red que alteran el resultado, pero puede no representar el estado real del puerto en el objetivo.
  • Solamente se puede usar un tipo de técnica de escaneo de puertos con la excepción de UDP scan, que puede ser usado con otras técnicas que hacen uso de TCP. Ejemplo:

    # nmap -Pn -n -sS -sU -p T:80,21,443,U:53,68 --reason 192.168.1.254
    

    Se indica un escaneo TCP SYN scan para los puertos TCP 80, 21, 443 y se especifican los puertos UDP 53 y 68 para el UDP Scan. De esta manera obtenemos el informe para ambos tipos de puertos:

    Starting Nmap 6.01 ( http://nmap.org ) ...
    Nmap scan report for 192.168.1.254
    Host is up, received arp-response (0.0040s latency).
    PORT    STATE         SERVICE REASON
    21/tcp  closed        ftp     reset
    80/tcp  open          http    syn-ack
    443/tcp open          https   syn-ack
    53/udp  open|filtered domain  no-response
    68/udp  open|filtered dhcpc   no-response
    MAC Address: ...
    
  • Estos son las técnicas de Port Scanning básicas, pero Nmap cuenta con otras más avanzadas como lo son: TCP Window scan, TCP Null scan, TCP FIN scan, TCP Xmas scan, entre otras que no abordaremos en este momento.