Démo de détection et d'atténuation de CVE-2020-1472 (ZeroLogon)
Ce projet démontre la détection et l'atténuation de la vulnérabilité Windows critique CVE-2020-1472, également connue sous le nom de ZeroLogon. Cette vulnérabilité permet à des attaquants d'obtenir un accès administratif non authentifié. Ce projet a été développé dans le cadre d'un projet scolaire de cybersécurité. Le crédit du code PoC revient à Tom Tervoort (Secura) et le crédit du jeu de règles Suricata revient à Proofpoint Emerging Threats.
Composants clés :
- Tester la vulnérabilité d'un contrôleur de domaine à l'aide d'un script PoC
- Surveiller les indicateurs via les journaux d'événements Windows
- Mettre en œuvre Suricata IDS avec des règles personnalisées
- Appliquer les mises à jour Windows
Techniques de détection démontrées
1. Script de test de vulnérabilité
- Script Python de Tom Tervoort (Secura)
- Utilise la bibliothèque
impacket pour tester la vulnérabilité d'un contrôleur de domaine via le contournement de l'authentification Netlogon
2. Analyse des journaux d'événements Windows
Recherchez ces événements clés :
4624 : Ouverture de session réussie avec les identifiants du contrôleur de domaine
4672 : Privilèges spéciaux attribués à l'attaquant (par exemple, administrateur)
5805 : Événements d'erreur Netlogon (indicateur d'exploitation)
3. Détection d'intrusion avec Suricata
- Utilise Suricata pour analyser le trafic réseau sur le contrôleur de domaine
- Implémente des règles personnalisées du jeu de règles Proofpoint Emerging Threats
- Détecte les séquences d'octets nuls couramment utilisées dans l'exploit ZeroLogon
Prérequis
Pour reproduire cette démonstration, la configuration suivante est requise :
Machine de l'attaquant
- Virtuelle - VirtualBox (en utilisant NATNetwork pour le réseau des machines virtuelles)
- Kali Linux (toute version récente)
- Script de test du dépôt GitHub (enregistré sur le Bureau) :
Script de test ZeroLogon de TomTervoortSecura
Machine cible
- VirtualBox (même configuration NATNetwork avec le mode Promiscuité activé)
- Windows Server 2019 Essentials (mis à jour en septembre 2019)
- Un nouveau domaine et un contrôleur de domaine créés (en utilisant le serveur de la machine cible comme contrôleur de domaine)
- Suricata
- Microsoft C++ Redistributable
- Npcap
- Notepad++
- Fichier de règles du dépôt de règles Proofpoint Emerging Threats
emerging-all.rules de Proofpoint
Remarque de configuration :
La configuration de Suricata a été modifiée à l'aide de Notepad++ :
HOME_NET a été défini sur l'adresse IP de la machine cible
- La section
rule-files a été mise à jour pour utiliser le fichier emerging-all.rules
Démonstration des approches de détection
Étape 1 : Déterminer le nom d'ordinateur et l'adresse IP de la machine cible
- Ouvrez le Gestionnaire de serveur.
- Accédez à Serveur local. Notez le nom d'ordinateur et l'adresse IP trouvés sous Ethernet. Dans cette démonstration, le nom d'ordinateur est FTB4-Victim-Win et l'adresse IP est 10.0.2.4

Étape 2 : Lancer le script de test de vulnérabilité
- Sur la machine de l'attaquant, ouvrez le Terminal
- Exécutez le script de test Python avec le nom d'ordinateur et l'adresse IP de la machine cible :
python /home/kali/Desktop/CVE-2020-1472-master/zerologon_tester.py <target computer name> <target IP>
- Le script se terminera par un message indiquant que le contrôleur de domaine peut être entièrement compromis par une attaque ZeroLogon.

Étape 3 : Analyse des journaux d'événements Windows
- Maintenant, sur la machine cible, lancez l'Observateur d'événements. L'icône se trouve dans la barre des tâches.
- Accédez à Journaux Windows, puis à Sécurité.
- Comme illustré ci-dessous, il y a deux événements de sécurité liés au contournement ZeroLogon : l'événement 4672 et l'événement 4624.


- Accédez à Système, également sous Journaux Windows. Faites défiler jusqu'à l'événement dont le Niveau est Erreur et la Source NETLOGON. Sélectionnez-le. Il s'agit d'un autre événement lié au contournement ZeroLogon.

- Vous pouvez fermer l'Observateur d'événements Windows.
Étape 4 : Détection d'intrusion avec Suricata
- Sur la machine cible, ouvrez l'Invite de commandes en tant qu'administrateur.
- Exécutez la commande suivante pour lancer Suricata :
cd C:\Program Files\Suricata\
- Exécutez la commande suivante avec l'adresse IP appropriée :
suricata -c suricata.yaml -i <target IP> -l log

- Ouvrez l'Explorateur de fichiers à partir de l'icône de la barre des tâches. Accédez à
C:\Program Files\Suricata\log
- Tapez
powershell dans la barre de navigation et appuyez sur Entrée. Windows PowerShell se lancera.

- Dans Windows PowerShell, tapez
get-content .\fast.log -wait et appuyez sur Entrée. Ignorez tous les journaux précédents car ils proviennent de tests antérieurs et faites défiler jusqu'à l'espace vide.

- Sur la machine de l'attaquant, lancez à nouveau le script de test Python.
- Revenez maintenant à la machine cible et notez les nouvelles alertes générées. Ces alertes indiquent une tentative ou une exploitation de ZeroLogon.

- Vous pouvez fermer les fenêtres Windows PowerShell et Invite de commandes.
- Ouvrez
fast.txt. Les journaux sont enregistrés dans ce fichier.

Démonstration de l'approche d'atténuation
L'atténuation la plus efficace pour CVE-2020-1472 (ZeroLogon) consiste à installer les dernières mises à jour de sécurité Windows.
Étapes :
- Sur la machine cible, ouvrez l'application Paramètres.
- Accédez à Mise à jour et sécurité → Windows Update
- Cliquez sur « Rechercher des mises à jour » et laissez le système télécharger et installer les dernières mises à jour.
- Redémarrez la machine si nécessaire.
