Deshabilitar la verificación de certificados TLS en Gobuster

Beginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá a manejar situaciones en las que Gobuster encuentra errores en los certificados TLS, específicamente al tratar con certificados autofirmados o no válidos. Por defecto, Gobuster, al igual que muchas otras herramientas, realiza una verificación estricta de los certificados TLS para garantizar una comunicación segura. Sin embargo, en ciertos escenarios de prueba, es posible que necesite omitir esta verificación. Este laboratorio lo guiará a través de la identificación de un objetivo de este tipo, la observación del error predeterminado y luego el uso de la bandera -k para deshabilitar la verificación del certificado, permitiendo que el escaneo continúe. Finalmente, discutiremos las implicaciones de seguridad de deshabilitar la verificación TLS.

Identificar un objetivo con un certificado TLS autofirmado o no válido

En este paso, identificará una URL de destino que utiliza un certificado TLS autofirmado o no válido. Para el propósito de este laboratorio, utilizaremos un sitio de prueba disponible públicamente conocido por tener problemas de certificado que Gobuster marcará. Esto nos permite demostrar de manera confiable el problema y su solución.

Abra su terminal y use curl para intentar acceder a la URL de destino. Debería observar un error de certificado, lo que indica que el certificado no es de confianza para su sistema. Este es el tipo de escenario en el que Gobuster también encontraría problemas.

Ejecute el siguiente comando:

curl https://self-signed.badssl.com/

Debería ver una salida similar a esta, que indica un problema de certificado:

curl: (60) SSL certificate problem: self signed certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about such a situation and
how to fix it, please consult the relevant articles in the links above.

Esta salida confirma que el destino https://self-signed.badssl.com/ presenta un certificado que no es de confianza por defecto, que es exactamente lo que necesitamos para este laboratorio.

Intentar un escaneo y observar el error de certificado

En este paso, intentará ejecutar Gobuster contra el objetivo identificado sin deshabilitar la verificación del certificado TLS. Como se esperaba, Gobuster encontrará el certificado autofirmado y terminará con un error, similar a lo que mostró curl. Esto demuestra el comportamiento predeterminado de Gobuster de aplicar una validación estricta del certificado.

Ejecute el siguiente comando de Gobuster:

gobuster dir -u https://self-signed.badssl.com/ -w /usr/share/wordlists/dirb/common.txt -q
  • dir: Especifica que estamos realizando un escaneo de fuerza bruta de directorios/archivos.
  • -u https://self-signed.badssl.com/: Establece la URL de destino.
  • -w /usr/share/wordlists/dirb/common.txt: Especifica la lista de palabras a usar para la fuerza bruta.
  • -q: Suprime el banner y otra salida no esencial, haciendo que el error sea más claro.

Debería observar una salida similar a esta, que indica un error de handshake TLS:

[!] GoBuster is unable to connect to the target: Get "https://self-signed.badssl.com/": x509: certificate signed by unknown authority

Este mensaje de error confirma que Gobuster no pudo establecer una conexión debido al certificado no confiable, lo que impidió que el escaneo continuara.

Volver a ejecutar el escaneo con la bandera -k

En este paso, volverá a ejecutar el escaneo de Gobuster, pero esta vez incluirá la bandera -k. La bandera -k (abreviatura de --no-tls-validation) instruye a Gobuster a omitir la verificación del certificado TLS. Esto es útil en entornos controlados o al probar contra objetivos con certificados autofirmados donde confía explícitamente en el objetivo a pesar de la advertencia del certificado.

Ejecute el siguiente comando de Gobuster, agregando la bandera -k:

gobuster dir -u https://self-signed.badssl.com/ -w /usr/share/wordlists/dirb/common.txt -k -q
  • -k: Esta es la bandera crucial que deshabilita la verificación del certificado TLS.

Esta vez, Gobuster no debería terminar inmediatamente con un error de certificado. En su lugar, comenzará el proceso de fuerza bruta de directorios. Es posible que no vea una salida inmediata si la lista de palabras es grande y no se encuentran directorios rápidamente, pero la ausencia del error anterior indica éxito.

Observar que el escaneo ahora procede

En este paso, confirmará que el escaneo de Gobuster se está ejecutando activamente y procesando la lista de palabras, gracias a la bandera -k. Dado que se utilizó la bandera -q para suprimir la mayor parte de la salida, es posible que no vea mucha actividad a menos que se encuentre un directorio. Para hacer que el progreso sea más visible, eliminaremos la bandera -q y dejaremos que Gobuster se ejecute durante un corto período.

