Solución de problemas en escaneos de 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, aprenderá a resolver problemas en las exploraciones de Nmap utilizando técnicas de trazado y depuración de paquetes. El laboratorio lo guía a través de la ejecución de exploraciones de Nmap con la opción --packet-trace para observar los paquetes de red, habilitando el nivel de depuración 2 con -d2, y combinando el trazado y la depuración.

También aprenderá a guardar la salida del trazado en un archivo utilizando -oN y a analizar los detalles de los paquetes dentro del terminal Xfce para identificar problemas en las exploraciones. El laboratorio utiliza comandos como nmap --packet-trace 192.168.1.1, nmap -d2 127.0.0.1 y nmap --packet-trace -oN trace.txt 127.0.0.1 para proporcionar experiencia práctica en el diagnóstico de problemas en las exploraciones de Nmap.


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/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/verbosity("Verbosity Levels") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") nmap/NmapGroup -.-> nmap/stealth_scanning("Stealth and Covert Scanning") subgraph Lab Skills nmap/output_formats -.-> lab-547117{{"Solución de problemas en escaneos de Nmap"}} nmap/save_output -.-> lab-547117{{"Solución de problemas en escaneos de Nmap"}} nmap/port_scanning -.-> lab-547117{{"Solución de problemas en escaneos de Nmap"}} nmap/target_specification -.-> lab-547117{{"Solución de problemas en escaneos de Nmap"}} nmap/verbosity -.-> lab-547117{{"Solución de problemas en escaneos de Nmap"}} nmap/service_detection -.-> lab-547117{{"Solución de problemas en escaneos de Nmap"}} nmap/stealth_scanning -.-> lab-547117{{"Solución de problemas en escaneos de Nmap"}} end

Ejecutar una exploración con trazado de paquetes usando nmap --packet-trace 192.168.1.1

En este paso, usaremos la opción --packet-trace con Nmap para observar los paquetes que se envían y reciben durante una exploración. Esta es una herramienta de depuración poderosa que te permite entender exactamente lo que Nmap está haciendo al nivel de red.

Antes de comenzar, discutamos brevemente qué es el trazado de paquetes. El trazado de paquetes implica capturar y analizar los paquetes de red para entender la comunicación entre dos o más dispositivos. La opción --packet-trace de Nmap proporciona una forma simplificada de ver estos paquetes directamente desde dentro de Nmap.

Para realizar una exploración con trazado de paquetes, siga estos pasos:

  1. Abra una terminal: Si no tiene una terminal abierta, inicie la terminal Xfce.

  2. Ejecute el comando de Nmap: En la terminal, escriba el siguiente comando y presione Enter:

    sudo nmap --packet-trace 192.168.1.1
    • sudo: Este comando requiere privilegios de superusuario para capturar paquetes de red.
    • nmap: Este es el escaner de Nmap de línea de comandos.
    • --packet-trace: Esta opción le dice a Nmap que imprima un seguimiento de los paquetes que envía y recibe.
    • 192.168.1.1: Esta es la dirección IP objetivo. Si esta dirección IP no está disponible en su red, puede reemplazarla con la dirección IP de un dispositivo que sea accesible desde su VM de LabEx. Una alternativa común es 127.0.0.1 (localhost).
  3. Observe la salida: Ahora Nmap realizará una exploración de la dirección IP objetivo y imprimirá información detallada sobre cada paquete enviado y recibido. La salida mostrará el tipo de paquete (por ejemplo, SYN, ACK), las direcciones IP y los puertos de origen y destino, y otras información relevante.

    La salida se verá similar a esto (la salida exacta variará según su red y el host objetivo):

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
    SENT (0.0034s) to 192.168.1.1: TCP 192.168.1.100:54321 > 192.168.1.1:80 S ttl=64 id=12345 win=65535
    RECV (0.0045s) from 192.168.1.1: TCP 192.168.1.1:80 > 192.168.1.100:54321 SA ttl=64 id=67890 win=14600
    SENT (0.0045s) to 192.168.1.1: TCP 192.168.1.100:54321 > 192.168.1.1:80 A ttl=64 id=12346 win=65535
    ...
    Nmap done: 1 IP address (1 host up) scanned in 0.123 seconds

    Cada línea representa un paquete. SENT indica un paquete enviado por Nmap, y RECV indica un paquete recibido por Nmap. La información que sigue a SENT o RECV describe el protocolo del paquete (TCP), las direcciones IP y los puertos de origen y destino, las banderas (S para SYN, A para ACK, SA para SYN-ACK), TTL (Time To Live), ID y tamaño de ventana.

  4. Interrumpa la exploración: La exploración continuará durante un tiempo. Puede interrumpirla presionando Ctrl+C.

