Ampliar tus conocimientos de escaneo
Ahora que has comprendido los conceptos básicos del escaneo TCP Connect, es hora de llevar tus conocimientos al siguiente nivel. En esta sección, aprenderemos cómo escanear múltiples puertos y cómo interpretar los resultados. Esto te ayudará a obtener una visión más completa de los servicios de red que se ejecutan en un sistema objetivo.
Escanear puertos comunes
Comencemos escaneando los puertos más comunes en tu máquina local, también conocida como localhost. Estos puertos comunes suelen ser utilizados por servicios de red bien conocidos.
nmap -sT localhost --top-ports 10 > /home/labex/project/common_ports_scan.txt
En este comando, la opción -sT
le dice a Nmap que realice un escaneo TCP Connect. localhost
especifica el objetivo, que es tu propia máquina. La opción --top-ports 10
instruye a Nmap a escanear los 10 puertos más utilizados. El símbolo >
redirige la salida del escaneo a un archivo llamado common_ports_scan.txt
en el directorio /home/labex/project
.
Ahora, veamos los resultados de este escaneo:
cat /home/labex/project/common_ports_scan.txt
El comando cat
se utiliza para mostrar el contenido de un archivo. Cuando ejecutes este comando, verás una lista de puertos. Por ejemplo, el puerto 21 se utiliza para FTP (Protocolo de Transferencia de Archivos), el puerto 22 para SSH (Secure Shell), el puerto 23 para Telnet, el puerto 25 para SMTP (Protocolo Simple de Transferencia de Correo) y el puerto 80 para HTTP (Protocolo de Transferencia de Hipertexto). En tu sistema, es probable que la mayoría de estos puertos estén cerrados, a menos que tengas servicios específicos en funcionamiento. Por ejemplo, si nuestro servidor HTTP en el puerto 8080 está entre los 10 puertos principales, se mostrará como abierto.
Escanear un rango de puertos
Además de escanear puertos comunes, también puedes escanear un rango específico de puertos. Vamos a escanear los puertos del 8000 al 8100 en tu localhost.
nmap -sT localhost -p 8000-8100 > /home/labex/project/port_range_scan.txt
Aquí, la opción -p 8000 - 8100
le dice a Nmap que escanee los puertos en el rango del 8000 al 8100. La salida de este escaneo se redirige a un archivo llamado port_range_scan.txt
en el directorio /home/labex/project
.
Para ver los resultados de este escaneo:
cat /home/labex/project/port_range_scan.txt
En la salida, deberías ver que el puerto 8080 (si está dentro del rango escaneado) está abierto, mientras que los otros puertos del rango probablemente estén cerrados.
Combinar técnicas
Vamos a combinar las técnicas que hemos aprendido hasta ahora. Realizaremos un escaneo TCP Connect y también intentaremos detectar los servicios que se ejecutan en los puertos en el rango del 8000 al 8100.
nmap -sT -sV localhost -p 8000-8100 > /home/labex/project/combined_scan.txt
La opción -sV
se utiliza para habilitar la detección de servicios. Esto significa que Nmap no solo te dirá si un puerto está abierto o cerrado, sino que también intentará identificar el servicio que se ejecuta en los puertos abiertos. La salida de este escaneo combinado se guarda en el archivo combined_scan.txt
en el directorio /home/labex/project
.
Para comprobar los resultados:
cat /home/labex/project/combined_scan.txt
Este escaneo proporciona la información más detallada hasta ahora. Muestra el estado de cada puerto en el rango especificado e intenta identificar los servicios que se ejecutan en los puertos abiertos.
Limpieza
Antes de terminar este laboratorio, necesitamos limpiar deteniendo el servidor HTTP de Python que hemos estado utilizando. Primero, necesitamos encontrar el ID de proceso (PID) del servidor.
ps aux | grep "python3 -m http.server 8080"
El comando ps aux
lista todos los procesos en ejecución en tu sistema. El símbolo |
es una tubería que toma la salida del comando ps aux
y la pasa al comando grep
. El comando grep
luego busca la línea que contiene el texto "python3 -m http.server 8080"
, que es el comando utilizado para iniciar el servidor HTTP de Python.
Busca la línea que muestra el proceso del servidor HTTP de Python. La segunda columna de esta línea contiene el ID de proceso (PID). Una vez que hayas anotado el PID, puedes usar el comando kill
para detener el proceso.
kill <PID>
Reemplaza <PID>
con el ID de proceso real que encontraste. Por ejemplo, si el PID es 1234, ejecutarías:
kill 1234