Escanear con Puertos Personalizados en Nmap

NmapBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá a escanear puertos personalizados utilizando Nmap, una herramienta de escaneo de red poderosa. El laboratorio se centra en especificar los puertos objetivo para el escaneo, combinar el escaneo de puertos personalizados con los escaneos SYN para aumentar la eficiencia y guardar los resultados del escaneo para un análisis posterior.

Comenzará escanando puertos específicos como 1000 y 2000 en localhost (127.0.0.1) utilizando la opción -p. Luego, combinará esto con un escaneo SYN (-sS) para escanear un rango de puertos, como 1000-2000. El laboratorio también aborda la adición de detalle con la opción -v y la guardado de los resultados del escaneo en un archivo utilizando la opción -oN. Finalmente, revisará los resultados guardados y los comparará con un escaneo de los puertos más utilizados.

Escanear puertos personalizados con nmap -p 1000,2000 192.168.1.1

En este paso, aprenderemos a escanear puertos específicos en una máquina objetivo utilizando Nmap. Nmap es una herramienta de escaneo de red poderosa que se utiliza para descubrir hosts y servicios en una red informática enviando paquetes y analizando las respuestas. Por defecto, Nmap escanea un conjunto de puertos bien conocidos. Sin embargo, se puede personalizar el escaneo para que apunte a puertos específicos de interés.

Para escanear puertos personalizados, se puede utilizar la opción -p seguida de una lista separada por comas de números de puerto o un rango de puertos.

Comencemos escanando los puertos 1000 y 2000 en la dirección IP objetivo 192.168.1.1. Dado que este es un entorno de laboratorio, usaremos 127.0.0.1 (localhost) como objetivo para fines de demostración. Esto significa que escanearemos la máquina en la que estamos trabajando actualmente.

Abra su terminal Xfce y ejecute el siguiente comando:

nmap -p 1000,2000 127.0.0.1

Este comando le dice a Nmap que escanee los puertos 1000 y 2000 en el localhost (127.0.0.1).

Debería ver una salida similar a esta:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000082s latency).

PORT     STATE  SERVICE
1000/tcp closed unknown
2000/tcp closed cisco-sccp

Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

La salida muestra el estado de cada puerto escaneado. En este ejemplo, ambos puertos están cerrados. Si un servicio estuviera en ejecución en cualquiera de estos puertos, el estado probablemente mostraría como open.

Ahora, intentemos escanear un rango de puertos.

Combinar con un escaneo SYN usando nmap -sS -p 1000-2000 127.0.0.1

En este paso, combinaremos el escaneo de puertos personalizados con un escaneo SYN. Un escaneo SYN, también conocido como escaneo semi-abierto, es un tipo de escaneo de Nmap que envía paquetes SYN a la máquina objetivo pero no completa la conexión TCP. Esta técnica es más rápida y menos detectable que un escaneo de conexión TCP completo.

La opción -sS en Nmap especifica un escaneo SYN. Usaremos esta opción junto con la opción -p para escanear un rango específico de puertos.

Abra su terminal Xfce y ejecute el siguiente comando:

sudo nmap -sS -p 1000-2000 127.0.0.1

Este comando le dice a Nmap que realice un escaneo SYN en los puertos 1000 a 2000 en el localhost (127.0.0.1). Necesitará privilegios de sudo para realizar un escaneo SYN, ya que requiere enviar paquetes crudos.

Debería ver una salida similar a esta:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000079s latency).
Not shown: 999 closed ports
PORT     STATE SERVICE
1000/tcp open  iss-realsecure

Nmap done: 1 IP address (1 host up) scanned in 0.25 seconds

La salida muestra el estado de cada puerto escaneado dentro del rango especificado. En este ejemplo, el puerto 1000 está abierto y ejecutando el servicio iss-realsecure, mientras que los otros 999 puertos están cerrados. El mensaje "Not shown: 999 closed ports" indica que Nmap está suprimiendo la visualización de los puertos cerrados para reducir el desorden.

