Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
dns_watchdog_windows2 — Script PowerShell que monitoriza o tráfego DNS do Windows através do pktmon para detetar envenenamento, spoofing, respostas de resolvedores maliciosos e alterações de MAC do gateway, registando alertas. | Kitploit
Ferramentas/GitHubGitHub/microlaser/dns_watchdog_windows2
Ferramentas DefensivasSniffing e Análise de PacotesForensia de RedeColeta de InformaçõesSegurança de RedeDetecção de IntrusãoAnálise de DNSDetecção de Anomalias

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
GitHub
microlaser/dns_watchdog_windows2

dns_watchdog_windows2

Script PowerShell que monitoriza o tráfego DNS do Windows através do pktmon para detetar envenenamento, spoofing, respostas de resolvedores maliciosos e alterações de MAC do gateway, registando alertas.

Ver Repositório
10há 11 diasAinda não revisado
Compartilhar

DNS Watchdog (Windows)

Um script PowerShell de arquivo único que monitora o próprio tráfego de rede de uma máquina Windows em busca de sinais de envenenamento / falsificação de DNS, usando pktmon — a ferramenta de captura de pacotes integrada ao Windows 10 (1809+), Windows 11 e Windows Server 2019+. Nenhuma ferramenta de captura de terceiros (Wireshark, Npcap, tcpdump) é necessária.

Ele captura tráfego DNS (UDP/TCP porta 53) na pilha de rede do SO, o que cobre tanto tráfego de LAN quanto de WAN em uma máquina típica, e então analisa os pacotes brutos por conta própria — formato binário pcapng, cabeçalhos Ethernet/IP/UDP/TCP e o formato de mensagem DNS, incluindo ponteiros de compressão de nomes — inteiramente em PowerShell nativo.

Uma versão companheira em bash/tcpdump cobre macOS e Linux.

O que ele detecta

SinalPor que importa
Respostas conflitantes para a mesma consulta DNSA assinatura clássica de uma tentativa de envenenamento: um atacante corre com uma resposta forjada contra a real, esperando que a resposta forjada chegue primeiro e seja armazenada em cache.
Respostas de um servidor DNS que você nunca configurouComparado com Get-DnsClientServerAddress. Uma resposta de um servidor não reconhecido pode indicar um atacante fora do caminho injetando respostas.
Respostas sem consulta pendente correspondenteUma resposta para uma pergunta que o monitor nunca viu ser feita — um possível sinal de tráfego injetado/falsificado (com um período de carência na inicialização para evitar falsos positivos).
Mudanças no endereço MAC do gateway padrão no meio da sessãoConsultado via Get-NetNeighbor a cada ciclo de captura. O spoofing de ARP é o primeiro passo usual que os atacantes tomam para se posicionarem para a adulteração de DNS na LAN.

Cada alerta imprime duas partes:

  • [TECHNICAL] — detalhe bruto do pacote, para quem quiser investigar mais
  • [WHAT THIS MEANS] — uma explicação em linguagem simples de por que isso importa

Toda a saída também é gravada em um arquivo de log com carimbo de data/hora.

Requisitos

  • Windows 10 (1809+), Windows 11 ou Windows Server 2019+, com pktmon.exe disponível (integrado em todos esses)
  • Uma build razoavelmente atual — pktmon pcapng (usado para converter capturas para análise) foi adicionado após o lançamento inicial do 1809; se estiver faltando, atualize o Windows
  • PowerShell sendo executado como Administrador (a captura de pacotes exige isso)

Instalação

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

Nenhum módulo ou dependência externa para instalar — apenas o próprio script.

Uso

De um PowerShell elevado (Administrador):

.\dns_watchdog.ps1

Por padrão, o script detecta automaticamente seu gateway padrão e servidores DNS configurados, e captura em todos os adaptadores de rede (o pktmon opera na pilha de rede do SO, então isso naturalmente cobre tanto tráfego de LAN quanto de WAN sem escolher um adaptador específico). Pare o monitoramento com Ctrl+C; um resumo da sessão é impresso na saída.