Este paso ha demostrado cómo usar la opción --packet-trace para obtener información sobre la actividad de red de Nmap. En los siguientes pasos, exploraremos otras opciones y técnicas de depuración.

Habilitar el nivel de depuración 2 con nmap -d2 127.0.0.1

En este paso, habilitaremos el nivel de depuración 2 en Nmap. La salida de depuración proporciona información detallada sobre las operaciones internas de Nmap, lo que puede ser útil para entender cómo funciona Nmap y resolver problemas.

Los niveles de depuración de Nmap van desde 1 hasta 9. Los niveles más altos proporcionan una salida más detallada. Para este paso, usaremos el nivel de depuración 2, que ofrece un buen equilibrio entre detalle y legibilidad.

Para habilitar el nivel de depuración 2, siga estos pasos:

  1. Abra una terminal: Si no tiene una terminal abierta, inicie la terminal Xfce.

  2. Ejecute el comando de Nmap: En la terminal, escriba el siguiente comando y presione Enter:

    sudo nmap -d2 127.0.0.1
    • sudo: Este comando puede requerir privilegios de superusuario dependiendo del tipo de exploración.
    • nmap: Este es el escaner de Nmap de línea de comandos.
    • -d2: Esta opción establece el nivel de depuración en 2.
    • 127.0.0.1: Esta es la dirección IP objetivo, que es la dirección de bucle (localhost).
  3. Observe la salida: Ahora Nmap realizará una exploración de localhost y imprimirá información de depuración en la terminal. La salida incluirá detalles sobre la configuración de Nmap, las sondas que está enviando y las respuestas que está recibiendo.

    La salida se verá similar a esto (la salida exacta variará):

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
    --------------- Timing report ---------------
      hostgroups: min 1, max 1024
      rtt-timeouts: init 1250, min 100, max 10000
      max-scan-delay: 0 ms, brtt 1250 ms, rttvar 625 ms
      parallelism: min 1, max 256
    ---------------------------------------------
    ...
    Nmap done: 1 IP address (1 host up) scanned in 0.123 seconds

    La salida muestra varios parámetros internos y decisiones tomadas por Nmap durante la exploración. Este nivel de detalle puede ser útil para entender cómo opera Nmap y para diagnosticar problemas.

  4. Interrumpa la exploración: La exploración continuará durante un tiempo. Puede interrumpirla presionando Ctrl+C.

Este paso ha demostrado cómo habilitar el nivel de depuración 2 en Nmap. En el siguiente paso, combinaremos el trazado de paquetes y la salida de depuración para un análisis aún más detallado.

Combinar trazado y depuración con nmap --packet-trace -d 192.168.1.1

En este paso, combinaremos las opciones --packet-trace y -d para obtener una vista integral de la operación de Nmap. Esto proporcionará detalles a nivel de paquete y información de depuración interna, lo que puede ser muy útil para la depuración avanzada y la comprensión del comportamiento de Nmap.

