123/udp - Pentesting NTP
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Informações Básicas
O Protocolo de Tempo de Rede (NTP) garante que computadores e dispositivos de rede em redes com latência variável sincronizem seus relógios com precisão. É vital para manter a cronometragem precisa em operações de TI, segurança e registro. Como o tempo é usado em quase todos os processos de autenticação, criptografia e forense, um atacante que pode influenciar o NTP pode frequentemente contornar controles de segurança ou tornar os ataques mais difíceis de investigar.
Resumo & Dicas de Segurança
- Propósito: Sincroniza os relógios dos dispositivos em redes.
- Importância: Crítico para segurança, registro, criptografia e sistemas distribuídos.
- Medidas de Segurança:
- Use fontes NTP ou NTS (Segurança de Tempo de Rede) confiáveis com autenticação.
- Restringir quem pode consultar/comandar o daemon (
restrict default noquery
,kod
etc.). - Desativar consultas de controle de Modo-6/7 legadas (
monlist
,ntpdc
) ou limitar a taxa delas. - Monitorar a deriva de sincronização/estado de segundo bissexto para adulteração.
- Manter o daemon atualizado (veja os CVEs recentes abaixo).
Portas padrão
123/udp NTP (data + legacy control)
4460/tcp NTS-KE (RFC 8915) – TLS key-establishment for NTP
PORT STATE SERVICE REASON
123/udp open ntp udp-response
Enumeração
ntpd / ntpq / ntpdc Clássico
# Information & variables
ntpq -c rv <IP>
ntpq -c readvar <IP>
ntpq -c peers <IP>
ntpq -c associations <IP>
# Legacy mode-7 (often disabled >=4.2.8p9)
ntpdc -c monlist <IP>
ntpdc -c listpeers <IP>
ntpdc -c sysinfo <IP>
chrony / chronyc (na maioria das distribuições Linux modernas)
Apenas um punhado de comandos de monitoramento são aceitos de IPs remotos quando cmdallow
está habilitado:
chronyc -a -n tracking -h <IP>
chronyc -a -n sources -v -h <IP>
chronyc -a -n sourcestats -h <IP>
Veja a página do manual do chronyc para o significado das flags M/S e outros campos (stratum, reach, jitter, etc.).
Nmap
# Safe discovery & vuln detection
nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 <IP>
# Explicit monlist check
nmap -sU -p123 --script ntp-monlist <IP>
Escaneamento em massa/Internet
# Check if MONLIST is enabled (zgrab2 module)
zgrab2 ntp --monlist --timeout 3 --output-file monlist.json -f "zmap_results.csv"
Examine arquivos de configuração
/etc/ntp.conf
(ntpd)/etc/chrony/chrony.conf
(chrony)/etc/systemd/timesyncd.conf
(timesyncd – apenas cliente)
Preste atenção especial às linhas restrict
, configurações kod
(Kiss-o'-Death), disable monitor
/includefile /etc/ntp/crypto
e se NTS está habilitado (nts enable
).
Vulnerabilidades Recentes (2023-2025)
Ano | CVE | Componente | Impacto |
---|---|---|---|
2023 | CVE-2023-26551→26555 | ntp 4.2.8p15 (libntp mstolfp, praecis_parse) | Múltiplas gravações fora dos limites acessíveis via respostas ntpq. Patch na 4.2.8p16 🡒 atualize ou faça back-port das correções. |
2023 | CVE-2023-33192 | ntpd-rs (implementação em Rust) | Cookie NTS malformado causa DoS remoto antes da v0.3.3 – afeta a porta 123 mesmo quando NTS desabilitado. |
2024 | atualizações de distro | chrony 4.4 / 4.5 – várias correções de segurança e NTS-KE (por exemplo, SUSE-RU-2024:2022) | |
2024 | DDoS Record | Cloudflare relata um ataque de reflexão UDP de 5.6 Tbps (NTP entre os protocolos usados). Mantenha monitor e monlist desabilitados em hosts expostos à Internet. |
Kits de exploração: Payloads de prova de conceito para a série de gravações OOB do ntpq de 2023 estão no GitHub (veja o relatório do Meinberg) e podem ser armados para phishing do lado do cliente de sysadmins.
Ataques Avançados
1. Amplificação / Reflexão NTP
A consulta legada Mode-7 monlist
retorna até 600 endereços de host e ainda está presente em milhares de hosts da Internet. Como a resposta (428-468 bytes/entrada) é ~ 200× maior que a solicitação de 8 bytes, um atacante pode alcançar fatores de amplificação de três dígitos. Mitigações:
- Atualize para ntp 4.2.8p15+ e adicione
disable monitor
. - Limite a taxa de UDP/123 na borda ou habilite sessions-required em dispositivos DDoS.
- Habilite filtragem de egress BCP 38 para bloquear spoofing de origem.
Veja o artigo do centro de aprendizado da Cloudflare para um detalhamento passo a passo.
2. Ataques de Deslocamento de Tempo / Atraso (pesquisa Khronos / Chronos)
Mesmo com autenticação, um atacante na rota pode silenciosamente deslocar o relógio do cliente ao descartar/atrasar pacotes. O rascunho Khronos (anteriormente Chronos) da IETF propõe consultar um conjunto diversificado de servidores em segundo plano e verificar a sanidade do resultado para detectar um deslocamento > 𝚡 ms. O chrony moderno (4.4+) já implementa um filtro de sanidade semelhante (maxdistance
/ maxjitter
).
3. Abuso de NTS e exposição 4460/tcp
O NTS move a criptografia pesada para um canal TLS 1.3 separado na 4460/tcp (ntske/1
). Implementações ruins (veja CVE-2023-33192) travam ao analisar cookies ou permitem cifras fracas. Os pentesters devem:
# TLS reconnaissance
nmap -sV -p 4460 --script ssl-enum-ciphers,ssl-cert <IP>
# Grab banner & ALPN
openssl s_client -connect <IP>:4460 -alpn ntske/1 -tls1_3 -ign_eof
Procure por certificados autoassinados ou expirados e suítes de cifra fracas (não-AEAD). Referência: RFC 8915 §4.
Fortalecimento / Melhor Prática Atual (BCP-233 / RFC 8633)
Operadores DEVEM:
- Usar ≥ 4 fontes de tempo independentes e diversas (pools públicos, GPS, pontes PTP) para evitar contaminação de fonte única.
- Habilitar restrições
kod
elimited
/nomodify
para que clientes abusivos recebam pacotes de limite de taxa Kiss-o'-Death em vez de respostas completas. - Monitorar logs do daemon para eventos de panic ou ajustes de passo > 1000 s. (Assinaturas de ataque conforme RFC 8633 §5.3.)
- Considerar leap-smear para evitar interrupções de segundo bissexto, mas garantir que todos os clientes a montante usem a mesma janela de smear.
- Manter polling ≤24 h para que as bandeiras de segundo bissexto não sejam perdidas.
Veja a RFC 8633 para uma lista de verificação abrangente.
Shodan / Censys Dorks
port:123 "ntpd" # Version banner
udp port:123 monlist:true # Censys tag for vulnerable servers
port:4460 "ntske" # NTS-KE
Ferramentas Úteis
Ferramenta | Propósito | Exemplo |
---|---|---|
ntpwn | Wrapper para script-kiddie para spray de consultas monlist & peers | python ntpwn.py --monlist targets.txt |
zgrab2 ntp | Escaneamento em massa / saída JSON incluindo flag monlist | Veja o comando acima |
chronyd com allow | Executar servidor NTP malicioso em laboratório de pentest | chronyd -q 'server 127.127.1.0 iburst' |
BetterCap | Injetar pacotes NTP para MITM de desvio de tempo no Wi-Fi | set arp.spoof.targets <victim>; set ntp.time.delta 30s; arp.spoof on |
Comandos Automáticos HackTricks
Protocol_Name: NTP
Port_Number: 123
Protocol_Description: Network Time Protocol
Entry_1:
Name: Notes
Description: Notes for NTP
Note: |
The Network Time Protocol (NTP) ensures computers and network devices across variable-latency networks sync their clocks accurately. It's vital for maintaining precise timekeeping in IT operations, security, and logging. NTP's accuracy is essential, but it also poses security risks if not properly managed.
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-ntp.html
Entry_2:
Name: Nmap
Description: Enumerate NTP
Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 {IP}
Referências
- RFC 8915 – Segurança de Tempo de Rede para o Protocolo de Tempo de Rede (porta 4460)
- RFC 8633 – Protocolo de Tempo de Rede BCP
- Relatório de DDoS da Cloudflare Q4 2024 (5,6 Tbps)
- Artigo da Cloudflare sobre Ataque de Amplificação NTP
- NTP 4.2.8p15 série CVE 2023-04
- Entradas NVD CVE-2023-26551–55, CVE-2023-33192
- Atualização de segurança do chrony da SUSE 2024 (chrony 4.5)
- Rascunho Khronos/Chronos (mitigação de deslocamento de tempo)
- Manual/examples do chronyc para monitoramento remoto
- Documentação do módulo ntp do zgrab2
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.