Parâmetros

.\dns_watchdog.ps1 [-LogFile <path>] [-CaptureIntervalSeconds <n>] [-GraceResponses <n>] [-KeepCaptures]
ParâmetroDescrição
-LogFileCaminho para o log da sessão (padrão: .\dns_watchdog_<timestamp>.log)
-CaptureIntervalSecondsDuração de cada janela de captura antes de ser convertida e analisada. Menor = menos latência de detecção, mais sobrecarga. Padrão: 5
-GraceResponsesNúmero de respostas a observar antes que os alertas de "nenhuma consulta correspondente" sejam ativados, para evitar ruído na inicialização. Padrão: 10
-KeepCapturesManter os arquivos .etl/.pcapng de cada janela no disco em vez de excluí-los após a análise

Sessão de exemplo

=========================================================================
 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.

Como funciona

O Windows não tem um análogo direto de canalizar tcpdump para um analisador de texto — a saída do console ao vivo do pktmon são bytes brutos, não linhas decodificadas. Então este script, em vez disso:

  1. Executa o pktmon em janelas curtas e rotativas (5 segundos por padrão), capturando para .etl
  2. Converte cada janela para .pcapng (pktmon pcapng)
  3. Analisa o formato binário pcapng diretamente — lendo Enhanced Packet Blocks, depois percorrendo os cabeçalhos IP → UDP/TCP → mensagem DNS de cada quadro, incluindo a decodificação de ponteiros de compressão de nomes DNS — sem bibliotecas externas
  4. Rastreia IDs de transação DNS entre janelas de captura usando hashtables nativas do PowerShell que persistem durante toda a vida do processo, sinalizando conflitos e anomalias conforme são vistos
  5. Consulta separadamente a entrada ARP do gateway a cada ciclo para detectar mudanças no endereço MAC

Uma peculiaridade que vale a pena conhecer: O Windows frequentemente captura pacotes gerados localmente (de saída) antes que o cabeçalho Ethernet seja adicionado em alguns pontos de verificação da pilha, então consultas DNS de saída podem chegar como pacotes IP puros sem nenhum enquadramento de camada de enlace, enquanto respostas de entrada chegam totalmente enquadradas em Ethernet vindas do fio. O analisador detecta e lida com ambos. O pktmon também tende a reportar o mesmo pacote físico mais de uma vez (capturado em vários pontos da pilha de rede); o script deduplica repetições byte a byte idênticas dentro de cada janela de captura para que um único pacote real não gere alertas múltiplas vezes — uma resposta genuinamente conflitante/envenenada tem conteúdo diferente, então nunca é afetada por essa deduplicação.

Limitações

  • Este é um monitor heurístico, não uma garantia. Um único alerta isolado pode ser um falso positivo (por exemplo, uma VPN trocando de resolvedores no meio da sessão, ou uma CDN retornando múltiplos IPs válidos). Alertas repetidos ou agrupados são muito mais significativos do que um isolado.
  • Há uma pequena lacuna entre as janelas de captura (parar → converter → reiniciar) em vez de captura verdadeiramente contínua.
  • Respostas DNS-sobre-TCP que abrangem múltiplos segmentos TCP não são remontadas — tudo bem para consultas comuns, uma limitação real para respostas grandes no estilo de transferência de zona.
  • A conversão pktmon pcapng requer uma build do Windows razoavelmente atual; sistemas muito antigos da era 1809 podem precisar recorrer a pktmon etl2txt em vez disso (não implementado aqui).
  • Ele observa o tráfego no host em que é executado; não consegue ver envenenamento que ocorre puramente dentro do cache de um resolvedor remoto antes que uma resposta chegue a esta máquina.

Licença

MIT (ou atualize para corresponder à sua preferência).

Baixar ferramenta