Script ssl-enum-ciphers de Nmap

  • Posted on: 18 January 2024
  • By: ReYDeS

Este script inicia repetidamente conexiones SSLv3/TLS, cada vez intentando un nuevo cifrado o compresor mientras registra si un host lo acepta o rechaza. El resultado final es una lista de todas las suites de cifrado y compresores aceptadas por un servidor.

Cada suite de cifrado se muestra con una calificación de letras (desde la A hasta la F) lo cual indica la fortaleza de la conexión. El grado se basa en la fortaleza criptográfica para el intercambio de llaves y cifrado del flujo. La elección del algoritmo para integridad del mensaje (hash) no es un factor. La línea de salida iniciando con el texto "fortaleza mínima", muestra la fortaleza del cifrado más débil ofrecido. La puntuación se basa en la Guía para la clasificación de servidores SSL de Qualys SSL Labs, pero no tiene en consideración la compatibilidad con el protocolo (versión TLS), lo cual constituye el 30 % de la clasificación de SSL Labs.

SSLv3/TLSv1 requieren más esfuerzo para determinar cuales cifrados y métodos para compresión admite un servidor comparado con SSLv2. Un cliente enumera los cifrados y compresores capaz de ser admitidos, y el servidor responderá con un único cifrado y compresor elegidos, o con un aviso de rechazo.

Algunos servidores utilizan el orden de las suites para cifrado del cliente: eligiendo el primero de las suites ofrecidas por el cliente las cuales también admiten. Otros servidores prefieren sus propias ordenes: escogen su suite preferida entre las ofrecidas por el cliente. En el caso del pedido del servidor, el script realiza pruebas adicionales para descubrir la lista de preferencias ordenadas del servidor. De lo contrario la lista se ordena alfabéticamente.

El script advertirá sobre ciertas configuraciones incorrectas de SSL, como certificados firmados MD5, parámetros DH efímeros de baja calidad, y la vulnerabilidad POODLE.

Este script es intrusivo, pues debe iniciar muchas conexiones hacia un servidor, siendo por lo tanto bastante ruidoso.

Se recomienda utilizar este script junto con la detección de versión (-sV), para descubrir servicios SSL/TLS ejecutándose en puertos inesperados. Para los puertos SSL más comunes como 443, 25 (con STARTTLS), 3389, etc., el script es lo suficientemente inteligente como para ejecutarse por si solo.

Se ejecuta el script ssl-enum-chipher de Nmap.

$ sudo nmap -Pn -sV -p443 --script ssl-enum-ciphers -iL serversgobpe.txt

La opción “-Pn” trata todos los hosts como su estuviese en línea o en funcionamiento

La opción “-sV” prueba los puertos abiertos para determinar información sobre el servicio y versión.

La opción “--script” es una lista separada por comas de directorios, archivos script, o categorías de scripts.

La opción “-iL” define un lista de entrada de hosts o redes.

Para el primer host escaneado la menor fortaleza identifica es A.

Para el segundo host escaneado se presenta una advertencia sobre el intercambio de llaves (DH 1024) es de menor fortaleza comparado con la llave del certificado.

Para el tercer host escaneado se presentan más advertencias aún. Sobre el cifrado 3DES de bloques de 64 bits es vulnerable al ataque de nombres SWEET32. Así mismo el cifrado RC4 roto es obsoleto en base al RFC 7465. También mencionad la suite de cifrado utiliza MD5 para la integridad del mensajes, y por último obre el intercambio de llaves (DH 1024) es de menor fortaleza comparado con la llave del certificado.

Como es consecuente inferir, se deben revisar y gestionar adecuadamente las advertencias presentadas por el script ssl-enum-ciphers de Nmap.

Fuentes:

https://nmap.org/nsedoc/scripts/ssl-enum-ciphers.html
https://www.cisa.gov/news-events/alerts/2014/10/17/ssl-30-protocol-vulne...
https://www.ssllabs.com/projects/rating-guide/
https://www.ssllabs.com/ssltest/

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero