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

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

bash
# 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:

bash
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

bash
# 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

bash
# 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)

AnoCVEComponenteImpacto
2023CVE-2023-26551→26555ntp 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.
2023CVE-2023-33192ntpd-rs (implementação em Rust)Cookie NTS malformado causa DoS remoto antes da v0.3.3 – afeta a porta 123 mesmo quando NTS desabilitado.
2024atualizações de distrochrony 4.4 / 4.5 – várias correções de segurança e NTS-KE (por exemplo, SUSE-RU-2024:2022)
2024DDoS RecordCloudflare 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:

bash
# 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:

  1. Usar ≥ 4 fontes de tempo independentes e diversas (pools públicos, GPS, pontes PTP) para evitar contaminação de fonte única.
  2. Habilitar restrições kod e limited/nomodify para que clientes abusivos recebam pacotes de limite de taxa Kiss-o'-Death em vez de respostas completas.
  3. Monitorar logs do daemon para eventos de panic ou ajustes de passo > 1000 s. (Assinaturas de ataque conforme RFC 8633 §5.3.)
  4. Considerar leap-smear para evitar interrupções de segundo bissexto, mas garantir que todos os clientes a montante usem a mesma janela de smear.
  5. 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

FerramentaPropósitoExemplo
ntpwnWrapper para script-kiddie para spray de consultas monlist & peerspython ntpwn.py --monlist targets.txt
zgrab2 ntpEscaneamento em massa / saída JSON incluindo flag monlistVeja o comando acima
chronyd com allowExecutar servidor NTP malicioso em laboratório de pentestchronyd -q 'server 127.127.1.0 iburst'
BetterCapInjetar pacotes NTP para MITM de desvio de tempo no Wi-Fiset 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