Translated ['src/network-services-pentesting/pentesting-ntp.md'] to fr

This commit is contained in:
Translator 2025-07-10 09:32:51 +00:00
parent 0821efead9
commit a7581b1014

View File

@ -4,59 +4,154 @@
## Informations de base
Le **Network Time Protocol (NTP)** garantit que les ordinateurs et les dispositifs réseau synchronisent leurs horloges avec précision à travers des réseaux à latence variable. C'est vital pour maintenir une chronométrie précise dans les opérations informatiques, la sécurité et la journalisation. L'exactitude de NTP est essentielle, mais elle pose également des risques de sécurité si elle n'est pas correctement gérée.
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 chaque processus d'authentification, de protocole cryptographique et d'analyse judiciaire, **un attaquant qui peut 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é :
### Résumé & Conseils de sécurité
- **Objectif** : Synchronise les horloges des dispositifs sur les réseaux.
- **Importance** : Critique pour la sécurité, la journalisation et les opérations.
- **Importance** : Critique pour la sécurité, la journalisation, les protocoles cryptographiques et les systèmes distribués.
- **Mesures de sécurité** :
- Utilisez des sources NTP de confiance avec authentification.
- Limitez l'accès réseau au serveur NTP.
- Surveillez la synchronisation pour détecter des signes de falsification.
- 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 par défaut :** 123/udp
```
PORT STATE SERVICE REASON
123/udp open ntp udp-response
```
---
## Énumération
```bash
ntpq -c readlist <IP_ADDRESS>
ntpq -c readvar <IP_ADDRESS>
ntpq -c peers <IP_ADDRESS>
ntpq -c associations <IP_ADDRESS>
ntpdc -c monlist <IP_ADDRESS>
ntpdc -c listpeers <IP_ADDRESS>
ntpdc -c sysinfo <IP_ADDRESS>
```
### ntpd / ntpq / ntpdc classique
```bash
nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 <IP>
# 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é :
```bash
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
```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>
```
### Scan de masse/Internet
```bash
# 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
- ntp.conf
- ``/etc/ntp.conf`` (ntpd)
- ``/etc/chrony/chrony.conf`` (chrony)
- ``/etc/systemd/timesyncd.conf`` (timesyncd client uniquement)
## Attaque par amplification NTP
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``).
[**Comment fonctionne une attaque DDoS NTP**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref)
---
## Vulnérabilités récentes (2023-2025)
Le **protocole NTP**, utilisant UDP, permet de fonctionner sans avoir besoin de procédures de handshake, contrairement à TCP. Cette caractéristique est exploitée dans les **attaques par amplification DDoS NTP**. Ici, les attaquants créent des paquets avec une adresse IP source falsifiée, donnant l'impression que les demandes d'attaque proviennent de la victime. Ces paquets, initialement petits, incitent le serveur NTP à répondre avec des volumes de données beaucoup plus importants, amplifiant ainsi l'attaque.
| 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étroport. citeturn1search1turn1search2turn1search0|
| 2023 | **CVE-2023-33192** | **ntpd-rs** (implémentation Rust) | Cookie **NTS** malformé provoque un **DoS** à distance avant v0.3.3 affecte le port 123 même lorsque NTS **désactivé**. citeturn4view0|
| 2024 | mises à jour de distribution | **chrony 4.4 / 4.5** plusieurs durcissements de sécurité & correctifs NTS-KE (par exemple, SUSE-RU-2024:2022) citeturn2search2|
| 2024 | DDoS enregistré | 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. citeturn5search0|
La commande _**MONLIST**_, bien qu'elle soit rarement utilisée, peut rapporter les 600 derniers clients connectés au service NTP. Bien que la commande elle-même soit simple, son utilisation abusive dans de telles attaques met en évidence des vulnérabilités de sécurité critiques.
> **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. citeturn1search4
---
## Attaques avancées
### 1. Amplification / Réflexion NTP
La requête héritée 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 guide étape par étape. citeturn5search1
### 2. Attaques de décalage temporel / de retard (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 Khronos (anciennement Chronos)** de l'IETF 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``). citeturn9search1
### 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 :
```bash
ntpdc -n -c monlist <IP>
```
## Shodan
# TLS reconnaissance
nmap -sV -p 4460 --script ssl-enum-ciphers,ssl-cert <IP>
- `ntp`
## HackTricks Commandes Automatiques
# Grab banner & ALPN
openssl s_client -connect <IP>:4460 -alpn ntske/1 -tls1_3 -ign_eof
```
Protocol_Name: NTP #Protocol Abbreviation if there is one.
Port_Number: 123 #Comma separated if there is more than one.
Protocol_Description: Network Time Protocol #Protocol Abbreviation Spelled out
Recherchez des certificats auto-signés ou expirés et des suites de chiffrement faibles (non-AEAD). Référence : RFC 8915 §4. citeturn11search0
---
## Renforcement / Meilleures Pratiques Actuelles (BCP-233 / RFC 8633)
*Les opérateurs DOIVENT :*
1. Utiliser **≥ 4** sources de temps indépendantes et diverses (pools publics, GPS, ponts PTP) pour éviter le empoisonnement par source unique.
2. Activer les restrictions ``kod`` et ``limited``/``nomodify`` afin que les clients abusifs reçoivent des paquets de limitation de taux **Kiss-o'-Death** au lieu de réponses complètes.
3. 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.)
4. 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.
5. 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. citeturn8search0turn8search1
---
## 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 de 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 malveillant 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
@ -71,4 +166,17 @@ Name: Nmap
Description: Enumerate NTP
Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 {IP}
```
{{#include ../banners/hacktricks-training.md}}
---
## Références
- RFC 8915 *Sécurité du temps réseau pour le protocole de temps réseau* (port 4460) citeturn11search0
- RFC 8633 *Protocole de temps réseau BCP* citeturn8search0
- Rapport DDoS de Cloudflare 2024 T4 (5,6 Tbps) citeturn5search0
- Article de Cloudflare sur l'*attaque d'amplification NTP* citeturn5search1
- NTP 4.2.8p15 série CVE 2023-04 citeturn1search4
- Entrées NVD **CVE-2023-2655155**, **CVE-2023-33192** citeturn1search1turn1search2turn1search0turn4view0
- Mise à jour de sécurité chrony SUSE 2024 (chrony 4.5) citeturn2search2
- Projet Khronos/Chronos (atténuation du décalage horaire) citeturn9search1
- Manuel chronyc/exemples pour la surveillance à distance citeturn3search0turn10search1
- Docs du module ntp zgrab2 citeturn7search0
{{#include /banners/hacktricks-training.md}}