mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
183 lines
8.1 KiB
Markdown
183 lines
8.1 KiB
Markdown
# 123/udp - Pentesting NTP
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
## Basiese Inligting
|
||
|
||
Die **Network Time Protocol (NTP)** verseker dat rekenaars en netwerktoestelle oor veranderlike-latensie netwerke hul horlosies akkuraat sinkroniseer. Dit is noodsaaklik vir die handhawing van presiese tydskeeping in IT-bedrywighede, sekuriteit en logging. Omdat tyd in byna elke outentikasie, kripto-protokol en forensiese proses gebruik word, **kan 'n aanvaller wat NTP kan beïnvloed dikwels sekuriteitsbeheermaatreëls omseil of aanvalle moeiliker maak om te ondersoek.**
|
||
|
||
### Samevatting & Sekuriteitswenke
|
||
|
||
- **Doel**: Sinkroniseer toestelhorlosies oor netwerke.
|
||
- **Belangrikheid**: Krities vir sekuriteit, logging, kripto-protokolle en verspreide stelsels.
|
||
- **Sekuriteitsmaatreëls**:
|
||
- Gebruik vertroude NTP of NTS (Network Time Security) bronne met outentikasie.
|
||
- Beperk wie die daemon kan vra/beveel (``restrict default noquery``, ``kod`` ens.).
|
||
- Deaktiveer erflating Mode-6/7 kontrole vrae (``monlist``, ``ntpdc``) of beperk hul tempo.
|
||
- Monitor sinkronisasie-afwyking/leap-sekonde toestand vir manipulasie.
|
||
- Hou die daemon opgedateer (sien onlangse CVEs hieronder).
|
||
|
||
**Standaard poorte**
|
||
```
|
||
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
|
||
```
|
||
---
|
||
## Opname
|
||
|
||
### Klassieke ntpd / ntpq / ntpdc
|
||
```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 (in die meeste moderne Linux-distro's)
|
||
|
||
Slegs 'n handvol moniteringsopdragte word aanvaar vanaf afstand IP's wanneer ``cmdallow`` geaktiveer is:
|
||
```bash
|
||
chronyc -a -n tracking -h <IP>
|
||
chronyc -a -n sources -v -h <IP>
|
||
chronyc -a -n sourcestats -h <IP>
|
||
```
|
||
Sien die chronyc man-bladsy vir die betekenis van die **M/S** vlae en ander velde (stratum, reach, jitter, ens.).
|
||
|
||
### 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>
|
||
```
|
||
### Mass/Internet skandering
|
||
```bash
|
||
# Check if MONLIST is enabled (zgrab2 module)
|
||
zgrab2 ntp --monlist --timeout 3 --output-file monlist.json -f "zmap_results.csv"
|
||
```
|
||
---
|
||
## Ondersoek konfigurasie lêers
|
||
|
||
- ``/etc/ntp.conf`` (ntpd)
|
||
- ``/etc/chrony/chrony.conf`` (chrony)
|
||
- ``/etc/systemd/timesyncd.conf`` (timesyncd – slegs kliënt)
|
||
|
||
Gee spesiale aandag aan ``restrict`` lyne, ``kod`` (Kiss-o'-Death) instellings, ``disable monitor``/``includefile /etc/ntp/crypto`` en of *NTS* geaktiveer is (``nts enable``).
|
||
|
||
---
|
||
## Onlangse Kwetsbaarhede (2023-2025)
|
||
|
||
| Jaar | CVE | Komponent | Impak |
|
||
|------|-----|-----------|--------|
|
||
| 2023 | **CVE-2023-26551→26555** | ntp 4.2.8p15 (libntp *mstolfp*, *praecis_parse*) | Meervoudige out-of-bounds skrywe bereikbaar via **ntpq** antwoorde. Patches in **4.2.8p16** 🡒 opgradeer of back-port regstellings. |
|
||
| 2023 | **CVE-2023-33192** | **ntpd-rs** (Rust implementasie) | Swak gevormde **NTS** koekie veroorsaak afstand **DoS** voor v0.3.3 – beïnvloed poort 123 selfs wanneer NTS **deaktiveer** is. |
|
||
| 2024 | distro opdaterings | **chrony 4.4 / 4.5** – verskeie sekuriteitsversterkings & NTS-KE regstellings (bv. SUSE-RU-2024:2022) |
|
||
| 2024 | Rekord DDoS | Cloudflare rapporteer 'n **5.6 Tbps UDP refleksie** aanval (NTP onder protokolle wat gebruik word). Hou *monitor* & *monlist* gedeaktiveer op internet-gefokusde gasheers. |
|
||
|
||
> **Exploit kits**: Bewys-van-konsep payloads vir die 2023 ntpq OOB-skryf reeks is op GitHub (sien Meinberg skrywe) en kan gewapen word vir kliënt-kant phishing van stelselsadministrateurs.
|
||
|
||
---
|
||
## Gevorderde Aanvalle
|
||
|
||
### 1. NTP Versterking / Refleksie
|
||
|
||
Die erfenis Mode-7 ``monlist`` navraag keer tot **600 gasheer adresse** terug en is steeds teenwoordig op duisende internet gasheers. Omdat die antwoord (428-468 bytes/inskrywing) *~ 200×* groter is as die 8-byte versoek, kan 'n aanvaller drievoudige versterkingsfaktore bereik. Versagtings:
|
||
|
||
- Opgradeer na ntp 4.2.8p15+ en **voeg** ``disable monitor`` by.
|
||
- Beperk UDP/123 op die rand of aktiveer *sessies benodig* op DDoS toestelle.
|
||
- Aktiveer *BCP 38* uitgangsfiltrering om bron spoofing te blokkeer.
|
||
|
||
Sien Cloudflare se leer-sentrum artikel vir 'n stap-vir-stap ontleding.
|
||
|
||
### 2. Tyd-verskuiwing / Vertraag aanvalle (Khronos / Chronos navorsing)
|
||
|
||
Selfs met outentisering, kan 'n op-pad aanvaller stilweg die **kliënt klok** verskuif deur pakkette te laat val/vertraag. Die IETF **Khronos (voorheen Chronos) konsep** stel voor om 'n diverse stel bedieners in die agtergrond te ondervra en die resultaat te kontroleer om 'n verskuiwing > 𝚡 ms te ontdek. Moderne chrony (4.4+) implementeer reeds 'n soortgelyke sanity filter (``maxdistance`` / ``maxjitter``).
|
||
|
||
### 3. NTS misbruik & 4460/tcp blootstelling
|
||
|
||
NTS skuif die swaar kripto na 'n aparte **TLS 1.3 kanaal op 4460/tcp** (``ntske/1``). Swak implementasies (sien CVE-2023-33192) val uit wanneer koekies ontleed word of laat swak ciphers toe. Pentesters moet:
|
||
```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
|
||
```
|
||
Soek na self-signed of vervalde sertifikate en swak cipher-suites (non-AEAD). Verwysing: RFC 8915 §4.
|
||
|
||
---
|
||
## Versterking / Beste-Huidige-Praktyk (BCP-233 / RFC 8633)
|
||
|
||
*Operateurs MOET:*
|
||
|
||
1. Gebruik **≥ 4** onafhanklike, diverse tydbronne (publieke poele, GPS, PTP-brugte) om enkelbron vergiftiging te vermy.
|
||
2. Aktiveer ``kod`` en ``limited``/``nomodify`` beperkings sodat misbruikende kliënte **Kiss-o'-Death** tempo-beperk pakkette ontvang in plaas van volle antwoorde.
|
||
3. Monitor daemon logs vir **panic** gebeurtenisse of stapaanpassings > 1000 s. (Handtekeninge van aanval volgens RFC 8633 §5.3.)
|
||
4. Oorweeg **leap-smear** om leap-sekonde onderbrekings te vermy, maar verseker dat *alle* afgeleide kliënte dieselfde smear venster gebruik.
|
||
5. Hou polling ≤24 h sodat leap-sekonde vlae nie gemis word nie.
|
||
|
||
Sien RFC 8633 vir 'n omvattende kontrolelys.
|
||
|
||
---
|
||
## Shodan / Censys Dorks
|
||
```
|
||
port:123 "ntpd" # Version banner
|
||
udp port:123 monlist:true # Censys tag for vulnerable servers
|
||
port:4460 "ntske" # NTS-KE
|
||
```
|
||
---
|
||
## Nuttige Gereedskap
|
||
|
||
| Gereedskap | Doel | Voorbeeld |
|
||
|------------|------|-----------|
|
||
| ``ntpwn`` | Script-kiddie-wrapper om monlist & peers navrae te spuit | ``python ntpwn.py --monlist targets.txt`` |
|
||
| **zgrab2 ntp** | Massaskandering / JSON-uitvoer insluitend monlist-vlag | Sien opdrag hierbo |
|
||
| ``chronyd`` met ``allow`` | Loop rogue NTP-bediener in pentest laboratorium | ``chronyd -q 'server 127.127.1.0 iburst'`` |
|
||
| ``BetterCap`` | Spuit NTP-pakkette vir tydverskuiwing MITM op Wi-Fi | ``set arp.spoof.targets <victim>; set ntp.time.delta 30s; arp.spoof on`` |
|
||
|
||
---
|
||
## HackTricks Outomatiese Opdragte
|
||
```
|
||
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}
|
||
```
|
||
---
|
||
## Verwysings
|
||
|
||
- RFC 8915 – *Netwerk Tyd Sekuriteit vir die Netwerk Tyd Protokol* (poort 4460)
|
||
- RFC 8633 – *Netwerk Tyd Protokol BCP*
|
||
- Cloudflare DDoS verslag 2024 Q4 (5.6 Tbps)
|
||
- Cloudflare *NTP Versterking Aanval* artikel
|
||
- NTP 4.2.8p15 CVE reeks 2023-04
|
||
- NVD inskrywings **CVE-2023-26551–55**, **CVE-2023-33192**
|
||
- SUSE chrony sekuriteitsopdatering 2024 (chrony 4.5)
|
||
- Khronos/Chronos konsep (tyd-verskuiwing mitigasie)
|
||
- chronyc handleiding/voorbeelde vir afstandsmonitering
|
||
- zgrab2 ntp module dokumentasie
|
||
{{#include /banners/hacktricks-training.md}}
|