
Script de Zeek para detectar servidores vulnerables a CVE-2020-13777
Este script realiza una prueba simple para verificar si un servidor es potencialmente vulnerable a CVE-2020-13777.
CVE-2020-13777 provoca que GnuTLS cree tickets de sesión sin cifrar. Esto parece ser detectable verificando que gnutls establece key_name a cero, para lo cual utiliza los primeros 16 bytes del ticket de sesión. Este script comprueba si:
Ambos casos indican que un servidor está empleando una versión vulnerable de GnuTLS.
Los casos encontrados se escriben en notice.log. Ejemplo de salida:
1591660828.497706 CHhAvVGS1DHFjwGM9 ::1 58800 ::1 5556 - - - tcp CVE_2020_13777::CVE_2020_13777_Server Server potentially vulnerable to CVE-2020-13777 detected - ::1 ::1 5556 - - Notice::ACTION_LOG 3600.000000 - - - - -
1591660837.423412 ClEkJM2Vm5giqnMf4h ::1 58802 ::1 5556 - - - tcp CVE_2020_13777::CVE_2020_13777_Resumed Server potentially vulnerable to CVE-2020-13777 detected; client resumed with suspicious session ticket - ::1 ::1 5556 - - Notice::ACTION_LOG 3600.000000 - - - - -
Las notificaciones se deduplican y solo se registran una vez por default_suppression_interval (predeterminado: 1 hora) para cada servidor.
Para instalar mediante zkg, simplemente use
zkg install 0xxon/cve-2020-0601
Este script solo funciona para conexiones TLS 1.2 (o inferiores). No alertará sobre servidores vulnerables que usen TLS 1.3. El
Este script no ha sido probado exhaustivamente. Funciona con mis datos de prueba autogenerados y debería encontrar servidores vulnerables. Existe la posibilidad de que genere falsos positivos con diferentes software de servidor, pero esto es algo improbable.