Combinar la detección de SO y servicios en Nmap

NmapNmapBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos a combinar la detección del sistema operativo y los servicios en Nmap para recopilar información exhaustiva sobre una máquina objetivo. Utilizaremos las opciones -O y -sV de Nmap para identificar el sistema operativo y las versiones de servicios que se ejecutan en una dirección IP objetivo, como 192.168.1.1.

El laboratorio incluye pasos para ejecutar escaneos combinados, especificar los puertos objetivo, agregar detalle, guardar los resultados en un archivo y analizar la salida en la terminal Xfce. También compararemos los resultados de los escaneos combinados con los escaneos individuales para entender las ventajas de este enfoque. Recuerda solo escanear redes que poseas o tengas permiso para escanear.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/output_formats("Output Formats") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/host_discovery("Host Discovery Techniques") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/verbosity("Verbosity Levels") nmap/NmapGroup -.-> nmap/os_version_detection("OS and Version Detection") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") subgraph Lab Skills nmap/output_formats -.-> lab-547089{{"Combinar la detección de SO y servicios en Nmap"}} nmap/save_output -.-> lab-547089{{"Combinar la detección de SO y servicios en Nmap"}} nmap/port_scanning -.-> lab-547089{{"Combinar la detección de SO y servicios en Nmap"}} nmap/host_discovery -.-> lab-547089{{"Combinar la detección de SO y servicios en Nmap"}} nmap/target_specification -.-> lab-547089{{"Combinar la detección de SO y servicios en Nmap"}} nmap/verbosity -.-> lab-547089{{"Combinar la detección de SO y servicios en Nmap"}} nmap/os_version_detection -.-> lab-547089{{"Combinar la detección de SO y servicios en Nmap"}} nmap/service_detection -.-> lab-547089{{"Combinar la detección de SO y servicios en Nmap"}} end

Ejecutar un escaneo combinado con nmap -O -sV 192.168.1.1

En este paso, realizaremos un escaneo combinado utilizando Nmap para identificar el sistema operativo y las versiones de servicios que se ejecutan en una máquina objetivo. Esta es una técnica poderosa para recopilar información sobre una red y sus dispositivos.

Nmap es una herramienta de escaneo de red versátil. Las opciones utilizadas en este paso son:

  • -O: Habilita la detección del sistema operativo. Nmap intenta determinar el sistema operativo de la máquina objetivo analizando sus respuestas de red.
  • -sV: Habilita la detección de la versión del servicio. Nmap examina los puertos abiertos para determinar el nombre de la aplicación y el número de versión.
  • 192.168.1.1: Esta es la dirección IP objetivo. Reemplácela con la dirección IP real de la máquina que desees escanear. Si no tienes un objetivo específico, puedes utilizar la dirección IP de tu propia máquina o una IP de prueba como scanme.nmap.org. Sin embargo, para este laboratorio, asumiremos que 192.168.1.1 es un objetivo válido en tu red. Si no es así, deberás sustituirla por una dirección IP válida.

Antes de ejecutar el escaneo, es importante entender que es ilegal escanear redes sin permiso. Solo escanear redes que poseas o tengas permiso explícito para escanear.

Ahora, ejecutemos el escaneo combinado. Abra su terminal Xfce.

  1. Ejecute el siguiente comando:
sudo nmap -O -sV 192.168.1.1

Es probable que se le solicite su contraseña. Dado que el usuario labex tiene privilegios sudo sin contraseña, simplemente presione Enter.

La salida mostrará el progreso de Nmap a medida que examina la máquina objetivo. Intentará identificar el sistema operativo y las versiones de los servicios que se ejecutan en los puertos abiertos.

Salida de ejemplo (la salida real variará según la máquina objetivo):

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.0012s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (protocol 2.0)
80/tcp  open  http     Apache httpd 2.4.29 ((Ubuntu))
443/tcp open  ssl/http Apache httpd 2.4.29 ((Ubuntu) OpenSSL 1.1.1)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS details: Linux 3.2 - 4.9
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 15.23 seconds

Esta salida muestra que Nmap identificó el objetivo como un sistema operativo Linux y detectó las versiones de los servicios SSH, HTTP y HTTPS.