Para combinar el trazado de paquetes y la depuración, siga estos pasos:

  1. Abra una terminal: Si no tiene una terminal abierta, inicie la terminal Xfce.

  2. Ejecute el comando de Nmap: En la terminal, escriba el siguiente comando y presione Enter:

    sudo nmap --packet-trace -d 192.168.1.1
    • sudo: Este comando requiere privilegios de superusuario para capturar paquetes de red.
    • nmap: Este es el escaner de Nmap de línea de comandos.
    • --packet-trace: Esta opción le dice a Nmap que imprima un seguimiento de los paquetes que envía y recibe.
    • -d: Esta opción habilita la salida de depuración. Por defecto, establece el nivel de depuración en 1. Puede usar -d2, -d3, etc., para aumentar el nivel de depuración. En este caso, estamos usando el nivel predeterminado 1.
    • 192.168.1.1: Esta es la dirección IP objetivo. Si esta dirección IP no está disponible en su red, puede reemplazarla con la dirección IP de un dispositivo que sea accesible desde su VM de LabEx. Una alternativa común es 127.0.0.1 (localhost).
  3. Observe la salida: Ahora Nmap realizará una exploración de la dirección IP objetivo y imprimirá tanto los trazos de paquetes como la información de depuración en la terminal. La salida será una mezcla de detalles de paquetes (como se vio en el paso 1) y mensajes internos de Nmap (como se vio en el paso 2).

    La salida se verá similar a esto (la salida exacta variará según su red y el host objetivo):

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
    SENT (0.0034s) to 192.168.1.1: TCP 192.168.1.100:54321 > 192.168.1.1:80 S ttl=64 id=12345 win=65535
    RECV (0.0045s) from 192.168.1.1: TCP 192.168.1.1:80 > 192.168.1.100:54321 SA ttl=64 id=67890 win=14600
    NSE: Using Lua engine for script processing.
    SENT (0.0045s) to 192.168.1.1: TCP 192.168.1.100:54321 > 192.168.1.1:80 A ttl=64 id=12346 win=65535
    ...
    Nmap done: 1 IP address (1 host up) scanned in 0.123 seconds

    Verá las líneas SENT y RECV intercaladas con mensajes de depuración como NSE: Using Lua engine for script processing..

  4. Interrumpa la exploración: La exploración continuará durante un tiempo. Puede interrumpirla presionando Ctrl+C.

Este paso ha demostrado cómo combinar el trazado de paquetes y la salida de depuración en Nmap. Esta combinación proporciona una herramienta poderosa para la comprensión y la depuración de las exploraciones de Nmap.

Guardar la salida del trazado con nmap --packet-trace -oN trace.txt 127.0.0.1

En este paso, guardaremos la salida del trazado de paquetes en un archivo para su posterior análisis. Esto es útil cuando desea examinar más detenidamente los detalles de los paquetes o compartir la salida con otros. Nmap ofrece varias opciones para guardar los resultados del escaneo en diferentes formatos. Aquí, usaremos el formato de salida normal (-oN) para guardar el trazado de paquetes.

Para guardar la salida del trazado de paquetes en un archivo, siga estos pasos:

  1. Abra una terminal: Si no tiene una terminal abierta, inicie la terminal Xfce.

  2. Ejecute el comando de Nmap: En la terminal, escriba el siguiente comando y presione Enter:

    sudo nmap --packet-trace -oN trace.txt 127.0.0.1
    • sudo: Este comando puede requerir privilegios de superusuario dependiendo del tipo de escaneo.
    • nmap: Este es el escaner de Nmap de línea de comandos.
    • --packet-trace: Esta opción le dice a Nmap que imprima un seguimiento de los paquetes que envía y recibe.
    • -oN trace.txt: Esta opción especifica que la salida debe guardarse en formato normal en el archivo trace.txt. El archivo se creará en su directorio actual (~/proyecto).
    • 127.0.0.1: Esta es la dirección IP objetivo, que es la dirección de bucle (localhost).
  3. Observe la salida: Nmap realizará un escaneo de localhost e imprimirá el trazado de paquetes en la terminal, así como guardarlo en el archivo trace.txt.

    La salida de la terminal será similar a esta:

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
    SENT (0.0034s) to 127.0.0.1: TCP 127.0.0.1:54321 > 127.0.0.1:80 S ttl=64 id=12345 win=65535
    RECV (0.0045s) from 127.0.0.1: TCP 127.0.0.1:80 > 127.0.0.1:54321 SA ttl=64 id=67890 win=14600
    SENT (0.0045s) to 127.0.0.1: TCP 127.0.0.1:54321 > 127.0.0.1:80 A ttl=64 id=12346 win=65535
    ...
    Nmap done: 1 IP address (1 host up) scanned in 0.123 seconds
  4. Verifique la creación del archivo: Una vez completado el escaneo, verifique que se haya creado el archivo trace.txt en su directorio ~/proyecto. Puede usar el comando ls para comprobar:

    ls ~/proyecto

    Debería ver trace.txt en la salida.

  5. Visualice el contenido del archivo: Puede visualizar el contenido del archivo trace.txt usando el comando cat o un editor de texto como nano:

    cat ~/proyecto/trace.txt

    o

    nano ~/proyecto/trace.txt

    El archivo contendrá la misma salida del trazado de paquetes que se imprimió en la terminal.

