
Surveille les attaques DCSYNC et DCSHADOW et crée des événements Windows personnalisés pour ces événements.
Cet outil est une application/service qui peut être déployé sur les contrôleurs de domaine pour alerter sur les tentatives de synchronisation des contrôleurs de domaine. Lorsqu'une tentative est détectée, l'outil écrit un événement dans le journal des événements Windows. Ces événements peuvent être corrélés dans un SIEM. De plus, cet outil peut prendre une liste d'adresses IP de DC valides et, dans cette configuration, n'alerter que lorsqu'une tentative de synchronisation DC provient d'une IP non‑DC. Cet outil est conçu pour fournir aux équipes bleues un moyen de lutter contre les attaques DC SYNC et DC SHADOW sans outils commerciaux comme Microsoft ATA ou des IDS/IPS sophistiqués.
Brève vidéo Youtube : https://www.youtube.com/watch?v=oLND9QZfaJc
Pour installer cet outil, vous pouvez utiliser les binaires pré‑construits ou construire l'outil vous‑même. Le lien pour les binaires pré‑construits est ici :
Service 32 bits : https://github.com/shellster/DCSYNCMonitor/raw/master/Release/DCSYNCMONITORSERVICE.exe
Service 64 bits : https://github.com/shellster/DCSYNCMonitor/raw/master/x64/Release/DCSYNCMONITORSERVICE.exe
Vous aurez besoin de Winpcap ou Npcap installé sur votre contrôleur de domaine. Winpcap devrait fonctionner, mais n'est pas recommandé car les méthodes de capture de paquets ne sont pas aussi efficaces ou complètes que NPcap. Cet outil n'a été brièvement testé qu'avec Winpcap.
Pour installer Npcap, téléchargez le programme d'installation ici : https://nmap.org/npcap/
Vous devez vous assurer que les options suivantes sont cochées :
Après l'installation, vous devrez redémarrer le contrôleur de domaine.
Npcap n'installe pas les DLL de bibliothèque de support dans le chemin de recherche des DLL du système, vous devrez donc effectuer les tâches suivantes après l'installation :
copy "%WINDIR%\System32\Npcap\*.dll" "%WINDIR%\System32\"
#If Applicable (32bit Service on 64bit System):
copy "%WINDIR%\SYSWOW64\Npcap\*.dll" "%WINDIR%\SYSWOW64\"
note : Si l'étape précédente n'est pas réalisée, vous recevrez des erreurs concernant un fichier wpcap.dll ou Packet.dll manquant lors de la tentative d'exécution de l'outil.
Maintenant, copiez le fichier DCSYNCMONITOR.EXE de ce projet dans un emplacement approprié. Nous recommandons %WINDIR%\SYSTEM32 pour les systèmes 32 bits ou les systèmes 64 bits avec un service 64 bits, ou %WINDIR%\SYSWOW64 si vous utilisez le service 32 bits sur un système 64 bits.
L'outil peut maintenant être exécuté. Cependant, vous pouvez l'exécuter de deux manières :
Dans ce mode, l'outil écrira un événement d'avertissement DCSYNCALERT dans le journal des événements d'application Windows chaque fois qu'une nouvelle adresse IP (non vue au cours des cinq dernières minutes) tente d'effectuer une synchronisation DC contre le contrôleur de domaine. Cela inclura les activités de synchronisation légitimes entre contrôleurs de domaine.
Un fichier de configuration appelé 'dc_ip_list.conf' peut être placé dans le même répertoire que l'outil. Si ce fichier existe, il doit contenir une adresse IPv4 (ou IPv6 longue) par ligne. L'outil chargera cette liste au démarrage. Dans ce mode, aucun événement ne sera écrit pour les tentatives de synchronisation DC provenant d'adresses IP correspondantes. Cependant, si une tentative de synchronisation DC provient d'une autre adresse IP, un événement d'erreur DCSYNCALERT sera écrit dans le journal des événements d'application Windows.
note Les modifications apportées au fichier dc_ip_list.conf ne prendront effet qu'après l'arrêt et le redémarrage du service.
La façon habituelle d'utiliser cet outil est de l'installer en tant que service. Une fois l'outil placé dans le dossier approprié, cela peut être facilement accompli en exécutant :
DCMONITORSERVICE.exe -install
Une fois le service installé, vous devrez le démarrer manuellement depuis le menu Services.msc ou en utilisant les commandes net ou sc appropriées. Il démarrera automatiquement lors des redémarrages futurs.
Si vous devez désinstaller le service, exécutez la commande suivante :
DCMONITORSERVICE.exe -remove
Enfin, pour exécuter l'outil en mode autonome, sans installer de service (particulièrement utile pour le débogage) :
DCMONITORSERVICE.exe -standalone
Les événements d'avertissement DC SYNC se produisent lorsqu'aucune liste d'adresses IP de DC valides n'est fournie, ou lorsqu'une synchronisation DC se produit à partir d'une adresse IP de DC valide :

Les événements d'erreur DC SYNC se produisent lorsqu'une liste d'adresses IP de DC valides est fournie et qu'une synchronisation DC provient d'une autre adresse IP :

Vous aurez besoin de Visual Studio 2015 ou ultérieur. L'édition Community (gratuite) est parfaitement acceptable. Une fois le projet ouvert, vous devriez pouvoir immédiatement construire les versions Dev et Release en variantes 32 bits et 64 bits. Les éditions Debug ne doivent pas être déployées dans un environnement de production. Elles déversent des informations d'erreur et de débogage extensives, y compris des vidages de paquets TCP (si vous décommentez la ligne suivante) dans le fichier monitor.cpp :
#ifdef _DEBUG
//debug_print("TCP SRC IP: %s\nData:\n", tcppacket.source_ip.address.c_str());
//print_payload((const u_char *)tcppacket.data, tcppacket.data_length);
#endif
Les versions Release sont beaucoup plus petites et suppriment automatiquement les instructions de débogage.
Cet outil présente les limitations connues suivantes :
Cet outil est fourni sous licence MIT (Voir LICENSE)
L'outil a été écrit par Shelby Spencer :
FusionX m'a généreusement accordé du temps pour mettre à jour et affiner cet outil ainsi qu'une plateforme pour l'annoncer. Cependant, ce projet est la propriété exclusive et développé par moi‑même.
Les suggestions, les commentaires et les PR sont tous les bienvenus et encouragés.