Escanear puertos específicos con nmap -O -sV -p 22,80 127.0.0.1

En este paso, nos centraremos en escanear puertos específicos utilizando Nmap. Esto es útil cuando quieres restringir tu escaneo solo a los puertos en los que es más probable que se estén ejecutando servicios interesantes.

Las opciones utilizadas en este paso son:

  • -O: Habilita la detección del sistema operativo.
  • -sV: Habilita la detección de la versión del servicio.
  • -p 22,80: Especifica los puertos a escanear. En este caso, estamos escanear el puerto 22 (SSH) y el puerto 80 (HTTP). Puedes especificar un solo puerto, un rango de puertos (por ejemplo, 1-100), o una lista separada por comas de puertos.
  • 127.0.0.1: Esta es la dirección de bucle interior, que se refiere a tu propia máquina.

Escanear puertos específicos puede reducir significativamente el tiempo de escaneo y facilitar la identificación de los servicios que se ejecutan en una máquina objetivo.

Ahora, ejecutemos el escaneo. Abra su terminal Xfce.

  1. Ejecute el siguiente comando:
sudo nmap -O -sV -p 22,80 127.0.0.1

Es probable que se le solicite su contraseña. Dado que el usuario labex tiene privilegios sudo sin contraseña, simplemente presione Enter.

La salida mostrará el progreso de Nmap a medida que examina los puertos 22 y 80 en su máquina local. Intentará identificar el sistema operativo y las versiones de los servicios que se ejecutan en esos puertos.

Salida de ejemplo (la salida real variará según tu configuración del sistema):

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000047s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.4 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS details: Linux 3.2 - 4.9
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 5.23 seconds

Esta salida muestra que Nmap identificó OpenSSH en el puerto 22 y Apache httpd en el puerto 80. La detección del sistema operativo también proporciona información sobre la versión del kernel de Linux.

Agregar detalle con nmap -v -O -sV 192.168.1.1

En este paso, agregaremos detalle a nuestro escaneo con Nmap. El detalle proporciona información más detallada sobre el proceso de escaneo, lo que puede ser útil para la depuración o la comprensión de cómo funciona Nmap.

Las opciones utilizadas en este paso son:

  • -v: Habilita el modo detallado. Esta opción aumenta la cantidad de información mostrada durante el escaneo. Puedes usar -vv para un detalle aún mayor.
  • -O: Habilita la detección del sistema operativo.
  • -sV: Habilita la detección de la versión del servicio.
  • 192.168.1.1: Esta es la dirección IP objetivo. Al igual que en el primer paso, reemplácela con la dirección IP real de la máquina que desees escanear. Si no es así, deberás sustituirla por una dirección IP válida.

El modo detallado puede ser útil para ver exactamente lo que está haciendo Nmap, incluyendo las sondas que está enviando y las respuestas que está recibiendo.

Ahora, ejecutemos el escaneo con detalle. Abra su terminal Xfce.

  1. Ejecute el siguiente comando:
sudo nmap -v -O -sV 192.168.1.1

Es probable que se le solicite su contraseña. Dado que el usuario labex tiene privilegios sudo sin contraseña, simplemente presione Enter.

La salida será más detallada que los escaneos anteriores. Verá información sobre las diferentes etapas del escaneo, como la detección de hosts, el escaneo de puertos y la detección de la versión del servicio.

Salida de ejemplo (la salida real variará según la máquina objetivo y las condiciones de red):

