123/udp - Pentesting NTP
Reading time: 8 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.
Informations de base
Le Network Time Protocol (NTP) garantit que les ordinateurs et les dispositifs rĂ©seau sur des rĂ©seaux Ă latence variable synchronisent leurs horloges avec prĂ©cision. C'est vital pour maintenir une chronomĂ©trie prĂ©cise dans les opĂ©rations informatiques, la sĂ©curitĂ© et la journalisation. Parce que le temps est utilisĂ© dans presque tous les processus d'authentification, de crypto-protocole et d'analyse judiciaire, un attaquant capable d'influencer NTP peut souvent contourner les contrĂŽles de sĂ©curitĂ© ou rendre les attaques plus difficiles Ă enquĂȘter.
Résumé & Conseils de sécurité
- Objectif : Synchronise les horloges des dispositifs sur les réseaux.
- Importance : Critique pour la sécurité, la journalisation, les crypto-protocoles et les systÚmes distribués.
- Mesures de sécurité :
- Utilisez des sources NTP ou NTS (Network Time Security) de confiance avec authentification.
- Restreindre qui peut interroger/commander le démon (
restrict default noquery
,kod
etc.). - DĂ©sactiver les requĂȘtes de contrĂŽle Mode-6/7 hĂ©ritĂ©es (
monlist
,ntpdc
) ou les limiter en taux. - Surveiller la dérive de synchronisation/l'état des secondes intercalaires pour détection de falsification.
- Gardez le démon à jour (voir les CVE récents ci-dessous).
Ports par défaut
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
ĂnumĂ©ration
ntpd / ntpq / ntpdc classique
# 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 (dans la plupart des distributions Linux modernes)
Seule une poignée de commandes de surveillance sont acceptées depuis des IP distantes lorsque cmdallow
est activé :
chronyc -a -n tracking -h <IP>
chronyc -a -n sources -v -h <IP>
chronyc -a -n sourcestats -h <IP>
Voir la page de manuel de chronyc pour la signification des indicateurs M/S et d'autres champs (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>
Scan de masse/Internet
# Check if MONLIST is enabled (zgrab2 module)
zgrab2 ntp --monlist --timeout 3 --output-file monlist.json -f "zmap_results.csv"
Examinez les fichiers de configuration
/etc/ntp.conf
(ntpd)/etc/chrony/chrony.conf
(chrony)/etc/systemd/timesyncd.conf
(timesyncd â client uniquement)
Faites particuliĂšrement attention aux lignes restrict
, aux paramĂštres kod
(Kiss-o'-Death), Ă disable monitor
/includefile /etc/ntp/crypto
et à savoir si NTS est activé (nts enable
).
Vulnérabilités récentes (2023-2025)
Année | CVE | Composant | Impact |
---|---|---|---|
2023 | CVE-2023-26551â26555 | ntp 4.2.8p15 (libntp mstolfp, praecis_parse) | Ăcritures hors limites multiples accessibles via les rĂ©ponses ntpq. Correctif dans 4.2.8p16 đĄ mise Ă niveau ou correctifs de rĂ©troportage. |
2023 | CVE-2023-33192 | ntpd-rs (implĂ©mentation Rust) | Un cookie NTS malformĂ© provoque un DoS Ă distance avant v0.3.3 â affecte le port 123 mĂȘme lorsque NTS est dĂ©sactivĂ©. |
2024 | mises Ă jour de distribution | chrony 4.4 / 4.5 â plusieurs durcissements de sĂ©curitĂ© & correctifs NTS-KE (par exemple, SUSE-RU-2024:2022) | |
2024 | DDoS record | Cloudflare signale une attaque de réflexion UDP de 5,6 Tbps (NTP parmi les protocoles utilisés). Gardez monitor & monlist désactivés sur les hÎtes exposés à Internet. |
Kits d'exploitation : Des charges utiles de preuve de concept pour la sĂ©rie d'Ă©critures OOB ntpq 2023 sont sur GitHub (voir l'article de Meinberg) et peuvent ĂȘtre armĂ©es pour le phishing cĂŽtĂ© client des administrateurs systĂšme.
Attaques avancées
1. Amplification / Réflexion NTP
La requĂȘte Mode-7 monlist
renvoie jusqu'Ă 600 adresses hĂŽtes et est toujours prĂ©sente sur des milliers d'hĂŽtes Internet. Comme la rĂ©ponse (428-468 octets/entrĂ©e) est ~ 200Ă plus grande que la requĂȘte de 8 octets, un attaquant peut atteindre des facteurs d'amplification Ă trois chiffres. AttĂ©nuations :
- Mettez Ă niveau vers ntp 4.2.8p15+ et ajoutez
disable monitor
. - Limitez le débit UDP/123 à la périphérie ou activez sessions-required sur les appareils DDoS.
- Activez le filtrage de sortie BCP 38 pour bloquer le spoofing de source.
Consultez l'article du centre d'apprentissage de Cloudflare pour un décompte étape par étape.
2. Attaques de décalage / retard temporel (recherche Khronos / Chronos)
MĂȘme avec authentification, un attaquant sur le chemin peut silencieusement dĂ©caler l'horloge du client en supprimant/dĂ©lai des paquets. Le brouillon IETF Khronos (anciennement Chronos) propose d'interroger un ensemble diversifiĂ© de serveurs en arriĂšre-plan et de vĂ©rifier la cohĂ©rence du rĂ©sultat pour dĂ©tecter un dĂ©calage > đĄ ms. Le chrony moderne (4.4+) implĂ©mente dĂ©jĂ un filtre de cohĂ©rence similaire (maxdistance
/ maxjitter
).
3. Abus de NTS & exposition 4460/tcp
NTS déplace le lourd cryptage vers un canal TLS 1.3 séparé sur 4460/tcp (ntske/1
). Les mauvaises implémentations (voir CVE-2023-33192) plantent lors de l'analyse des cookies ou permettent des chiffrements faibles. Les pentesters devraient :
# 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
Recherchez des certificats auto-signés ou expirés et des suites de chiffrement faibles (non-AEAD). Référence : RFC 8915 §4.
Renforcement / Meilleures Pratiques Actuelles (BCP-233 / RFC 8633)
Les opérateurs DOIVENT :
- Utiliser ℠4 sources de temps indépendantes et diverses (pools publics, GPS, ponts PTP) pour éviter le empoisonnement par source unique.
- Activer les restrictions
kod
etlimited
/nomodify
afin que les clients abusifs reçoivent des paquets de limitation de taux Kiss-o'-Death au lieu de réponses complÚtes. - Surveiller les journaux du démon pour des événements panic ou des ajustements de pas > 1000 s. (Signatures d'attaque selon RFC 8633 §5.3.)
- Envisager leap-smear pour Ă©viter les pannes de seconde intercalaire, mais s'assurer que tous les clients en aval utilisent la mĂȘme fenĂȘtre de smear.
- Garder le polling â€24 h afin que les indicateurs de seconde intercalaire ne soient pas manquĂ©s.
Voir RFC 8633 pour une liste de contrĂŽle complĂšte.
Shodan / Censys Dorks
port:123 "ntpd" # Version banner
udp port:123 monlist:true # Censys tag for vulnerable servers
port:4460 "ntske" # NTS-KE
Outils Utiles
Outil | But | Exemple |
---|---|---|
ntpwn | Wrapper pour script-kiddie pour pulvĂ©riser les requĂȘtes monlist & peers | python ntpwn.py --monlist targets.txt |
zgrab2 ntp | Scan de masse / sortie JSON incluant le drapeau monlist | Voir la commande ci-dessus |
chronyd avec allow | Exécuter un serveur NTP rogue dans un laboratoire de pentest | chronyd -q 'server 127.127.1.0 iburst' |
BetterCap | Injecter des paquets NTP pour un MITM de décalage horaire sur Wi-Fi | set arp.spoof.targets <victim>; set ntp.time.delta 30s; arp.spoof on |
Commandes Automatiques 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}
Références
- RFC 8915 â SĂ©curitĂ© du temps rĂ©seau pour le protocole de temps rĂ©seau (port 4460)
- RFC 8633 â Protocole de temps rĂ©seau BCP
- Rapport DDoS de Cloudflare Q4 2024 (5,6 Tbps)
- Article de Cloudflare sur l'attaque d'amplification NTP
- NTP 4.2.8p15 série CVE 2023-04
- EntrĂ©es NVD CVE-2023-26551â55, CVE-2023-33192
- Mise à jour de sécurité chrony SUSE 2024 (chrony 4.5)
- Projet Khronos/Chronos (atténuation du décalage horaire)
- Manuel chronyc/exemples pour la surveillance Ă distance
- Docs du module ntp zgrab2
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.