Escanear hosts y determinar cifrados en puertos SSL

Los dos métodos más sencillos para averiguar los cifrados soportados por un host que tiene en escucha un puerto con SSL son utilizar nmap o SSLScan. Normalmente este tipo de tareas se realizan para securizar el servicio y evitar publicar cifrados no seguros u obsoletos.

Si se va a utilizar NMAP hay que asegurarse de tener disponible el script ssl-enum-ciphers. El script inicia conexiones contra el host utilizando en cada una un tipo de cifrado distinto, mostrando por salida estándar si el servidor acepta o no la conexión. Ejemplo:

# nmap --script ssl-enum-ciphers -p 443 192.168.1.100
PORT    STATE SERVICE REASON
443/tcp open  https   syn-ack
| ssl-enum-ciphers:
|   SSLv3:
|     ciphers:
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|   TLSv1.0:
|     ciphers:
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 256) - A
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 256) - A
|     compressors:
|       NULL
|     cipher preference: server
|_  least strength: C

SSLScan hace lo mismo aunque muestra el resultado de forma bastante más ordenada y legible que nmap:

$ sslscan 192.168.1.100:443
                   _
           ___ ___| |___  ___ __ _ _ __
          / __/ __| / __|/ __/ _` | '_ \
          \__ \__ \ \__ \ (_| (_| | | | |
          |___/___/_|___/\___\__,_|_| |_|

                  Version 1.8.2
             http://www.titania.co.uk
        Copyright Ian Ventura-Whiting 2009


Testing SSL server 192.168.1.100 on port 443

  Supported Server Cipher(s):
    Rejected  SSLv3  256 bits  ADH-AES256-SHA
    Accepted  SSLv3  256 bits  DHE-RSA-AES256-SHA
    Rejected  SSLv3  256 bits  DHE-DSS-AES256-SHA
    Accepted  SSLv3  256 bits  AES256-SHA
    Rejected  SSLv3  128 bits  ADH-AES128-SHA
[...]

SSLScan se puede instalar a partir de repositorios (apt, yum, etc).

3 comentarios en “Escanear hosts y determinar cifrados en puertos SSL

Comments are closed.