Agregar detalle con nmap -v -p 1000,2000 192.168.1.1

En este paso, agregaremos detalle a nuestro escaneo de Nmap. El detalle aumenta la cantidad de información que Nmap proporciona durante el escaneo. Esto puede ser útil para entender lo que está haciendo Nmap y para solucionar cualquier problema.

La opción -v en Nmap habilita el modo detallado. Usar -v una vez aumenta el nivel de detalle. Puede usar -vv o incluso -vvv para una salida aún más detallada.

Abra su terminal Xfce y ejecute el siguiente comando:

nmap -v -p 1000,2000 127.0.0.1

Este comando le dice a Nmap que escanee los puertos 1000 y 2000 en el localhost (127.0.0.1) y que proporcione una salida detallada.

Debería ver una salida similar a esta (la salida exacta puede variar):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
Initiating Ping Scan at 10:10
Scanning localhost (127.0.0.1) [4 ports]
Completed Ping Scan at 10:10, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 10:10
Completed Parallel DNS resolution of 1 host. at 10:10, 0.00s elapsed
Initiating SYN Stealth Scan at 10:10
Scanning localhost (127.0.0.1) [2 ports]
Discovered open port 1000/tcp on 127.0.0.1
Completed SYN Stealth Scan at 10:10, 0.06s elapsed (2 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000079s latency).

PORT     STATE SERVICE
1000/tcp open  iss-realsecure
2000/tcp closed cisco-sccp

Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

Observe la información adicional proporcionada por Nmap, como la hora de inicio del escaneo, el tipo de escaneo que se está realizando y el tiempo transcurrido. Esta salida detallada puede ser muy útil para entender el proceso de escaneo e identificar posibles problemas.

Guardar un escaneo de puertos personalizado con nmap -p 1000-2000 -oN custom_ports.txt 127.0.0.1

En este paso, guardaremos los resultados de nuestro escaneo de puertos personalizado en un archivo. Esto es útil para un análisis posterior o para compartir los resultados con otros.

La opción -oN en Nmap especifica que la salida debe guardarse en formato normal en el archivo especificado.

Abra su terminal Xfce y ejecute el siguiente comando:

nmap -p 1000-2000 -oN custom_ports.txt 127.0.0.1

Este comando le dice a Nmap que escanée los puertos 1000 a 2000 en el localhost (127.0.0.1) y que guarde los resultados en formato normal en un archivo llamado custom_ports.txt en su directorio actual (~/proyecto).

Después de que se complete el escaneo, puede ver el contenido del archivo usando el comando cat:

cat custom_ports.txt

Debería ver los resultados del escaneo de Nmap en la terminal, similar a lo que vería si ejecutara el escaneo sin la opción -oN. La diferencia es que ahora los resultados también se guardan en el archivo custom_ports.txt.

La salida se verá así:

## Nmap 7.80 scan initiated Fri Oct 27 10:15:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000079s latency).
Not shown: 999 closed ports
PORT     STATE SERVICE
1000/tcp open  iss-realsecure

## Nmap done at Fri Oct 27 10:15:00 2023 -- 1 IP address (1 host up) scanned in 0.25 seconds

Revisar los resultados de los puertos personalizados en la terminal Xfce

En este paso, revisaremos los resultados del escaneo de puertos personalizado que guardamos en el archivo custom_ports.txt en el paso anterior. Usaremos el comando cat para mostrar el contenido del archivo en la terminal Xfce.

Abra su terminal Xfce y ejecute el siguiente comando:

cat custom_ports.txt

Este comando mostrará el contenido del archivo custom_ports.txt en la terminal. Debería ver los resultados del escaneo de Nmap, incluyendo los puertos abiertos y cerrados que se encontraron durante el escaneo.

La salida se verá así:

