TCP Connect Scan (-sT)

Es muy similar al escaneo TCP SYN pero se realiza un conexión TCP completa, además de que no se necesita tener privilegios de administrador. Ejemplo:

# nmap -Pn -n -sT -p T:80 --reason 192.168.1.254

Este tipo de escaneo es menos eficiente que el anterior ya que se necesitan más paquetes para obtener las misma información:

Starting Nmap 6.01 ( http://nmap.org ) ...
Nmap scan report for 192.168.1.254
Host is up, received user-set (0.0057s latency).
PORT   STATE SERVICE REASON
80/tcp open  http    syn-ack
 
Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds

Nmap reporta que el puerto está abierto ya que se ha recibido un paquete TCP SYN/ACK igual que sucedía con el método anterior, pero con la diferencia importante y como habíamos dicho antes, se realiza un conexión TCP completa como podemos ver en la captura de Wireshark:

1 0.000000   192.168.1.7     192.168.1.254   TCP   74   49933 > http [SYN] ...
2 0.005990   192.168.1.254   192.168.1.7     TCP   74   http > 49933 [SYN, ACK] ...
3 0.006057   192.168.1.7     192.168.1.254   TCP   66   49933 > http [ACK] ...
4 0.006197   192.168.1.7     192.168.1.254   TCP   66   49933 > http [RST, ACK] ...

En los paquetes 1,2,3 se realiza la conexión TCP completa para luego en el paquete 4 dar por terminada la conexión.

TCP ACK Scan (-sA)

Este tipo de escaneo es un poco diferente, se envía un paquete TCP ACK para buscar una respuesta TCP RST. Esto se hace para verificar que se puede llegar al puerto indicado en el objetivo, es decir, que el puerto no se encuentra filtrado por algún dispositivo de red a lo largo del camino. Debido a esto los puertos se clasifican únicamente como filtered/unfiltered, queriendo decir esto que se puede o no se puede llegar al puerto, pero no se puede concluir si el puerto está abierto o cerrado. Ejemplo:

# nmap -Pn -n -sA -p T:80 --reason 192.168.1.254
1 0.019038 192.168.1.7     92.168.1.254   TCP  54   40758 > http [ACK] ...
2 0.021527 192.168.1.254   192.168.1.7    TCP  54   http > 40758 [RST] ...

Gracias al escaneo de la técnica anterior (TCP Connect Scan) sabemos que el puerto 80 se encuentra abierto, pero cuando verificamos con el TCP ACK Scan se clasifica como unfiltered, es decir que podemos llegar a el:

Starting Nmap 6.01 ( http://nmap.org ) ...
Nmap scan report for 192.168.1.254
Host is up, received arp-response (0.0048s latency).
PORT   STATE      SERVICE REASON
80/tcp unfiltered http    reset
MAC Address: ...
 
Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds

Custom TCP scan (–scanflags)

Aunque apenas estoy en el aprendizaje básico de Namp no sobra mencionar esta técnica que es más avanzada, con ella podemos generar los paquetes TCP con las flags que necesitemos activadas. Simplemente mencionaremos un ejemplo y mediante esta técnica vamos a realizar un TCP ACK Scan:

# nmap -Pn -n --scanflags ACK -p T:80 --reason 192.168.1.254
Starting Nmap 6.01 ...
Nmap scan report for 192.168.1.254
Host is up, received arp-response (0.0049s latency).
PORT   STATE  SERVICE REASON
80/tcp closed http    reset
MAC Address: ...
 
Nmap done: 1 IP address (1 host up) scanned in 0.17 seconds

Esta es una técnica que debemos usar con cuidado porque como podemor ver en el reporte de nmap nos dice que el puerto está cerrado y ya sabemos que esto es errado, esto sucedió porque se envió un paquete TCP ACK que como sabemos será respondido con un TCP RST, aquí lo importante es entender que Nmap está interpretando la respuesta como si se hubiera usado un TCP SYN Scan, técnica en la cual se reporta como cerrado un puerto si se recibe dicho paquete, para que el reporte sea adecuado a lo que queríamos realizar se le debe indicar que interprete el resultado como si se realizara un TCP ACK Scan, que era lo deseado.

# nmap -Pn -n -sA --scanflags ACK -p T:80 --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.0051s latency).
PORT   STATE      SERVICE REASON
80/tcp unfiltered http    reset
MAC Address: ...
 
Nmap done: 1 IP address (1 host up) scanned in 0.28 seconds

Es importante resaltar que en este caso la opción -sA solamente cumple la función de indicar a Nmap cómo interpretar los resultados del escaneo, la generación del paquete está a cargo de la opción –scanflags y de las flags que le indiquemos.