Ssl-enum-ciphers Download

1 view
Skip to first unread message

Osoulo Lejeune

unread,
Apr 27, 2024, 7:56:16 PM4/27/24
to lightihamas

Cómo descargar y usar cifrados ssl-enum para probar la configuración SSL/TLS

SSL/TLS es un protocolo que proporciona una comunicación segura a través de Internet. Encripta y autentica los datos intercambiados entre un cliente y un servidor, evitando el espionaje, la manipulación y la suplantación. Sin embargo, no todas las configuraciones SSL/TLS son igualmente seguras. Algunos pueden usar conjuntos de cifrado débiles o obsoletos, métodos de compresión, protocolos o certificados que los exponen a varios ataques y vulnerabilidades.

Por eso es importante probar y evaluar la configuración SSL/TLS de un servidor antes de confiar en él con información confidencial. Una herramienta que puede ayudarlo con esta tarea es ssl-enum-ciphers, un script nmap que inicia repetidamente conexiones SSL/TLS, cada vez que intenta un nuevo cifrado o compresor mientras graba si un host lo acepta o lo rechaza. El resultado final es una lista de todos los ciphersuites y compresores que un servidor acepta, junto con sus grados y fortalezas.

ssl-enum-ciphers download


Descargar archivo https://t.co/anju05mGgg



En este artículo, le mostraremos cómo descargar y usar cifrados ssl para probar la configuración SSL/TLS de un servidor. También explicaremos cómo funciona el script, cómo interpretar su salida, cuáles son algunas vulnerabilidades comunes de SSL/TLS y configuraciones erróneas que puede detectar, y cómo comparar sus resultados con otras herramientas.

Cómo descargar y usar cifrados ssl-enum con nmap

ssl-enum-ciphers es un script nmap que requiere nmap, una herramienta de exploración de red, para ejecutarse. Puede descargar nmap desde su sitio web oficial: [nmap.org]( 1 ). También puede instalarlo usando su gestor de paquetes si está usando Linux o Mac OS.

Una vez instalado nmap, es necesario descargar ssl-enum-ciphers desde su repositorio: [svn.nmap.org]( 2 ). Puede utilizar el siguiente comando para descargarlo:

Alternativamente, puede usar svn (subversion) para revisar todo el directorio de scripts nmap:

Después de descargar ssl-enum-ciphers, debe colocarlo en su directorio de scripts nmap. La ubicación de este directorio puede variar dependiendo de su sistema operativo y método de instalación, pero puede encontrarlo ejecutando:

nmap --script-help ssl-enum-ciphers

Si ve un mensaje de error diciendo que nmap no puede encontrar el script, entonces debe moverlo al directorio correcto. Por ejemplo, en Linux, es posible que necesite moverlo a /usr/share/nmap/scripts/.

Una vez que haya colocado ssl-enum-ciphers en su directorio de scripts nmap, puede usarlo con nmap especificando su nombre después de la opción --script. Por ejemplo, para probar la configuración SSL/TLS de www.example.com en el puerto 443 (el puerto predeterminado para HTTPS), puede ejecutar:

nmap --script ssl-enum-ciphers -p 443 www.example.com