Este paso ha demostrado cómo guardar la salida del trazado de paquetes de Nmap en un archivo. En el siguiente paso, analizaremos los detalles de los paquetes en la terminal Xfce.

Analizar detalles de paquetes en la terminal Xfce

En este paso, analizaremos los detalles de los paquetes capturados por la opción --packet-trace de Nmap. Comprender la salida del trazado de paquetes puede ayudarlo a diagnosticar problemas de red, entender cómo funcionan las sondas de Nmap e identificar posibles vulnerabilidades de seguridad. Usaremos el comando grep en la terminal Xfce para filtrar y examinar paquetes específicos.

Para analizar los detalles de los paquetes, siga estos pasos:

  1. Abra una terminal: Si no tiene una terminal abierta, inicie la terminal Xfce.

  2. Revise el archivo trace.txt: En el paso anterior, guardó la salida del trazado de paquetes en el archivo trace.txt en su directorio ~/proyecto. Si no ha realizado ese paso, vuelva y complételo primero.

  3. Use grep para filtrar paquetes: El comando grep es una herramienta poderosa para buscar archivos de texto. Lo podemos usar para filtrar el archivo trace.txt y encontrar paquetes que coincidan con criterios específicos.

    Por ejemplo, para encontrar todos los paquetes enviados al puerto 80, puede usar el siguiente comando:

    grep " > 127.0.0.1:80" ~/proyecto/trace.txt
    • grep: Este es el utilidad de línea de comandos para buscar texto.
    • " > 127.0.0.1:80": Este es el patrón de búsqueda. Busca líneas que contengan " > 127.0.0.1:80", lo que indica paquetes enviados al puerto 80 en el localhost (127.0.0.1). El espacio antes de > es importante para evitar coincidir con los puertos de origen.
    • ~/proyecto/trace.txt: Esta es la ruta al archivo que contiene la salida del trazado de paquetes.

    La salida mostrará todas las líneas en el archivo trace.txt que coinciden con el patrón de búsqueda. Por ejemplo:

    SENT (0.0034s) to 127.0.0.1: TCP 127.0.0.1:54321 > 127.0.0.1:80 S ttl=64 id=12345 win=65535
    RECV (0.0045s) from 127.0.0.1: TCP 127.0.0.1:80 > 127.0.0.1:54321 SA ttl=64 id=67890 win=14600
    SENT (0.0045s) to 127.0.0.1: TCP 127.0.0.1:54321 > 127.0.0.1:80 A ttl=64 id=12346 win=65535
  4. Analice los detalles del paquete: Examine la salida para entender los detalles del paquete. La salida muestra la dirección del paquete (SENT o RECV), las direcciones IP y los puertos de origen y destino, el protocolo (TCP) y otras banderas y opciones.

    • SENT: Indica un paquete enviado por Nmap.
    • RECV: Indica un paquete recibido por Nmap.
    • TCP 127.0.0.1:54321 > 127.0.0.1:80: Muestra la dirección IP y el puerto de origen (127.0.0.1:54321) y la dirección IP y el puerto de destino (127.0.0.1:80).
    • S: Indica que la bandera SYN está establecida, que se utiliza para iniciar una conexión TCP.
    • SA: Indica que las banderas SYN-ACK están establecidas, que es una respuesta a un paquete SYN.
    • A: Indica que la bandera ACK está establecida, que se utiliza para confirmar los datos recibidos.
    • ttl: Tiempo de vida.
    • id: Número de identificación IP.
    • win: Tamaño de ventana.
  5. Experimente con diferentes patrones de grep: Intente diferentes patrones de grep para filtrar la salida del trazado de paquetes según sus necesidades específicas. Por ejemplo:

    • Para encontrar todos los paquetes SYN:

      grep "S ttl=" ~/proyecto/trace.txt
    • Para encontrar todos los paquetes recibidos del puerto 80:

      grep "from 127.0.0.1:80" ~/proyecto/trace.txt
    • Para encontrar todos los paquetes con un ID IP específico:

      grep "id=12345" ~/proyecto/trace.txt

Al usar grep para filtrar y analizar la salida del trazado de paquetes, puede obtener una comprensión más profunda del comportamiento de Nmap y del tráfico de red que genera.

Identificar problemas de escaneo en la terminal Xfce