## Nmap 7.80 scan initiated Fri Oct 27 10:15:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000079s latency).
Not shown: 999 closed ports
PORT     STATE SERVICE
1000/tcp open  iss-realsecure

## Nmap done at Fri Oct 27 10:15:00 2023 -- 1 IP address (1 host up) scanned in 0.25 seconds

Examine la salida para identificar los puertos abiertos. En este ejemplo, el puerto 1000 está abierto. La columna "SERVICE" ofrece una pista sobre el servicio que podría estar ejecutándose en ese puerto. En este caso, sugiere "iss-realsecure".

También puede usar otras herramientas de línea de comandos como grep para filtrar los resultados y encontrar información específica. Por ejemplo, para encontrar todas las líneas que contengan la palabra "open", puede usar el siguiente comando:

grep open custom_ports.txt

Esto solo mostrará las líneas de custom_ports.txt que contengan la palabra "open".

1000/tcp open  iss-realsecure

Esto le permite identificar rápidamente los puertos abiertos a partir de los resultados del escaneo.

Comparar con un escaneo de los puertos más comunes en la terminal Xfce

En este paso, realizaremos un escaneo de los 1000 puertos más comunes y compararemos los resultados con nuestro escaneo de puertos personalizado anterior. Esto nos ayudará a entender si los servicios que se ejecutan en los puertos personalizados también se ejecutan en los puertos comúnmente utilizados.

Primero, ejecute un escaneo de los 1000 primeros puertos en el localhost (127.0.0.1) usando el siguiente comando:

nmap -F 127.0.0.1

La opción -F le dice a Nmap que solo escanée los puertos enumerados en el archivo nmap-services, que contiene una lista de los puertos más comunes. Esto es equivalente a escanear los primeros 100 puertos. Para escanear los primeros 1000 puertos, puede usar la opción --top-ports 1000. Sin embargo, para esta práctica, nos quedaremos con la opción -F para un escaneo más rápido.

La salida se verá así:

Starting Nmap 7.80 ( https://nmap.org ) at Fri Oct 27 10:20:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000079s latency).
Not shown: 97 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http

Nmap done: 1 IP address (1 host up) scanned in 0.25 seconds

Ahora, comparemos estos resultados con los resultados de nuestro escaneo de puertos personalizado en custom_ports.txt. Sabemos del paso anterior que el puerto 1000 estaba abierto. Veamos si el escaneo de los puertos más comunes también encontró que el puerto 1000 estaba abierto.

Puede usar el comando grep para buscar el puerto 1000 en la salida del escaneo de los puertos más comunes. Dado que la salida se imprime directamente en la terminal, podemos encadenar la salida a grep:

nmap -F 127.0.0.1 | grep 1000

Si el comando devuelve alguna salida, significa que el puerto 1000 se encontró en el escaneo de los puertos más comunes. Si no devuelve ninguna salida, significa que el puerto 1000 no está entre los puertos más comunes.

En este caso, es probable que no vea ninguna salida, porque el puerto 1000 no es un puerto común. Esto demuestra la diferencia entre escanear puertos comunes y escanear puertos personalizados. Escanear puertos comunes es útil para identificar rápidamente servicios bien conocidos, mientras que escanear puertos personalizados es útil para encontrar servicios menos comunes o intencionalmente ocultos.

Resumen

En esta práctica, aprendimos cómo escanear puertos específicos en una máquina objetivo utilizando la opción -p de Nmap, especificando puertos individuales o un rango. Practicamos escanear los puertos 1000 y 2000, y luego un rango de 1000 a 2000, utilizando el localhost (127.0.0.1) como objetivo.

Además, combinamos el escaneo de puertos personalizados con un escaneo SYN utilizando la opción -sS, lo que permite un escaneo más rápido y menos detectable del rango de puertos especificado. La práctica demostró cómo enfocar los puertos específicos de interés y analizar los resultados del escaneo para determinar el estado de cada puerto.