Ejecute el comando nuevamente, pero esta vez sin la bandera -q, para que pueda ver el progreso:

gobuster dir -u https://self-signed.badssl.com/ -w /usr/share/wordlists/dirb/common.txt -k

Ahora debería ver la salida normal de Gobuster, lo que indica que está escaneando activamente el objetivo. La salida mostrará el progreso y cualquier directorio o archivo descubierto. Por ejemplo:

===============================================================
Gobuster vX.X.X                -- by OJ <@_odejim> & @Neohapsis
===============================================================
[+] Url:                     https://self-signed.badssl.com/
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Status codes:            200,204,301,302,307,401,403,405
[+] User Agent:              gobuster/X.X.X
[+] Timeout:                 10s
[+] Allow redirects:         false
[+] Follow new location:     false
[+] No TLS validation:       true
===============================================================
2023/10/27 10:30:00 Starting gobuster in directory enumeration mode
/admin                (Status: 301)
/login                (Status: 301)
...

Puede presionar Ctrl+C para detener el escaneo una vez que haya confirmado que se está ejecutando. La conclusión clave es que el escaneo se inició correctamente sin el error de certificado anterior.

Comprender las implicaciones de seguridad de deshabilitar la verificación

En este paso final, discutiremos las implicaciones de seguridad de deshabilitar la verificación del certificado TLS. Si bien la bandera -k es útil para escenarios de prueba específicos, es crucial comprender por qué debe usarse con precaución y solo cuando sea necesario.

Cuando deshabilita la verificación del certificado TLS, esencialmente le está diciendo a Gobuster (o a cualquier otra herramienta) que confíe en cualquier certificado presentado por el servidor, independientemente de si es válido, caducado, autofirmado o emitido por una autoridad no confiable. Esto abre la puerta a varios riesgos de seguridad:

  1. Ataques Man-in-the-Middle (MitM): Un atacante podría interceptar su conexión a un servidor legítimo y presentar su propio certificado falsificado. Si la verificación está deshabilitada, su herramienta se conectaría sin saberlo al servidor del atacante, lo que le permitiría espiar o manipular su tráfico.
  2. Suplantación de identidad: Podría conectarse accidentalmente a un servidor malicioso que suplanta a su objetivo previsto. Sin la verificación del certificado, no hay garantía criptográfica de que se esté comunicando con el servidor genuino.
  3. Compromiso de la integridad y confidencialidad de los datos: Si un atacante puede realizar con éxito un ataque MitM, puede leer, modificar o inyectar datos en su comunicación, comprometiendo tanto la confidencialidad como la integridad.

¿Cuándo es aceptable usar -k?

  • Entornos de prueba controlados: Cuando está probando una aplicación o servidor en un entorno de laboratorio donde controla explícitamente el servidor y conoce sus certificados autofirmados o no válidos.
  • Redes internas: Para herramientas internas que se comunican dentro de una red confiable donde tiene control total sobre todos los puntos finales y comprende los riesgos.
  • Depuración: Temporalmente para fines de depuración, pero siempre vuelva a habilitar la verificación para operaciones de producción o sensibles.

Mejor práctica: Siempre priorice la verificación sólida de certificados TLS. Deshabilítela solo cuando sea absolutamente necesario y con una comprensión completa de los riesgos asociados. Para sistemas de producción, asegúrese de que siempre se utilicen certificados válidos y confiables.

Esto concluye el laboratorio sobre la deshabilitación de la verificación del certificado TLS en Gobuster. Ha aprendido a identificar un objetivo con problemas de certificado, observar el comportamiento predeterminado de Gobuster y luego omitir la verificación utilizando la bandera -k, al mismo tiempo que comprende las implicaciones críticas de seguridad.

Resumen

En este laboratorio, aprendió con éxito cómo gestionar la verificación de certificados TLS en Gobuster. Comenzó identificando un objetivo con un certificado autofirmado usando curl, lo que demostró el error de certificado típico. Luego, observó cómo Gobuster, por defecto, no puede escanear dicho objetivo debido a una estricta validación TLS. El núcleo del laboratorio implicó el uso de la bandera -k con Gobuster para omitir la verificación del certificado, lo que permitió que el escaneo continuara. Finalmente, adquirió una comprensión de las importantes implicaciones de seguridad de deshabilitar la verificación TLS, enfatizando su uso cauteloso solo en escenarios de prueba controlados o específicos. Este conocimiento es crucial para el uso efectivo y seguro de herramientas de escaneo web.