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.

Ces mises à jour appliquent le correctif de Microsoft pour la vulnérabilité ZeroLogon en imposant l'utilisation de protocoles distants sécurisés et en activant le mode d'application par défaut sur les contrôleurs de domaine.
Remarque sur les limites
Les approches de détection et d'atténuation démontrées dans ce projet sont conçues à des fins pédagogiques dans un environnement de laboratoire contrôlé. Bien qu'efficaces pour illustrer les concepts derrière CVE-2020-1472 (ZeroLogon), elles présentent des limites et ne sont pas entièrement pratiques pour un déploiement dans des environnements d'entreprise réels. Comme il s'agit d'un projet scolaire, l'accent est mis sur l'apprentissage et la compréhension des techniques de cybersécurité plutôt que sur la mise en œuvre de solutions prêtes pour la production.
Remerciements
Remerciements particuliers à
Références
Auteur
@tdevworks
Avertissement
Ce dépôt a été créé à des fins éducatives uniquement.
Tous les outils, scripts et techniques démontrés sont destinés à aider à comprendre les vulnérabilités de cybersécurité dans un environnement de laboratoire contrôlé. N'essayez pas d'utiliser l'un des éléments fournis sur des systèmes ou des réseaux que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation explicite de tester.
L'auteur n'est pas responsable de toute utilisation abusive des informations fournies.