mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/pentesting-ntp.md'] to fr
This commit is contained in:
parent
0821efead9
commit
a7581b1014
@ -4,59 +4,154 @@
|
|||||||
|
|
||||||
## Informations de base
|
## 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.
|
- **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é** :
|
- **Mesures de sécurité** :
|
||||||
- Utilisez des sources NTP de confiance avec authentification.
|
- Utilisez des sources NTP ou NTS (Network Time Security) de confiance avec authentification.
|
||||||
- Limitez l'accès réseau au serveur NTP.
|
- Restreindre qui peut interroger/commander le démon (``restrict default noquery``, ``kod`` etc.).
|
||||||
- Surveillez la synchronisation pour détecter des signes de falsification.
|
- 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
|
PORT STATE SERVICE REASON
|
||||||
123/udp open ntp udp-response
|
123/udp open ntp udp-response
|
||||||
```
|
```
|
||||||
|
---
|
||||||
## Énumération
|
## É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
|
```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
|
## 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. citeturn1search1turn1search2turn1search0|
|
||||||
|
| 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é**. citeturn4view0|
|
||||||
|
| 2024 | mises à jour de distribution | **chrony 4.4 / 4.5** – plusieurs durcissements de sécurité & correctifs NTS-KE (par exemple, SUSE-RU-2024:2022) citeturn2search2|
|
||||||
|
| 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. citeturn5search0|
|
||||||
|
|
||||||
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. citeturn1search4
|
||||||
|
|
||||||
|
---
|
||||||
|
## 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. citeturn5search1
|
||||||
|
|
||||||
|
### 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``). citeturn9search1
|
||||||
|
|
||||||
|
### 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
|
```bash
|
||||||
ntpdc -n -c monlist <IP>
|
# TLS reconnaissance
|
||||||
```
|
nmap -sV -p 4460 --script ssl-enum-ciphers,ssl-cert <IP>
|
||||||
## Shodan
|
|
||||||
|
|
||||||
- `ntp`
|
# Grab banner & ALPN
|
||||||
|
openssl s_client -connect <IP>:4460 -alpn ntske/1 -tls1_3 -ign_eof
|
||||||
## HackTricks Commandes Automatiques
|
|
||||||
```
|
```
|
||||||
Protocol_Name: NTP #Protocol Abbreviation if there is one.
|
Recherchez des certificats auto-signés ou expirés et des suites de chiffrement faibles (non-AEAD). Référence : RFC 8915 §4. citeturn11search0
|
||||||
Port_Number: 123 #Comma separated if there is more than one.
|
|
||||||
Protocol_Description: Network Time Protocol #Protocol Abbreviation Spelled out
|
---
|
||||||
|
## 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. citeturn8search0turn8search1
|
||||||
|
|
||||||
|
---
|
||||||
|
## 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:
|
Entry_1:
|
||||||
Name: Notes
|
Name: Notes
|
||||||
@ -71,4 +166,17 @@ Name: Nmap
|
|||||||
Description: Enumerate NTP
|
Description: Enumerate NTP
|
||||||
Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 {IP}
|
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) citeturn11search0
|
||||||
|
- RFC 8633 – *Protocole de temps réseau BCP* citeturn8search0
|
||||||
|
- Rapport DDoS de Cloudflare 2024 T4 (5,6 Tbps) citeturn5search0
|
||||||
|
- Article de Cloudflare sur l'*attaque d'amplification NTP* citeturn5search1
|
||||||
|
- NTP 4.2.8p15 série CVE 2023-04 citeturn1search4
|
||||||
|
- Entrées NVD **CVE-2023-26551–55**, **CVE-2023-33192** citeturn1search1turn1search2turn1search0turn4view0
|
||||||
|
- Mise à jour de sécurité chrony SUSE 2024 (chrony 4.5) citeturn2search2
|
||||||
|
- Projet Khronos/Chronos (atténuation du décalage horaire) citeturn9search1
|
||||||
|
- Manuel chronyc/exemples pour la surveillance à distance citeturn3search0turn10search1
|
||||||
|
- Docs du module ntp zgrab2 citeturn7search0
|
||||||
|
{{#include /banners/hacktricks-training.md}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user