SERVICIO ESTATAL DEL PUERTO 443/tcp open https ssl-enum-ciphers: TLSv1.2: ciphers: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A TLS_ECDHE_____withchacha_20poly1305sha_rsasha_ (ec_ (ecdh_x25519) - A TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (ecdh_x25519) - A TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (ecdh_x25519) - A compresores: NULL su preferencia: clienteadvertencias: Cifrado de bloques de 64 bits 3DES vulnerable al ataque SWEET32 Fuerza mínima: A

Como puedes ver, la salida de ssl-enum-ciphers contiene varios campos e información que pueden ayudarte a evaluar la seguridad de la configuración SSL/TLS del servidor. Vamos a repasarlos con más detalle.

Cómo funciona el cifrado ssl-enum-ciphers y cuáles son los campos de salida?

El script intenta probar todos los conjuntos de cifrado y compresores posibles que son compatibles con la biblioteca SSL/TLS de nmap, que se basa en OpenSSL. Sin embargo, es posible que algunos conjuntos de cifrado o compresores no estén disponibles o habilitados en su sistema, dependiendo de su versión y configuración de OpenSSL. Puede comprobar qué conjuntos de cifrado y compresores están disponibles en su sistema ejecutando:

nmap --script ssl-enum-ciphers --script-args ssl-enum-ciphers.displayall

La salida de ssl-enum-ciphers consta de los siguientes campos:

    • PORT: El número de puerto que fue escaneado.
    • STATE: El estado del puerto, como abierto, cerrado o filtrado.
    • SERVICE: El nombre de servicio que se detectó en el puerto, como https o smtps.
    • ssl-enum-ciphers: El nombre del script que produjo la salida.
    • TLSv1.2: La versión de protocolo que se utilizó para la conexión. El script intenta probar todas las versiones de protocolo que son compatibles con la biblioteca SSL/TLS de nmap, que son SSLv2, SSLv3, TLSv1.0, TLSv1.1 y TLSv1.2. Sin embargo, es posible que algunas versiones de protocolo no estén disponibles o habilitadas en su sistema, o que el servidor las rechace. Puede especificar qué versión de protocolo usar añadiendo --script-args ssl-enum-ciphers.protocol=version a su comando nmap.
    • ciphers: La lista de conjuntos de cifrado que fueron aceptados por el servidor, junto con sus grados y parámetros de intercambio de claves. Las calificaciones se basan en el sistema de puntuación utilizado por Qualys SSL Labs, que va desde A + (el mejor) a F (el peor). Los parámetros de intercambio de claves se muestran entre paréntesis después del nombre de la suite de cifrado, e indican el tipo y el tamaño de las claves que se utilizan para el cifrado y la autenticación. Por ejemplo, ecdh_x25519 significa que la curva elíptica Diffie-Hellman con curva x25519 se utiliza para el intercambio de claves.
    • cipher preference: El orden de preferencia de los conjuntos de cifrado que son aceptados por el servidor. Esto puede ser cliente o servidor, dependiendo de quién decida qué suite de cifrado usar para la conexión. Si es cliente, entonces el script elige la suite de cifrado de su lista de disponibles. Si se trata de un servidor, el servidor elige la suite de cifrado de la lista que envía el script.
    • warnings: La lista de advertencias que indican vulnerabilidades potenciales o configuraciones erróneas en la configuración SSL/TLS del servidor. Estas advertencias se basan en varias fuentes de información y mejores prácticas, como la prueba de Qualys SSL Labs, el generador de configuración SSL de Mozilla y la hoja de trucos de protección de capa de transporte de OWASP. Algunos ejemplos de advertencias son: conjuntos de cifrado débiles, protocolos inseguros, problemas de certificados, vulnerabilidades de compresión y ataques conocidos.
    • least strength: El grado más bajo entre las suites de cifrado que son aceptadas por el servidor. Esto indica el nivel mínimo de seguridad que el servidor ofrece a sus clientes. Idealmente, esto debería ser A o superior, ya que los grados más bajos pueden exponer al servidor a varios riesgos y ataques.

    Al analizar estos campos, puede obtener una visión general completa de la configuración SSL/ TLS del servidor e identificar cualquier debilidad o problema que necesite ser corregido o mejorado.

    Cómo interpretar los grados de la suite de cifrado y el indicador de menor fuerza?

    Los grados de conjunto de cifrado y el indicador de menor fuerza se basan en el sistema de puntuación utilizado por Qualys SSL Labs, que es una herramienta ampliamente utilizada y respetada para probar y evaluar configuraciones SSL/ TLS. El sistema de puntuación asigna una calificación de A+ a F a cada conjunto de cifrado en función de sus propiedades de seguridad y rendimiento. Las calificaciones se calculan utilizando un algoritmo complejo que tiene en cuenta varios factores como:

      • El algoritmo de autenticación y el tamaño de la clave
      • El algoritmo de intercambio de claves y el tamaño de la clave
      • La versión y las extensiones del protocolo
      • El secreto hacia adelante y el perfecto soporte del secreto hacia adelante
      • La vulnerabilidad a los ataques y debilidades conocidas
      • Problemas de compatibilidad y rendimiento

      La siguiente tabla resume los principales criterios y umbrales para cada calificación:

      Grado
      Criterios
      A+
      Todas las suites de cifrado son seguras y admiten un perfecto secreto de reenvío. El servidor admite HTTP Strict Transport Security (HSTS) con una larga duración.
      A
      Todas las suites de cifrado son seguras y soportan un perfecto secreto de reenvío. El servidor no soporta HSTS o lo soporta con una corta duración.
      B
      Algunos conjuntos de cifrado son seguros pero no admiten un perfecto secreto de reenvío. El servidor admite protocolos débiles como TLS 1.0 o TLS 1.1.
      C
      Algunos conjuntos de cifrado son débiles o inseguros, como los que usan 3DES, RC4 o MD5. El servidor admite protocolos inseguros como SSL 3.0.
      D
      Algunas suites de cifrado son muy débiles o inseguras, como las que usan NULL, EXPORT o ANON. El servidor soporta protocolos muy inseguros como SSL 2.0.
      E
      El servidor tiene problemas de certificado, como certificados caducados, autofirmados, revocados o no coincidentes.
      F
      El servidor tiene serios problemas de seguridad, como ser vulnerable a ataques Heartbleed, POODLE o FREAK.

      Por lo tanto, se recomienda usar solo suites de cifrado con grados A o superiores, y deshabilitar o eliminar cualquier suite de cifrado con grados más bajos. Esto asegurará que el servidor proporcione un alto nivel de seguridad y rendimiento a sus clientes, y que no sea vulnerable a ningún ataque o debilidad conocidos.

      Cuáles son algunas vulnerabilidades SSL/TLS comunes y configuraciones erróneas que los cifrados ssl-enum-pueden detectar y advertir?

      ssl-enum-ciphers puede detectar y advertir sobre varias vulnerabilidades y errores de configuración de SSL/TLS que pueden afectar la seguridad y el rendimiento de la conexión. Algunos de ellos son:

        • 64-bit block cipher 3DES vulnerable to SWEET32 attack: Esta advertencia significa que el servidor acepta una suite de cifrado que utiliza 3DES, un cifrado de bloque de 64 bits que es vulnerable a un ataque de cumpleaños llamado SWEET32. Este ataque permite a un atacante recuperar texto plano del tráfico cifrado mediante la captura de una gran cantidad de datos (alrededor de 32 GB) y la explotación de una colisión en los bloques de cifrado. Para evitar este ataque, se recomienda deshabilitar o eliminar cualquier suite de cifrado que use 3DES.
        • Cifrado RC4 inseguro detectado: Esta advertencia significa que el servidor acepta una suite de cifrado que utiliza RC4, un cifrado de flujo que es inseguro y obsoleto. RC4 tiene varias debilidades y vulnerabilidades, como sesgos en su salida, que permiten a un atacante romper su cifrado y recuperar texto plano del tráfico cifrado. Para evitar esto, se recomienda deshabilitar o eliminar cualquier conjunto de cifrado que use RC4.
        • El servidor soporta SSLv3: Esta advertencia significa que el servidor soporta SSLv3, una versión de protocolo vieja e insegura que es vulnerable a un ataque de relleno llamado POODLE. Este ataque permite a un atacante descifrar el tráfico SSLv3 explotando un fallo en su esquema de relleno. Para evitar esto, se recomienda desactivar o eliminar el soporte SSLv3 del servidor.
        • Servidor no soporta Forward Secrecy con los navegadores de referencia: Esta advertencia significa que el servidor no soporta Forward Secrecy (FS) o Perfect Forward Secrecy (PFS) con los navegadores de referencia, que son Chrome 51, Firefox 47, IE 11 en Windows 7, Edge 13 en Windows 10, Java 8u91, OpenSSL 1.0.2h, Safari 9 en OS X 10.11, y Safari 9 en iOS 9. FS o PFS es una propiedad de algunos algoritmos de intercambio de claves que asegura que las claves de cifrado no se derivan de una estática o de largotérmino secreto, como una clave privada o una contraseña. Esto significa que incluso si un atacante logra comprometer o robar el secreto a largo plazo, no puede descifrar sesiones pasadas o futuras que utilizan diferentes claves. Para soportar FS o PFS, se recomienda utilizar algoritmos de intercambio de claves como ECDHE o DHE.
        • El certificado de servidor no coincide con el nombre de host: esta advertencia significa que el certificado de servidor no coincide con el nombre de host que se escaneó. Esto puede indicar un error de configuración, un certificado erróneo o un ataque man-in-the-middle. Para solucionar esto, se recomienda usar un certificado válido que coincida con el nombre de host del servidor.
        • El certificado de servidor no es de confianza: Esta advertencia significa que el certificado de servidor no es de confianza para la biblioteca SSL/TLS de nmap, que utiliza el almacén raíz de Mozilla como su almacén de confianza. Esto puede indicar un certificado autofirmado, un certificado caducado, un certificado revocado o una entidad certificadora desconocida. Para solucionar esto, se recomienda usar un certificado de confianza emitido por una autoridad de certificación de buena reputación.

        Estas son algunas de las vulnerabilidades SSL/TLS más comunes y las configuraciones erróneas que los cifrados ssl-enum-pueden detectar y advertir, pero puede haber otros que no están cubiertos por el script. Por lo tanto, es recomendable utilizar otras herramientas y fuentes de información para complementar y verificar los resultados de los cifrados ssl-enum-ciphers.

        ssl-enum-ciphers es una herramienta útil y conveniente para probar y evaluar la configuración SSL/TLS de un servidor, pero no es la única. Hay otras herramientas que pueden proporcionar información y conocimientos similares o diferentes, como SSLLabs o testssl.sh. Estas herramientas pueden tener diferentes características, métodos, criterios y alcances que los cifradores ssl-enum, y pueden producir diferentes resultados o grados. Por lo tanto, es beneficioso comparar los resultados de los cifrados ssl-enum con otras herramientas para obtener una imagen más completa y precisa de la configuración SSL/ TLS de un servidor.

        SSLLabs es una herramienta basada en la web que proporciona un servicio en línea gratuito para probar y calificar la configuración SSL/TLS de un servidor. Utiliza un sistema de puntuación complejo y completo que tiene en cuenta varios factores tales como soporte de protocolo, intercambio de claves, fuerza de cifrado, validez de certificado, soporte de HSTS, grapado de OCSP y más. También proporciona información detallada y explicaciones sobre cada aspecto de la configuración de SSL/TLS, así como recomendaciones y mejores prácticas para mejorarla. Puede acceder a SSLLabs en [ssllabs.com].

        testssl.sh es una herramienta de línea de comandos que proporciona un servicio gratuito sin conexión para probar y calificar la configuración SSL/TLS de un servidor. Utiliza OpenSSL o LibreSSL como su biblioteca SSL/TLS, y soporta varias características como detección de protocolos, enumeración de cifrado, análisis de certificados, soporte HSTS, grapado OCSP, escaneo de vulnerabilidades y más. También proporciona información detallada y explicaciones sobre cada aspecto de la configuración de SSL/TLS, así como recomendaciones y mejores prácticas para mejorarla. Puede descargar testssl.sh desde su repositorio: [github.com].

        Para comparar los resultados de ssl-enum-ciphers con otras herramientas como SSLLabs o testssl.sh, puede utilizar los siguientes pasos:

          • Ejecute SSLLabs o testssl.sh en el mismo servidor de destino y anote sus campos de salida, como soporte de protocolo, intercambio de claves, fuerza de cifrado, validez de certificado, soporte HSTS, grapado OCSP, vulnerabilidades y calificación.
          • Compare los campos de salida de ssl-enum-ciphers con los de SSLLabs o testssl.sh y busque cualquier diferencia o discrepancia. Por ejemplo, es posible que algunas suites o compresores de cifrado sean aceptados por una herramienta pero no por otra, o que algunas advertencias o vulnerabilidades sean detectadas por una herramienta pero no por otra.
          • Analizar las razones e implicaciones de cualquier diferencia o discrepancia. Por ejemplo, puede encontrar que algunas diferencias o discrepancias se deben a diferentes versiones o configuraciones de las bibliotecas SSL/ TLS, o diferentes métodos o criterios de prueba o calificación. También puede encontrar que algunas diferencias o discrepancias se deben a errores o errores en las herramientas, o limitaciones o suposiciones en su diseño. Es posible que necesite consultar la documentación o el código fuente de las herramientas para entender su lógica y comportamiento.
          • Basado en la comparación y el análisis, decidir qué herramienta proporciona los resultados más precisos y fiables para su propósito y necesidades. También puede utilizar varias herramientas para verificar y validar los resultados, o para obtener diferentes perspectivas e información sobre la configuración SSL/ TLS del servidor.

          Al comparar los resultados de los cifrados ssl-enum-ciphers con otras herramientas como SSLLabs o testssl.sh, puede obtener una imagen más completa y precisa de la configuración SSL/ TLS del servidor, e identificar las fortalezas o debilidades que deben abordarse o mejorarse.

          Conclusión

          Al usar ssl-enum-ciphers, puede obtener una visión general completa de la configuración SSL/ TLS del servidor e identificar cualquier debilidad o problema que deba solucionarse o mejorarse. También puede comparar los resultados de ssl-enum-ciphers con otras herramientas como SSLLabs o testssl.sh para obtener una imagen más precisa y confiable de la configuración SSL/TLS del servidor.

          Si quieres saber más sobre los cifrados ssl-enum-ciphers, puedes visitar su sitio web oficial: [nmap.org]. También puede consultar su documentación: [nmap.org], su código fuente: [svn.nmap.org], y su rastreador de errores: [github.com]. Si tiene alguna pregunta, comentario o sugerencia, puede ponerse en contacto con su autor: [dan...@nmap.com].

          Esperamos que haya disfrutado de este artículo y lo encontró útil. Si lo hizo, por favor compártalo con sus amigos y colegas que también pueden estar interesados en probar y evaluar configuraciones SSL/ TLS. Gracias por leer!

          Preguntas frecuentes

          Cuáles son los inconvenientes o limitaciones de usar cifrado ssl-enum-ciphers?

          Algunos de los inconvenientes o limitaciones del uso de cifrado ssl-enum son:

            • Puede que no sea compatible con todos los conjuntos de cifrado o compresores que están disponibles o habilitados en su sistema, dependiendo de su versión y configuración de OpenSSL.
            • Es posible que no admita todas las versiones de protocolo disponibles o habilitadas en su sistema, dependiendo de la versión y configuración de nmap.
            • Puede que no detecte todas las vulnerabilidades o errores de configuración que afectan a la configuración SSL/TLS del servidor, dependiendo de su alcance y diseño.
            • Puede producir diferentes resultados o grados que otras herramientas, dependiendo de sus características, métodos, criterios y alcances.
            • Puede causar algunos problemas de rendimiento o congestión de la red al escanear un gran número de hosts o puertos.

            Cómo personalizar o modificar el script para necesidades o escenarios específicos?

              • Puede usar varios argumentos de script para cambiar el comportamiento o la salida del script. Por ejemplo, puede usar ssl-enum-ciphers.displayall para mostrar todos los conjuntos de cifrado y compresores que están disponibles en su sistema, ssl-enum-ciphers.protocol para especificar qué versión de protocolo usar para la conexión, ssl-enum-ciphers.cacert para especificar qué archivo de autoridad de certificado usar para verificar certificados, y ssl-enum-ciphers.vulns para permitir el escaneo de vulnerabilidades. Puede ver todos los argumentos del script ejecutando nmap --script-help ssl-enum-ciphers.
              • Puede editar el código fuente del script para agregar nuevas características o funciones, corregir errores o errores, mejorar el rendimiento o la compatibilidad, o cambiar cualquier otra cosa que desee. El código fuente del script está escrito en Lua, un lenguaje de scripting fácil de aprender y usar. Puede encontrar el código fuente del script en [svn.nmap.org] o [github.com]. También puede usar svn o git para revisar la última versión del script o para enviar sus cambios o parches al autor del script.
              • Puede crear su propio script basado en el código o la lógica de los cifrados ssl-enum, o utilizarlo como una plantilla o referencia para su propio script. También puede utilizar otros scripts o bibliotecas nmap para mejorar o complementar la funcionalidad de los cifrados ssl-enum. Puede encontrar más información y ejemplos sobre cómo escribir scripts nmap en [nmap.org].

              Cómo solucionar o resolver errores o problemas comunes al ejecutar el script?

              Algunos errores o problemas comunes que puede encontrar al ejecutar el script son:

                • nmap: falló al abrir el archivo de salida normal ssl-enum-ciphers.nse para escribir: Este error significa que nmap no puede escribir la salida de ssl-enum-ciphers a un archivo llamado ssl-enum-ciphers.nse. Esto puede deberse a que no tiene permiso para escribir en el directorio actual, o porque el archivo ya existe y es de solo lectura. Puede solucionar esto cambiando los permisos del directorio o el archivo, o especificando un nombre de archivo de salida diferente con la opción -oN.
                • ssl-enum-ciphers.nse: falló al inicializar el motor de script: Este error significa que nmap no puede cargar o ejecutar el motor de script, que es Lua. Esto puede deberse a que Lua no está instalado o no está en su ruta, o a que nmap no está compilado con soporte para Lua. Puede solucionar esto instalando Lua desde su sitio web oficial: [lua.org] o usando su administrador de paquetes si está usando Linux o Mac OS. También debe asegurarse de que Lua está en su camino, y que nmap está compilado con soporte de Lua. Puede comprobar si nmap tiene soporte para Lua ejecutando nmap --versión y buscando la línea "Compilado con".
                • ssl-enum-ciphers.nse: falló al cargar el script: Este error significa que nmap no puede cargar o ejecutar el script, que es ssl-enum-ciphers.nse. Esto puede deberse a que el script no está en su directorio nmap scripts, o a que el script tiene errores de sintaxis o errores. Puede solucionar esto colocando el script en su directorio nmap scripts, que puede encontrar ejecutando nmap --script-help ssl-enum-ciphers, o editando el script y corrigiendo cualquier error o error.

                Cómo actualizar o actualizar el script a la última versión o utilizar diferentes versiones de nmap?

                Algunas maneras de actualizar o actualizar el script a la última versión o usar diferentes versiones de nmap son:

                  • Puede usar svn (subversion) para ver la última versión del script desde su repositorio: [svn.nmap.org]. También puede usar svn update para actualizar su copia local del script para que coincida con la última versión del repositorio.
                  • Puede usar git (sistema de control de versiones) para clonar la última versión del script desde su repositorio: [github.com]. También puedes usar git pull para actualizar tu copia local del script para que coincida con la última versión del repositorio.
                  • Puede descargar la última versión del script desde su sitio web: [nmap.org]. También puede consultar el sitio web para cualquier noticia o actualización sobre el script.
                  • Puede utilizar diferentes versiones de nmap para ejecutar el script, dependiendo de sus necesidades o preferencias. Puede descargar diferentes versiones de nmap desde su sitio web: [nmap.org] o usar su gestor de paquetes si está utilizando Linux o Mac OS. También puede compilar nmap desde el código fuente con diferentes opciones o características, como soporte de Lua o versión OpenSSL.

                  Cómo contribuir o proporcionar retroalimentación al desarrollo del script?

                  Algunas maneras de contribuir o proporcionar retroalimentación al desarrollo del script son:

                    • Puede reportar cualquier error, error, problema o sugerencia que encuentre al usar el script a su rastreador de errores: [github.com]. También puede enviar sus parches o cambios al autor del script: [dan...@nmap.com].
                    • Puede unirse a la lista de correo de desarrollo nmap: [seclists.org] y participar en las discusiones y debates sobre el script y otras características de nmap. También puede hacer preguntas, compartir ideas o solicitar ayuda a otros usuarios y desarrolladores de nmap.
                    17b9afdd22
                    Reply all
                    Reply to author
                    Forward
                    0 new messages