Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/microlaser/dns_watchdog_windows2
Outils DéfensifsSniffing et Analyse de PaquetsCriminalistique RéseauCollecte d'InformationsSécurité RéseauDétection d'IntrusionAnalyse DNSDétection d'Anomalies
GitHub
microlaser/dns_watchdog_windows2

dns_watchdog_windows2

Script PowerShell qui surveille le trafic DNS Windows via pktmon pour détecter l'empoisonnement, l'usurpation, les réponses de résolveurs malveillants et les changements de MAC de passerelle, en journalisant les alertes.

Voir le dépôt
3il y a 11 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

DNS Watchdog (Windows)

Un script PowerShell monofichier qui surveille le propre trafic réseau d'une machine Windows à la recherche de signes d'empoisonnement / usurpation DNS, en utilisant pktmon — l'outil de capture de paquets intégré à Windows 10 (1809+), Windows 11 et Windows Server 2019+. Aucun outil de capture tiers (Wireshark, Npcap, tcpdump) n'est requis.

Il capture le trafic DNS (UDP/TCP port 53) au niveau de la pile réseau du système d'exploitation, ce qui couvre à la fois le trafic LAN et WAN sur une machine typique, puis analyse lui-même les paquets bruts — format binaire pcapng, en-têtes Ethernet/IP/UDP/TCP, et le format des messages DNS, y compris les pointeurs de compression de noms — entièrement en PowerShell natif.

Une version bash/tcpdump complémentaire couvre macOS et Linux.

Ce qu'il détecte

SignalPourquoi c'est important
Réponses contradictoires à la même requête DNSLa signature typique d'une tentative d'empoisonnement : un attaquant fait la course entre une réponse falsifiée et la vraie, espérant que la réponse falsifiée arrive en premier et soit mise en cache.
Réponses provenant d'un serveur DNS que vous n'avez jamais configuréComparé à Get-DnsClientServerAddress. Une réponse d'un serveur non reconnu peut indiquer un attaquant hors chemin injectant des réponses.
Réponses sans requête en attente correspondanteUne réponse à une question que le moniteur n'a jamais vue posée — signe possible de trafic injecté/usurpé (avec une période de grâce au démarrage pour éviter les faux positifs).
Changement de l'adresse MAC de la passerelle par défaut en cours de sessionInterrogée via Get-NetNeighbor à chaque cycle de capture. L'usurpation ARP est généralement la première étape des attaquants pour se positionner en vue d'une altération DNS sur le LAN.

Chaque alerte affiche deux parties :

  • [TECHNICAL] — détail brut du paquet, pour toute personne souhaitant approfondir
  • [WHAT THIS MEANS] — une explication en langage clair de pourquoi cela compte

Toute la sortie est également écrite dans un fichier journal horodaté.

Prérequis

  • Windows 10 (1809+), Windows 11 ou Windows Server 2019+, avec pktmon.exe disponible (intégré à tous ceux-ci)
  • Une version raisonnablement récente — pktmon pcapng (utilisé pour convertir les captures en vue de l'analyse) a été ajouté après la version initiale 1809 ; s'il est absent, mettez Windows à jour
  • PowerShell exécuté en tant qu'Administrateur (la capture de paquets l'exige)

Installation

git clone https://github.com/microlaser/dns-watchdog.git
cd dns-watchdog\windows

Aucun module ni dépendance externe à installer — juste le script lui-même.

Utilisation

Depuis un PowerShell élevé (Administrateur) :

.\dns_watchdog.ps1

Par défaut, le script détecte automatiquement votre passerelle par défaut et vos serveurs DNS configurés, et capture sur toutes les cartes réseau (pktmon opère au niveau de la pile réseau du système d'exploitation, ce qui couvre naturellement à la fois le trafic LAN et WAN sans choisir une carte spécifique). Arrêtez la surveillance avec Ctrl+C ; un résumé de session s'affiche à la sortie.

Paramètres

.\dns_watchdog.ps1 [-LogFile <path>] [-CaptureIntervalSeconds <n>] [-GraceResponses <n>] [-KeepCaptures]
ParamètreDescription
-LogFileChemin du journal de session (par défaut : .\dns_watchdog_<timestamp>.log)
-CaptureIntervalSecondsDurée de chaque fenêtre de capture avant sa conversion et son analyse. Plus bas = moins de latence de détection, plus de surcharge. Par défaut : 5
-GraceResponsesNombre de réponses à observer avant l'activation des alertes « aucune requête correspondante », afin d'éviter le bruit au démarrage. Par défaut : 10
-KeepCapturesConserver les fichiers .etl/.pcapng de chaque fenêtre sur le disque au lieu de les supprimer après analyse

Exemple de session

=========================================================================
 DNS Watchdog (Windows) - DNS poisoning / spoofing monitor
=========================================================================
Capturing on:      all network adapters (pktmon captures at the OS networking stack,
                   which covers this host's LAN and WAN traffic together)
Default gateway:   192.168.1.1  (MAC baseline: 60-95-F8-2B-5E-78)
Configured DNS:    192.168.0.1, 192.168.1.1
Log file:          .\dns_watchdog_20260918_204725.log
...

[20:47:44.872] [ALERT] Conflicting DNS responses for the same query
  [TECHNICAL] txn=64878  query=example.com (type 28)  first_response=[AAAA:2607:f8b0:...]  conflicting_response(src=10.0.0.9)=[AAAA:dead:beef::1]
  [WHAT THIS MEANS] This machine's DNS question got two DIFFERENT answers back. Legitimate DNS servers don't normally do this. This is the textbook signature of a DNS poisoning attempt, where an attacker races a forged answer against the real one, hoping the forged one arrives first and gets cached.

Comment ça fonctionne

Windows n'a pas d'équivalent direct à rediriger tcpdump vers un analyseur de texte — la sortie console en direct de pktmon est constituée d'octets bruts, pas de lignes décodées. Ce script procède donc autrement :

  1. Exécute pktmon par courtes fenêtres rotatives (5 secondes par défaut), en capturant vers .etl
  2. Convertit chaque fenêtre en .pcapng (pktmon pcapng)
  3. Analyse directement le format binaire pcapng — en lisant les Enhanced Packet Blocks, puis en parcourant les en-têtes IP → UDP/TCP → message DNS de chaque trame, y compris le décodage des pointeurs de compression de noms DNS — sans aucune bibliothèque externe
  4. Suit les identifiants de transaction DNS d'une fenêtre de capture à l'autre à l'aide de tables de hachage PowerShell natives qui persistent pendant toute la durée de vie du processus, signalant les conflits et anomalies au fur et à mesure
  5. Interroge séparément l'entrée ARP de la passerelle à chaque cycle pour détecter les changements d'adresse MAC

Une particularité à connaître : Windows capture fréquemment les paquets générés localement (sortants) avant que l'en-tête Ethernet ne soit ajouté à certains points de contrôle de la pile, de sorte que les requêtes DNS sortantes peuvent arriver sous forme de paquets IP bruts sans aucune trame de couche liaison, tandis que les réponses entrantes arrivent entièrement encadrées en Ethernet depuis le réseau. L'analyseur détecte et gère les deux cas. pktmon a également tendance à signaler le même paquet physique plus d'une fois (capturé à plusieurs points de la pile réseau) ; le script déduplique les répétitions strictement identiques au sein de chaque fenêtre de capture afin qu'un seul paquet réel ne déclenche pas plusieurs alertes — une réponse réellement contradictoire/empoisonnée a un contenu différent, elle n'est donc jamais affectée par cette déduplication.

Limitations

Télécharger l’outil