Starting Nmap 7.80 ( https://nmap.org )
NSE: Loaded 151 scripts for scanning.
Initiating Ping Scan at 14:35
Scanning 192.168.1.1 [4 ports]
Completed Ping Scan at 14:35, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 14:35
Completed Parallel DNS resolution of 1 host. at 14:35, 0.00s elapsed
Initiating SYN Stealth Scan at 14:35
Scanning 192.168.1.1 [1000 ports]
Discovered open port 22/tcp on 192.168.1.1
Discovered open port 80/tcp on 192.168.1.1
Discovered open port 443/tcp on 192.168.1.1
Completed SYN Stealth Scan at 14:35, 0.12s elapsed (1000 total ports)
Initiating Service scan at 14:35
Scanning 3 services on 192.168.1.1
Completed Service scan at 14:35, 6.23s elapsed (3 services total)
Initiating OS detection (try #1) against 192.168.1.1
... (more output)...
Nmap scan report for 192.168.1.1
Host is up (0.00088s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (protocol 2.0)
80/tcp  open  http     Apache httpd 2.4.29 ((Ubuntu))
443/tcp open  ssl/http Apache httpd 2.4.29 ((Ubuntu) OpenSSL 1.1.1)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS details: Linux 3.2 - 4.9
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 15.23 seconds

Observe la información adicional sobre las fases de escaneo, como "Initiating Ping Scan" y "Initiating Service scan". Esto puede ser útil para entender el proceso de escaneo y identificar cualquier problema potencial.

Guardar los resultados combinados con nmap -O -sV -oN os_service.txt 127.0.0.1

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

Las opciones utilizadas en este paso son:

  • -O: Habilita la detección del sistema operativo.
  • -sV: Habilita la detección de la versión del servicio.
  • -oN os_service.txt: Especifica el archivo de salida y el formato. -oN especifica la salida normal, que es legible por humanos. La salida se guardará en el archivo os_service.txt en tu directorio actual (~/project).
  • 127.0.0.1: Esta es la dirección de bucle interior, que se refiere a tu propia máquina.

Guardar la salida en un archivo te permite revisar los resultados más tarde sin tener que volver a ejecutar el escaneo. También facilita la comparación de los resultados de diferentes escaneos.

Ahora, ejecutemos el escaneo y guardemos los resultados. Abra su terminal Xfce.

  1. Ejecute el siguiente comando:
sudo nmap -O -sV -oN os_service.txt 127.0.0.1

Es probable que se le solicite su contraseña. Dado que el usuario labex tiene privilegios sudo sin contraseña, simplemente presione Enter.

La salida se mostrará en la pantalla como de costumbre, pero también se guardará en el archivo os_service.txt en tu directorio ~/project.

  1. Para verificar que el archivo se creó y contiene los resultados del escaneo, use el comando cat:
cat os_service.txt

Esto mostrará el contenido del archivo os_service.txt en la terminal. Deberías ver los resultados del escaneo con Nmap, incluyendo los puertos abiertos, los servicios y la información del sistema operativo.

Salida de ejemplo (la salida real variará según tu configuración del sistema):

## Nmap 7.80 scan initiated Mon Aug  8 14:42:30 2022
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000047s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.4 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS details: Linux 3.2 - 4.9
Network Distance: 0 hops

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

También puedes usar el comando ls -l para verificar el tamaño del archivo y la fecha de modificación:

ls -l os_service.txt

Esto te mostrará los permisos del archivo, su tamaño y la última hora de modificación.

Analizar la salida del sistema operativo y de los servicios en la terminal Xfce

En este paso, analizaremos la salida del escaneo con Nmap que guardamos en el paso anterior (os_service.txt). Nos centraremos en entender la información que Nmap proporciona sobre el sistema operativo del objetivo y los servicios en ejecución.

El archivo os_service.txt contiene un informe legible por humanos de los resultados del escaneo. Examinemos las secciones principales:

  1. Puertos abiertos: Esta sección lista los puertos que están abiertos en la máquina objetivo. Los puertos abiertos indican que un servicio está escuchando conexiones en ese puerto.

  2. Servicios: Para cada puerto abierto, Nmap intenta identificar el servicio que está en ejecución. Esta información se muestra en la columna "SERVICIO".

  3. Versiones: Nmap también intenta determinar la versión del servicio. Esta información se muestra en la columna "VERSIÓN". Saber la versión del servicio es crucial para identificar posibles vulnerabilidades.

  4. Detalles del sistema operativo: Nmap intenta identificar el sistema operativo que está en ejecución en la máquina objetivo. Esta información se muestra en la sección "Detalles del sistema operativo".

Ahora, analicemos la salida en la terminal Xfce.

  1. Abra el archivo os_service.txt usando el comando cat:
cat os_service.txt

Examine la salida. Debería ver algo similar a lo siguiente (la salida real variará según su configuración del sistema):

## Nmap 7.80 scan initiated Mon Aug  8 14:42:30 2022
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000047s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.4 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS details: Linux 3.2 - 4.9
Network Distance: 0 hops

## Nmap done: 1 IP address (1 host up) scanned in 5.23 seconds
  1. Análisis de la salida:

    • Puerto 22/tcp: Este puerto está abierto y ejecutando el servicio SSH (OpenSSH 8.2p1 Ubuntu 4ubuntu0.4). SSH se utiliza para el acceso remoto seguro a la máquina.
    • Puerto 80/tcp: Este puerto está abierto y ejecutando el servicio HTTP (Apache httpd 2.4.41 ((Ubuntu))). HTTP se utiliza para servir páginas web.
    • Detalles del sistema operativo: Nmap ha identificado el sistema operativo como Linux (Linux 3.2 - 4.9).

Al analizar esta salida, puede obtener información valiosa sobre la configuración de la máquina objetivo y posibles vulnerabilidades. Por ejemplo, saber las versiones de los servicios le permite buscar vulnerabilidades conocidas asociadas a esas versiones.

Este paso demuestra cómo interpretar la salida de un escaneo con Nmap para identificar puertos abiertos, servicios en ejecución y el sistema operativo. Esta información es esencial para las evaluaciones de seguridad y la prueba de penetración.

Comparar con escaneos individuales en la terminal Xfce

En este paso, compararemos los resultados del escaneo combinado (os_service.txt) con los resultados que obtendrías al ejecutar escaneos individuales para la detección del sistema operativo y la detección de la versión del servicio. Esto te ayudará a entender las ventajas de utilizar escaneos combinados y cómo pueden ahorrar tiempo.

Para hacer esto de manera efectiva, simularemos los escaneos individuales utilizando grep para extraer la información relevante del archivo os_service.txt. Esto evita la necesidad de volver a ejecutar los escaneos, ahorrando tiempo y recursos.

  1. Simular el escaneo de detección del sistema operativo:

    Podemos simular un escaneo de detección del sistema operativo buscando la sección "Detalles del sistema operativo" en el archivo os_service.txt.

    Ejecute el siguiente comando:

grep "OS details" os_service.txt

Esto mostrará la línea que contiene los detalles del sistema operativo, similar a:

OS details: Linux 3.2 - 4.9
  1. Simular el escaneo de detección de la versión del servicio:

    Podemos simular un escaneo de detección de la versión del servicio buscando líneas que contengan información sobre el servicio y la versión.

    Ejecute el siguiente comando:

grep -E "[0-9]+/tcp open" os_service.txt

Este comando utiliza grep -E para habilitar expresiones regulares extendidas. El patrón [0-9]+/tcp open busca líneas que empiecen con un número (que representa el número de puerto), seguido de "/tcp open". Esto extraerá las líneas que contienen información sobre el servicio y la versión, similar a:

22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.4 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
  1. Comparar los resultados:

    Ahora, compare la salida de los comandos grep con la salida completa en os_service.txt. Notará que el escaneo combinado proporciona toda la misma información en un solo escaneo.

    El escaneo combinado (nmap -O -sV) es más eficiente porque realiza la detección del sistema operativo y la detección de la versión del servicio en una sola pasada. Esto reduce el tiempo total de escaneo y el tráfico de red.

En resumen, este paso demuestra cómo comparar los resultados de un escaneo combinado con Nmap con los resultados que obtendrías al ejecutar escaneos individuales. Al utilizar escaneos combinados, puedes ahorrar tiempo y recursos mientras obtienes información completa sobre el objetivo.

Resumen

En este laboratorio, realizamos la detección combinada del sistema operativo y la versión del servicio utilizando Nmap. Lo principal es utilizar las banderas -O y -sV juntos para identificar tanto el sistema operativo como las versiones de los servicios que se ejecutan en una máquina objetivo. Esto proporciona una comprensión más integral de la configuración del objetivo.

También aprendimos cómo especificar direcciones IP objetivo, agregar detalle con la bandera -v y guardar los resultados del escaneo en un archivo utilizando la opción -oN. Además, practicamos analizar la salida en la terminal Xfce y comparar los resultados con escaneos individuales para entender la efectividad del escaneo combinado.