En este paso, usaremos el trazado de paquetes y la salida de depuración de Nmap para identificar posibles problemas de escaneo. Esto implica buscar anomalías en el intercambio de paquetes, como retransmisiones, respuestas inesperadas o falta de respuestas. Al analizar estos problemas, puede solucionar problemas de escaneo y mejorar la precisión y confiabilidad de sus escanos de Nmap.

Para identificar problemas de escaneo, siga estos pasos:

  1. Abra una terminal: Si no tiene una terminal abierta, inicie la terminal Xfce.

  2. Revise el archivo trace.txt: En los pasos anteriores, guardó la salida del trazado de paquetes en el archivo trace.txt en su directorio ~/proyecto. Asegúrese de que este archivo exista y contenga la información del trazado de paquetes.

  3. Busque retransmisiones: Las retransmisiones ocurren cuando un paquete no es reconocido por el host destino y Nmap reenvía el paquete. Esto puede indicar congestión de red, pérdida de paquetes o un firewall que bloquea el tráfico. Use grep para buscar retransmisiones:

    grep "Retransmission" ~/proyecto/trace.txt

    Si ve líneas que contengan "Retransmission", indica que Nmap tuvo que reenviar paquetes. Esto podría ser una señal de problemas de red o un firewall.

  4. Analice las banderas TCP: Examine las banderas TCP en el trazado de paquetes para entender el estado de la conexión TCP. Busque combinaciones inesperadas de banderas o banderas faltantes. Por ejemplo, un paquete SYN sin una respuesta SYN-ACK correspondiente podría indicar que un firewall está bloqueando la conexión.

    Puede usar grep para filtrar banderas TCP específicas. Por ejemplo, para encontrar paquetes SYN:

    grep "S ttl=" ~/proyecto/trace.txt

    Y para encontrar paquetes SYN-ACK:

    grep "SA ttl=" ~/proyecto/trace.txt

    Compare el número de paquetes SYN enviados con el número de paquetes SYN-ACK recibidos. Si hay significativamente menos paquetes SYN-ACK que paquetes SYN, podría indicar un problema.

  5. Verifique respuestas inesperadas: A veces, el host destino puede enviar respuestas inesperadas, como mensajes de error ICMP. Estas respuestas pueden proporcionar información valiosa sobre por qué un escaneo está fallando.

    Para buscar paquetes ICMP, use el siguiente comando:

    grep "ICMP" ~/proyecto/trace.txt

    Analice los mensajes ICMP para entender la naturaleza del error. Por ejemplo, "Destination Unreachable" indica que el host destino no es alcanzable.

  6. Busque respuestas faltantes: Si Nmap envía una sonda y no recibe una respuesta, podría indicar que el host destino está apagado, un firewall está bloqueando el tráfico o la sonda se perdió durante el tránsito.

    Examine el trazado de paquetes para identificar sondas que no recibieron una respuesta. Por ejemplo, si envió un paquete SYN al puerto 80 pero no recibió un paquete SYN-ACK, podría indicar que el puerto 80 está cerrado o filtrado.

  7. Tenga en cuenta la salida de depuración: Si bien los pasos anteriores se centraron en el trazado de paquetes, recuerde que la salida de depuración (de -d o -d2) también puede proporcionar pistas valiosas. A menudo contiene información sobre el proceso de toma de decisiones interno de Nmap, lo que puede ayudarle a entender por qué se comporta de cierta manera. Lamentablemente, no guardamos la salida de depuración en un archivo en los pasos anteriores, pero en un escenario real, analizaría esa salida junto con el trazado de paquetes.

Al analizar cuidadosamente el trazado de paquetes y la salida de depuración, puede identificar posibles problemas de escaneo y tomar medidas para resolverlos. Esto mejorará la precisión y confiabilidad de sus escanos de Nmap.

Resumen

En este laboratorio, exploramos las capacidades de depuración de Nmap al usar la opción --packet-trace para observar los paquetes de red intercambiados durante un escaneo. Esto implicó ejecutar el comando sudo nmap --packet-trace 192.168.1.1 (o 127.0.0.1 como alternativa) en la terminal Xfce y analizar la salida detallada, que incluyó tipos de paquetes, direcciones IP y puertos de origen y destino, y otra información relevante.

La principal lección es entender cómo --packet-trace proporciona una forma simplificada de ver los paquetes de red directamente desde dentro de Nmap, lo que permite una comprensión más profunda de las operaciones de nivel de red de Nmap y facilita la identificación de posibles problemas de escaneo.