Comprender y realizar un escaneo SYN de Nmap
Ahora que tenemos un servicio objetivo funcionando, es hora de profundizar en los escaneos SYN. Los escaneos SYN son una parte crucial de las pruebas de seguridad de red, ya que nos permiten descubrir los puertos abiertos en un sistema objetivo. En esta sección, aprenderemos cómo funcionan los escaneos SYN y luego utilizaremos Nmap, una poderosa herramienta de escaneo de red, para realizar un escaneo SYN contra nuestro servidor HTTP.
¿Qué es un escaneo SYN?
Antes de comenzar el escaneo real, es esencial entender el mecanismo subyacente de un escaneo SYN. Para ello, primero veamos cómo se establece una conexión TCP normal.
Conexión TCP normal
En una conexión TCP normal, se lleva a cabo un handshake de tres vías. Este es un proceso fundamental para establecer una conexión confiable entre un cliente y un servidor:
- Paso 1: Paquete SYN desde el cliente
El cliente inicia la conexión enviando un paquete SYN (sincronizar) al servidor. Este paquete es como una solicitud para iniciar una conversación, preguntando al servidor si está listo para comunicarse.
- Paso 2: Paquete SYN - ACK desde el servidor
Al recibir el paquete SYN, si el servidor está disponible y dispuesto a comunicarse, responde con un paquete SYN - ACK (sincronizar - reconocer). Este paquete reconoce la solicitud del cliente y también indica que el servidor está listo para iniciar la conexión.
- Paso 3: Paquete ACK desde el cliente
Finalmente, el cliente envía un paquete ACK (reconocer) para completar el handshake de tres vías. Después de este paso, la conexión TCP está completamente establecida y se puede intercambiar datos entre el cliente y el servidor.
Proceso de escaneo SYN
Un escaneo SYN, por otro lado, tiene un enfoque diferente:
- Paso 1: Paquete SYN desde Nmap
Nmap, nuestra herramienta de escaneo, envía el paquete SYN inicial al puerto objetivo. Esto es similar al primer paso en una conexión TCP normal.
- Paso 2: Respuesta SYN - ACK desde el objetivo
Si el puerto objetivo está abierto, responderá con un paquete SYN - ACK, igual que en una conexión TCP normal.
- Paso 3: Terminación de la conexión por Nmap
En lugar de enviar el último paquete ACK para completar el handshake, Nmap termina la conexión. Esto hace que el escaneo sea menos detectable porque nunca se establece la conexión completa. Además, es más rápido que un escaneo de conexión completo, que completa todo el handshake de tres vías para cada puerto que se está escaneando.
Realización del escaneo SYN
Paso 1: Navegar al directorio del proyecto
Primero, debemos asegurarnos de que estamos en el directorio correcto del proyecto. Esto es importante porque guardaremos los resultados del escaneo en un archivo dentro de este directorio. Para navegar al directorio del proyecto, ejecuta el siguiente comando en tu terminal:
cd /home/labex/project
Paso 2: Ejecutar el escaneo SYN
Ahora, estamos listos para realizar el escaneo SYN utilizando Nmap. Ejecuta el siguiente comando en tu terminal:
sudo nmap -sS localhost -p 8080 > /home/labex/project/nmap-syn-scan-results.txt
Desglosemos este comando para entender lo que hace cada parte:
sudo: Este comando se utiliza para ejecutar el comando siguiente con privilegios elevados. Los escaneos SYN requieren privilegios de root porque implican enviar paquetes de red sin procesar, por lo que necesitamos usar sudo para ejecutar el comando nmap.
nmap: Esta es la herramienta de escaneo de red que estamos utilizando. Nmap se utiliza ampliamente para la exploración de redes y la auditoría de seguridad.
-sS: Esta opción especifica que queremos realizar un escaneo SYN.
localhost: Este es el objetivo de nuestro escaneo. En este caso, estamos escaneando nuestra propia máquina.
-p 8080: Esta opción le dice a Nmap que solo escanee el puerto 8080. Estamos interesados en comprobar si este puerto específico está abierto en nuestra máquina local.
> /home/labex/project/nmap-syn-scan-results.txt: Esta parte del comando redirige la salida del escaneo de nmap a un archivo llamado nmap - syn - scan - results.txt en el directorio del proyecto. De esta manera, podemos revisar los resultados más tarde.
Paso 3: Ver los resultados del escaneo
Después de que el escaneo se complete, podemos ver los resultados. Ejecuta el siguiente comando en tu terminal:
cat /home/labex/project/nmap-syn-scan-results.txt
Deberías ver una salida similar a la siguiente:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-18 12:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
Esta salida proporciona información valiosa. Confirma que el puerto 8080 está abierto en tu máquina local y que está ejecutando un servicio HTTP. Esta información se puede utilizar para un análisis de seguridad adicional o para solucionar problemas de red.