
Zeek script to detect servers vulnerable to CVE-2020-13777
Ce script effectue un test simple pour vérifier si un serveur est potentiellement vulnérable à CVE-2020-13777.
CVE-2020-13777 provoque la création de tickets de session non chiffrés par GnuTLS. Cela semble être détectable en vérifiant que gnutls définit le key_name à zéro - pour lequel il utilise les 16 premiers octets du ticket de session. Ce script vérifie si :
Les deux cas indiquent qu'un serveur utilise une version vulnérable de GnuTLS.
Les cas trouvés sont écrits dans notice.log. Exemple de sortie :
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 - - - - -
Les notifications sont dédoublonnées et ne sont enregistrées qu'une fois par default_suppression_interval (par défaut : 1 heure) pour chaque serveur.
Pour installer via zkg, il suffit d'utiliser
zkg install 0xxon/cve-2020-0601
Ce script ne fonctionne que pour les connexions TLS 1.2 (ou inférieures). Il n'alertera pas sur les serveurs vulnérables utilisant TLS 1.3. Le
Ce script n'a pas été testé de manière approfondie. Il fonctionne avec mes propres données de test générées et devrait trouver les serveurs vulnérables. Il y a une chance qu'il produise des faux positifs avec différents logiciels serveur, mais cela est peu probable.