Introducción
Nmap (Network Mapper) es una herramienta fundamental en la seguridad y administración de redes. Este laboratorio le presenta las banderas de escaneo de Nmap, que le permiten realizar un reconocimiento de red y una evaluación de vulnerabilidades efectivos. A través de la práctica práctica, aprenderá a usar varios comandos de Nmap para descubrir hosts, escanear puertos e identificar servicios en una red. Estas habilidades son esenciales para que los administradores de red y los profesionales de la seguridad mantengan entornos de red seguros.
Instalación de Nmap y Escaneo Básico
Instalación de Nmap
Nmap no está preinstalado en la mayoría de los sistemas, por lo que nuestro primer paso es instalarlo. Abra una terminal en su entorno LabEx y ejecute los siguientes comandos:
sudo apt update
sudo apt install nmap -y
Después de que se complete la instalación, verifique que Nmap esté instalado correctamente comprobando su versión:
nmap --version
Debería ver una salida similar a esta:
Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.3 openssl-1.1.1f libssh2-1.8.0 libz-1.2.11 libpcre-8.39 libpcap-1.9.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select
Comprensión de los Conceptos Básicos de Nmap
Nmap funciona enviando paquetes especialmente diseñados a los hosts objetivo y analizando las respuestas. Esto ayuda a determinar:
- Qué hosts están disponibles en la red
- Qué servicios (puertos) están ofreciendo
- Qué sistemas operativos están ejecutando
- Qué tipo de filtros de paquetes/firewalls están en uso
La sintaxis básica de un comando Nmap es:
nmap [tipo de escaneo] [opciones] objetivo
Donde:
[tipo de escaneo]especifica el tipo de escaneo a realizar[opciones]son parámetros adicionales para personalizar el escaneoobjetivoes la dirección IP, el nombre de host o el rango de IP a escanear
Su Primer Escaneo: Escaneo del Localhost
Comencemos con un escaneo simple de su propia máquina (localhost). Ejecute:
nmap localhost
Este comando escanea los 1000 puertos TCP más comunes en su máquina local. La salida se verá similar a:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 15:30 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds
La salida muestra:
- La hora de inicio del escaneo
- El host que se está escaneando (localhost/127.0.0.1)
- Puertos abiertos y sus servicios asociados
- Tiempo de finalización del escaneo y estadísticas
Comprensión de los Resultados del Escaneo
Analicemos la salida:
PORT: Muestra el número de puerto y el protocolo (por ejemplo, 22/tcp)STATE: Indica si el puerto está abierto, cerrado o filtradoSERVICE: Muestra el servicio típicamente asociado con ese puerto
Los estados de puerto más comunes son:
open: El puerto está aceptando conexionesclosed: El puerto es accesible pero ninguna aplicación está escuchando en élfiltered: Nmap no puede determinar si el puerto está abierto porque el filtrado de paquetes está bloqueando sus sondas
Escaneo de un Puerto Específico
Para escanear un puerto específico, use la bandera -p seguida del número de puerto:
nmap -p 22 localhost
La salida se centrará solo en el puerto 22:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 15:35 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 0.01 seconds
Escaneo de un Rango de Puertos
Puede escanear un rango de puertos usando un guion:
nmap -p 20-25 localhost
Esto escanea los puertos 20 a 25:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 15:40 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
PORT STATE SERVICE
20/tcp closed ftp-data
21/tcp closed ftp
22/tcp open ssh
23/tcp closed telnet
24/tcp closed priv-mail
25/tcp closed smtp
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
Ahora ha aprendido a instalar Nmap y realizar un escaneo de puertos básico. En el siguiente paso, exploraremos técnicas de escaneo más avanzadas utilizando varias banderas de Nmap.
Explorando las Banderas de Escaneo Esenciales de Nmap
Ahora que comprende los conceptos básicos de Nmap, exploremos algunas banderas de escaneo esenciales que le darán más control e información de sus escaneos.
Escaneo TCP SYN (-sS)
El escaneo TCP SYN es el tipo de escaneo predeterminado cuando se ejecuta como root. A menudo se le llama escaneo "semiabierto" porque nunca completa las conexiones TCP. Es relativamente sigiloso y rápido.
Ejecutemos un escaneo SYN en localhost:
sudo nmap -sS localhost
La salida se verá similar a:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
Escaneo TCP Connect (-sT)
El escaneo TCP Connect es el escaneo predeterminado cuando Nmap no se ejecuta con privilegios de root. Completa el handshake TCP completo, lo que lo hace más detectable pero también más confiable en algunos casos.
nmap -sT localhost
Salida:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
Detección de Versión del Servicio (-sV)
La bandera de detección de versión le dice a Nmap que intente determinar la versión de los servicios que se ejecutan en los puertos abiertos:
nmap -sV localhost
Salida:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:10 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
631/tcp open ipp CUPS 2.3
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Nmap done: 1 IP address (1 host up) scanned in 6.41 seconds
Observe cómo la salida ahora incluye información detallada de la versión para cada servicio. Esto es extremadamente valioso para las evaluaciones de seguridad, ya que ciertas versiones pueden tener vulnerabilidades conocidas.
Detección del Sistema Operativo (-O)
La bandera de detección del sistema operativo intenta determinar el sistema operativo del objetivo:
sudo nmap -O localhost
Salida:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 0 hops
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.57 seconds
Observe que Nmap ha detectado que el sistema está ejecutando la versión del kernel de Linux 4.X o 5.X.
Combinación de Banderas para un Escaneo Completo
Puede combinar múltiples banderas para obtener resultados más completos. Por ejemplo, combinemos la detección de la versión del servicio y la detección del sistema operativo:
sudo nmap -sV -O localhost
Salida:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00015s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
631/tcp open ipp CUPS 2.3
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 0 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.23 seconds
Escaneo Agresivo (-A)
La bandera de escaneo agresivo combina varias opciones de escaneo, incluida la detección del sistema operativo, la detección de la versión, el escaneo de scripts y traceroute:
sudo nmap -A localhost
Salida (truncada para abreviar):
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:25 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp CUPS 2.3
|_http-server-header: CUPS/2.3 IPP/2.1
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
| mysql-info:
| Protocol: 10
| Version: 8.0.30-0ubuntu0.20.04.2
| Thread ID: 11
| Capabilities flags: 65535
| Some Capabilities: SupportsLoadDataLocal, Support41Auth, Speaks41ProtocolOld, IgnoreSigpipes, DontAllowDatabaseTableColumn, FoundRows, SupportsCompression, ConnectWithDatabase, LongPassword, InteractiveClient, SwitchToSSLAfterHandshake, ODBCClient, Speaks41ProtocolNew, IgnoreSpaceBeforeParenthesis, LongColumnFlag, SupportsTransactions, SupportsMultipleResults, SupportsAuthPlugins, SupportsMultipleStatments
| Status: Autocommit
| Salt: \x14\x12\x1Fjw\x182\x15\x0D\x12\x13C\x1F\x14\x0D\x07
|_ Auth Plugin Name: caching_sha2_password
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 0 hops
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 10.12 seconds
Observe la cantidad significativa de información adicional proporcionada por el escaneo agresivo, incluida la información de la clave SSH, los detalles del servidor HTTP y la información del servicio MySQL más detallada.
En este paso, ha aprendido sobre varias banderas de escaneo esenciales de Nmap y cómo combinarlas para obtener resultados más completos. En el siguiente paso, exploraremos estrategias de escaneo prácticas para diferentes escenarios.
Estrategias de Escaneo de Red y Controles de Tiempo
En este paso, aprenderemos sobre las estrategias de escaneo de red y cómo controlar el tiempo y el rendimiento de los escaneos de Nmap. Esto es crucial al escanear redes más grandes o cuando necesita ser más discreto.
Escaneo de Múltiples Hosts
Nmap puede escanear múltiples hosts de varias maneras:
Escaneo de una Lista de IPs
Puede especificar múltiples direcciones IP separadas por espacios:
nmap 127.0.0.1 127.0.0.2
Escaneo de un Rango de IP
Puede escanear un rango de direcciones IP utilizando la notación CIDR:
nmap 127.0.0.1/30
Este comando escanea de 127.0.0.0 a 127.0.0.3. La salida mostrará:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:35 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap scan report for 127.0.0.2
Host is up (0.00015s latency).
All 1000 scanned ports on 127.0.0.2 are closed
Nmap scan report for 127.0.0.3
Host is up (0.00013s latency).
All 1000 scanned ports on 127.0.0.3 are closed
Nmap done: 4 IP addresses (3 hosts up) scanned in 0.92 seconds
Opciones de Descubrimiento de Host
Escaneo Ping (-sn)
A veces, solo desea saber qué hosts están en línea sin escanear puertos. El escaneo ping es perfecto para esto:
nmap -sn 127.0.0.1/24
Este comando escaneará toda la subred 127.0.0.1/24, pero solo realizará el descubrimiento de host sin escanear puertos. Debido a la longitud de la salida, solo mostraremos un fragmento:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:40 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Nmap scan report for 127.0.0.2
Host is up (0.00013s latency).
Nmap scan report for 127.0.0.3
Host is up (0.00014s latency).
...
Nmap done: 256 IP addresses (256 hosts up) scanned in 2.34 seconds
Omitir el Descubrimiento de Host (-Pn)
A veces, los firewalls bloquean las solicitudes de ping. Para evitar esto y escanear todos los hosts independientemente de las respuestas de ping, use la bandera -Pn:
nmap -Pn localhost
Salida:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:45 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds
Controles de Tiempo y Rendimiento
Nmap proporciona varias plantillas de tiempo que ajustan varios parámetros de escaneo:
-T0: Paranoid - Muy lento, utilizado para la evasión de IDS-T1: Sneaky - Lento, utilizado para la evasión de IDS-T2: Polite - Disminuye la velocidad para consumir menos ancho de banda-T3: Normal - Predeterminado, equilibra la velocidad con la fiabilidad-T4: Aggressive - Más rápido, asume una red razonablemente rápida y confiable-T5: Insane - Muy rápido, asume una red extremadamente rápida
Probemos un escaneo agresivo:
nmap -T4 localhost
Salida:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:50 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
Observe que el escaneo se completó un poco más rápido que el escaneo predeterminado.
Formatos de Salida
Nmap puede guardar los resultados del escaneo en varios formatos para su posterior análisis o informes:
Salida Normal (-oN)
Guarde los resultados del escaneo en un formato normal en un archivo:
nmap -oN scan_results.txt localhost
Este comando guarda la salida del escaneo en scan_results.txt en el directorio actual.
Salida XML (-oX)
Guarde los resultados del escaneo en formato XML, lo cual es útil para analizar con otras herramientas:
nmap -oX scan_results.xml localhost
Todos los Formatos (-oA)
Guarde los resultados del escaneo en todos los formatos (normal, XML y grepable):
nmap -oA scan_results localhost
Esto crea tres archivos: scan_results.nmap, scan_results.xml y scan_results.gnmap.
Examinemos el contenido del archivo de salida normal:
cat scan_results.txt
Salida:
## Nmap 7.80 scan initiated Thu Sep 14 16:55:23 2023 as: nmap -oN scan_results.txt localhost
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
## Nmap done at Thu Sep 14 16:55:23 2023 -- 1 IP address (1 host up) scanned in 0.12 seconds
Estrategia de Escaneo Práctica
Combinemos lo que hemos aprendido para crear una estrategia de escaneo práctica para un escaneo completo:
sudo nmap -sS -sV -O -T4 -oA comprehensive_scan localhost
Este comando:
- Utiliza el escaneo sigiloso SYN (-sS)
- Detecta las versiones de los servicios (-sV)
- Intenta la detección del sistema operativo (-O)
- Utiliza el tiempo agresivo (-T4)
- Guarda los resultados en todos los formatos (-oA)
Salida:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
631/tcp open ipp CUPS 2.3
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 0 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.42 seconds
Ahora puede ver los resultados del escaneo completo en cualquiera de los archivos de salida:
ls comprehensive_scan.*
Salida:
comprehensive_scan.gnmap comprehensive_scan.nmap comprehensive_scan.xml
Consideraciones Éticas
Recuerde que el escaneo de red solo debe realizarse en redes que posea o para las que tenga permiso explícito para escanear. El escaneo no autorizado puede ser:
- Ilegal en muchas jurisdicciones
- Considerado un acto hostil por los administradores de red
- Potencialmente perjudicial para los servicios de red
En este entorno de laboratorio, solo hemos escaneado localhost, lo cual siempre está permitido, ya que es su propio sistema.
Ahora ha aprendido sobre diferentes estrategias de escaneo de red, controles de tiempo y formatos de salida. Tiene todo el conocimiento fundamental necesario para realizar un reconocimiento de red eficaz utilizando Nmap.
Escaneo de Scripts y Análisis de Servicios Dirigidos
En este paso, exploraremos el potente motor de scripting (NSE) de Nmap y aprenderemos a realizar análisis de servicios dirigidos. Los scripts NSE amplían la funcionalidad de Nmap al habilitar escaneos más detallados para servicios y vulnerabilidades específicos.
Introducción al Motor de Scripting de Nmap (NSE)
El Motor de Scripting de Nmap permite a los usuarios escribir y compartir scripts para automatizar una variedad de tareas de red. Nmap viene con cientos de scripts preescritos categorizados en varios grupos:
auth: Scripts relacionados con la autenticacióndefault: Scripts ejecutados por defecto con-sCdiscovery: Descubrimiento de host y servicioexploit: Intento de explotar vulnerabilidadesmalware: Detectar malware y puertas traserassafe: Scripts seguros y no intrusivosvuln: Scripts de detección de vulnerabilidades
Ejecución de Scripts Predeterminados (-sC)
La bandera -sC ejecuta el conjunto predeterminado de scripts, que generalmente son seguros y proporcionan información útil:
nmap -sC localhost
Salida:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:10 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
80/tcp open http
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp
|_http-server-header: CUPS/2.3 IPP/2.1
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql
|_mysql-info: ERROR: Script execution failed (use -d to debug)
Nmap done: 1 IP address (1 host up) scanned in 3.42 seconds
Observe cómo los scripts han proporcionado información adicional sobre cada servicio, como las claves de host SSH y los títulos de las páginas HTTP.
Ejecución de Scripts Específicos
Puede ejecutar scripts específicos utilizando la bandera --script seguida del nombre o la categoría del script:
nmap --script=http-title localhost
Esto ejecuta solo el script http-title, que recupera el título de las páginas HTTP:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.68 seconds
Ejecución de Scripts por Categoría
Puede ejecutar todos los scripts en una categoría específica:
nmap --script=discovery localhost
Esto ejecuta todos los scripts de descubrimiento, que pueden proporcionar una gran cantidad de información sobre los servicios de red (salida truncada para abreviar):
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
80/tcp open http
|_http-favicon: Unknown favicon MD5: 6D33949773573A11BEBE0D20AC1B7967
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp
| cups-info:
| CUPS Server:
| Server: CUPS/2.3 IPP/2.1
|_ Authentication-Method: Basic
| http-methods:
|_ Supported Methods: GET HEAD OPTIONS POST
|_http-server-header: CUPS/2.3 IPP/2.1
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql
| mysql-info:
| Protocol: 10
| Version: 8.0.30-0ubuntu0.20.04.2
| Thread ID: 15
| Capabilities flags: 65535
| Some Capabilities: ConnectWithDatabase, SupportsLoadDataLocal, SupportsTransactions, DontAllowDatabaseTableColumn, Support41Auth, InteractiveClient, Speaks41ProtocolOld, FoundRows, IgnoreSigpipes, ODBCClient, SwitchToSSLAfterHandshake, IgnoreSpaceBeforeParenthesis, LongColumnFlag, Speaks41ProtocolNew, SupportsMultipleStatments, LongPassword, SupportsCompression, SupportsMultipleResults, SupportsAuthPlugins
| Status: Autocommit
| Salt: \x7FeL)\x0C\x5C#S\x06N%\x1E\x7EYaC
|_ Auth Plugin Name: caching_sha2_password
Nmap done: 1 IP address (1 host up) scanned in 5.28 seconds
Combinación del Escaneo de Scripts con la Detección de Servicios
Para obtener los resultados más completos, combine el escaneo de scripts con la detección de servicios:
nmap -sV -sC localhost
Salida:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:25 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp CUPS 2.3
|_http-server-header: CUPS/2.3 IPP/2.1
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
|_mysql-info: ERROR: Script execution failed (use -d to debug)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 9.03 seconds
Análisis de Servicios Dirigidos
Centrémonos en analizar servicios específicos con más detalle.
Análisis de Servicios HTTP
Para analizar los servicios HTTP en detalle, podemos usar los scripts http-*:
nmap --script="http-*" -p 80 localhost
Esto ejecuta todos los scripts relacionados con HTTP contra el puerto 80:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:30 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
PORT STATE SERVICE
80/tcp open http
|_http-chrono: Request times for /; avg: 32.68ms; min: 32.68ms; max: 32.68ms
|_http-comments-displayer: Couldn't find any comments.
|_http-date: Thu, 14 Sep 2023 17:30:24 GMT; +6s from local time.
|_http-devframework: Couldn't determine the underlying framework or CMS. Try increasing 'httpspider.maxpagecount' value to spider more pages.
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-favicon: Unknown favicon MD5: 6D33949773573A11BEBE0D20AC1B7967
|_http-feed: Couldn't find any feeds.
|_http-fetch: Please enter the complete path of the directory to save data in.
|_http-generator: Couldn't find any generator in the HTML headers and body
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
|_http-mobileversion-checker: No mobile version detected.
|_http-referer-checker: Couldn't find any cross-domain scripts.
|_http-security-headers:
| http-server-header:
| Apache/2.4.41
|_ Apache/2.4.41 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
|_http-traceroute: ERROR: Script execution failed (use -d to debug)
|_http-useragent-tester:
|_http-xssed: No previously reported XSS vuln.
Nmap done: 1 IP address (1 host up) scanned in 2.31 seconds
Análisis de Servicios SSH
De manera similar, podemos analizar los servicios SSH:
nmap --script="ssh-*" -p 22 localhost
Salida:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:35 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
PORT STATE SERVICE
22/tcp open ssh
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
|_ssh-run: ERROR: Script execution failed (use -d to debug)
Nmap done: 1 IP address (1 host up) scanned in 0.26 seconds
Escaneo de Vulnerabilidades
Nmap incluye scripts que pueden detectar posibles vulnerabilidades. El uso de la categoría vuln puede ayudar a identificar problemas de seguridad:
nmap --script=vuln localhost
Esto puede llevar algún tiempo, ya que ejecuta varias comprobaciones de vulnerabilidad. La salida podría verse así:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:40 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
| http-slowloris-check:
| VULNERABLE:
| Slowloris DOS attack
| State: LIKELY VULNERABLE
| IDs: CVE:CVE-2007-6750
| Slowloris tries to keep many connections to the target web server open and hold
| them open as long as possible. It accomplishes this by opening connections to
| the target web server and sending a partial request. By doing so, it starves
| the http server's resources causing Denial Of Service.
|
| Disclosure date: 2009-09-17
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750
|_ http://ha.ckers.org/slowloris/
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 87.28 seconds
En este caso, Nmap ha identificado que el servidor web Apache podría ser vulnerable a un ataque Slowloris DoS. Esta información puede ser valiosa para asegurar sus sistemas.
Creación de un Informe de Escaneo Completo
Ahora, combinemos todo lo que hemos aprendido para crear un informe de seguridad completo:
sudo nmap -sS -sV -O -sC --script=vuln -T4 -oA comprehensive_security_report localhost
Este comando:
- Utiliza el escaneo sigiloso SYN (-sS)
- Detecta las versiones de los servicios (-sV)
- Intenta la detección del sistema operativo (-O)
- Ejecuta los scripts predeterminados (-sC)
- Ejecuta los scripts de detección de vulnerabilidades (--script=vuln)
- Utiliza el tiempo agresivo (-T4)
- Guarda los resultados en todos los formatos (-oA)
La salida será completa y podría tardar algún tiempo en completarse. Una vez finalizado, tendrá un informe de seguridad detallado en varios formatos (normal, XML y grepable) al que puede hacer referencia para el análisis de seguridad.
En este paso, ha aprendido a utilizar el motor de scripting de Nmap para recopilar información detallada sobre los servicios y detectar posibles vulnerabilidades. Estas técnicas avanzadas son esenciales para las evaluaciones integrales de seguridad de la red.
Resumen
En este laboratorio, ha aprendido los fundamentos del uso de Nmap para el reconocimiento de red y la evaluación de seguridad. Ahora comprende:
- Cómo instalar Nmap y realizar escaneos básicos de hosts y puertos
- Cómo usar las banderas de escaneo esenciales de Nmap para diferentes tipos de escaneos
- Cómo implementar estrategias de escaneo efectivas y controlar los parámetros de tiempo
- Cómo aprovechar el Motor de Scripting de Nmap para el análisis detallado de servicios y la detección de vulnerabilidades
Estas habilidades forman una base para las evaluaciones de seguridad de la red y son esenciales para los profesionales de la ciberseguridad. Recuerde usar siempre estas técnicas de manera responsable y solo en redes que tenga permiso para escanear.
A medida que continúa su viaje en ciberseguridad, considere explorar funciones más avanzadas de Nmap, como el desarrollo de scripts NSE personalizados, técnicas de evasión de firewall y la integración con otras herramientas de seguridad. La práctica regular con Nmap le ayudará a ser más eficiente en la identificación de posibles problemas de seguridad en entornos de red.



