Detectando POODLE y BEAST usando nmap

3

Necesita su consejo experto para lo siguiente -

  1. POODLE - Podemos deducir si un servidor es vulnerable a poodle si admite el protocolo sslv3 y utiliza cifrados CBC.

  2. BESTIA: cualquier servidor que admita sslv3 OR TLS 1.0 y use CBC Cifrados.

¿Mi entendimiento es correcto? Entiendo que estos ataques son explotados en el lado del cliente, pero aún así, si un servidor puede ser vulnerable por cualquier medio, es vulnerable.

Ahora, viene la parte de detección: el servidor AFAIK no envía la lista completa de las demandas de cifrado a     El cliente, pero solo envía el seleccionado en función de las demandas de cifrado.     Presentado por el cliente.

Ahora, usando el script nmap ssl_enum_ciphers podemos listar los conjuntos de cifrado utilizados por el servidor.

Esto es lo que dice la documentación de nmap sobre el script ssl_enum_ciphers:

This script repeatedly initiates SSLv3/TLS connections, 
each time trying a new cipher or compressor while recording
whether a host accepts or rejects it.
The end result is a list of all the ciphersuites and compressors that a server accepts.

Some servers use the client's ciphersuite ordering:
they choose the first of the client's offered suites that they also support.
Other servers prefer their own ordering:
they choose their most preferred suite from among those the client offers.
In the case of server ordering, the script makes extra probes to discover the server's sorted preference list.
Otherwise, the list is sorted alphabetically.

Entonces, si el cifrado preferido del servidor es RC4 y el cliente proporciona un cifrado CBC (solo uno), ¿seleccionará CBC o rechazará la solicitud?

Si elige CBC, entonces es respectivo del orden del cifrado (salida de nmap) entonces es vulnerable (?).

Si elige el orden del conjunto de cifrado del cliente, definitivamente es vulnerable (si acepta el cifrado CBC) (?).

Sobre la base de las afirmaciones anteriores, podemos inferir lo siguiente:

  1. Si el servidor admite sslv3 y tenemos un cifrado CBC en cualquier lugar del lista de cifrado dada por nmap, podemos decir que el servidor es vulnerable a POODLE?
  2. Si el servidor admite sslv3 / tls 1.0 y tenemos un cifrado CBC En cualquier lugar de la lista de cifrado dada por nmap, podemos decir que el servidor es vulnerable a BESTIA?

Lo que estoy tratando de entender es que, en base a la salida de nmap, puedo inferir si es vulnerable simplemente viendo si contiene cifrado CBC o si hay alguna otra sofisticación involucrada.

    
pregunta Ouney 18.02.2016 - 19:31
fuente

1 respuesta

1
  

Entonces, si el cifrado preferido del servidor es RC4 y el cliente proporciona un cifrado CBC (solo uno), ¿seleccionará CBC o rechazará la solicitud?

Si el servidor admite el cifrado CBC que proporciona el cliente, se utilizará el cifrado CBC. De lo contrario, la conexión fallará.

  

Si elige CBC, entonces es respectivo del orden del cifrado (salida de nmap) entonces es vulnerable (?).   Si elige el orden del conjunto de cifrado del cliente, entonces definitivamente es vulnerable (si acepta el cifrado CBC) (?).

Todas las conexiones SSLv3 a este servidor que utilizan cifrado CBC serán vulnerables a POODLE. Para BEAST es un poco más complicado ya que los navegadores pueden implementar la mitigación del lado del cliente.

  

i) Si el servidor admite sslv3 y tenemos un cifrado CBC en cualquier lugar de la lista de cifrado que proporciona nmap, ¿podemos decir que el servidor es vulnerable a POODLE?

No. Para ser vulnerable a POODLE, el servidor debe tener soporte para un cifrado CBC utilizando SSLv3. Si el servidor solo admite RC4 con SSLv3 y los cifrados CBC solo son compatibles con TLSv1 +, no será vulnerable a POODLE.

  

ii) Si el servidor admite sslv3 / tls 1.0 y tenemos un cifrado CBC en cualquier lugar de la lista de cifrado proporcionada por nmap, ¿podemos decir que el servidor es vulnerable a BEAST?

Sí, pero el ataque BEAST ya no es un problema ya que cada navegador moderno implementa la mitigación del ataque por parte del cliente.

  

Lo que estoy tratando de entender es que, en base a la salida de nmap, puedo inferir si es vulnerable simplemente viendo si contiene cifrado CBC o si hay alguna otra sofisticación involucrada.

Finalmente, sí:

  • SSLv3 + CBC = POODLE y BESTIA
  • TLSv1.0 + CBC = BESTIA

Ejemplo 1 , la siguiente configuración solo es vulnerable a BEAST con TLSv1.0 si se utiliza uno de los conjuntos de cifrado CBC:

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
|     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

Ejemplo 2 , la siguiente configuración solo es vulnerable a POODLE y BEAST en SSLv3:

PORT    STATE SERVICE REASON
443/tcp open  https   syn-ack
| ssl-enum-ciphers:
|   SSLv3:
|     ciphers:
|       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
|     compressors:
|       NULL
|     cipher preference: server
|_  least strength: C

Ejemplo 3 de la documentación de nmap, la configuración es vulnerable a POODLE en SSLv3 y BEAST en SSLv3 y TLCv1.0 es un paquete de cifrado CBC utilizado:

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
    
respondido por el Jyo de Lys 19.02.2016 - 12:24
fuente

Lea otras preguntas en las etiquetas