web-dev-qa-db-fra.com

Détecter le caniche et la bête à l'aide de Nmap

Besoin de vos conseils d'experts pour ce qui suit -

  1. Poodle - Nous pouvons déduire si un serveur est vulnérable au caniche s'il prend en charge le protocole SSLV3 et utilise des chiffres CBC.

  2. Beast - Tout serveur prenant en charge SSLV3 OR TLS 1.0 et utilise des chiffres CBC.

Est-ce que ma compréhension est correcte? Je comprends que ces attaques sont exploitées sur le côté du client, mais toujours si un serveur peut être rendu vulnérable par tout moyen vulnérable.

Maintenant, vient la partie de détection - AFAIK Server n'envoie pas la liste complète des combinaisons de chiffrement sur le client, mais n'envoie que la sélection sélectionnée sur les combinaisons de chiffrement présentées par le client.

Maintenant, en utilisant nmap ssl_enum_ciphers Script Nous pouvons énumérer les suites ciphères utilisées par le serveur.

C'est ce que dit la documentation NMAP sur SSL_ENUM_CIPHERS Script:

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.

Donc, si le chiffrement préféré du serveur est RC4 et le client fournit un chiffre CBC (un seul) Sélectionnera-t-il CBC ou rejette la demande?

S'il choisit CBC, IR-respective de l'ordre de chiffrement (sortie de NMAP), il est vulnérable (?).

S'il choisit de la commande de Ciphersuite du client, il est certainement vulnérable (s'il accepte CBC Cipher) (?).

Basé sur des déclarations ci-dessus, pouvons-nous déduire les éléments suivants -

  1. Si le serveur prend en charge SSLV3 et que nous avons un chiffre CBC n'importe où dans la liste de chiffrement donnée par NMAP, pouvons-nous dire que le serveur est vulnérable au caniche?
  2. Si le serveur prend en charge SSLV3/TLS 1.0 et nous avons un chiffre CBC n'importe où dans la liste de chiffrement donnée par NMAP, pouvons-nous dire que le serveur est vulnérable à la bête?

Ce que j'essaie de comprendre, c'est que sur la base de la production de NMAP, puis-je déduire si elle est vulnérable, voir simplement s'il contient CBC Cipher ou y a-t-il une autre sophistication impliquée?

2
Ouney

Donc, si le chiffrement préféré du serveur est RC4 et le client fournit un chiffre CBC (un seul) Sélectionnera-t-il CBC ou rejette la demande?

Si le serveur prend en charge la CBC Cipher que le client fournit, le chiffre CBC sera utilisé. Sinon, la connexion échouera.

S'il choisit CBC, IR-respective de l'ordre de chiffrement (sortie de NMAP), il est vulnérable (?). S'il choisit de la commande de Ciphersuite du client, il est certainement vulnérable (s'il accepte CBC Cipher) (?).

Chaque connexion SSLV3 à ce serveur utilisant CBC Cipher sera vulnérable au caniche. Pour la bête, il est un peu plus compliqué car les navigateurs peuvent mettre en œuvre l'atténuation de la clientèle.

i) Si le serveur prend en charge SSLV3 et que nous avons un chiffre CBC n'importe où dans la liste des chiffres donnés par NMAP, pouvons-nous dire que le serveur est vulnérable au caniche?

Non. Pour être vulnérable au caniche, le serveur doit avoir la prise en charge d'un chiffre CBC à l'aide de SSLV3. Si le serveur prend en charge uniquement RC4 avec les chiffres SSLV3 et CBC ne sont supportés que par TLSV1 +, il ne sera pas vulnérable au caniche.

ii) Si le serveur prend en charge SSLV3/TLS 1.0 et que nous avons un chiffre CBC n'importe où dans la liste de chiffrement donnée par NMAP, pouvons-nous dire que le serveur est vulnérable à la bête?

Oui, mais la bête attaque n'est plus un problème car tous les navigateurs modernes implémentent l'atténuation du côté du client de l'attaque.

Ce que j'essaie de comprendre, c'est que sur la base de la production de NMAP, puis-je déduire si elle est vulnérable, voir simplement s'il contient CBC Cipher ou y a-t-il une autre sophistication impliquée?

Enfin, oui:

  • SSLV3 + CBC = caniche et bête
  • TLSV1.0 + CBC = Bête

Exemple 1, la configuration suivante est vulnérable à la bête avec TLSV1.0 si l'une des suites CBC Cipher est utilisée:

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

Exemple 2, la configuration suivante est uniquement vulnérable au caniche et à la bête sur 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

Exemple de la documentation NMAP, la configuration est vulnérable au caniche sur SSLV3 et Beast sur SSLV3 et TLCV1.0 est une suite CBC Cipher est utilisée:

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
1
Jyo de Lys