diff --git a/src/network-services-pentesting/pentesting-ntp.md b/src/network-services-pentesting/pentesting-ntp.md index 872fe5208..a90db5c08 100644 --- a/src/network-services-pentesting/pentesting-ntp.md +++ b/src/network-services-pentesting/pentesting-ntp.md @@ -4,59 +4,154 @@ ## 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. NTP se akkuraatheid is noodsaaklik, maar dit bied ook sekuriteitsrisiko's as dit nie behoorlik bestuur word nie. +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: +### Samevatting & Sekuriteitswenke - **Doel**: Sinkroniseer toestelhorlosies oor netwerke. -- **Belangrikheid**: Krities vir sekuriteit, logging, en bedrywighede. +- **Belangrikheid**: Krities vir sekuriteit, logging, kripto-protokolle en verspreide stelsels. - **Sekuriteitsmaatreëls**: -- Gebruik vertroude NTP-bronne met outentisering. -- Beperk NTP-bediener netwerktoegang. -- Monitor sinkronisasie vir tekens van vervalsing. +- 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 hulle se tempo. +- Monitor sinkronisasie-afwyking/leap-second 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 +``` -**Standaard poort:** 123/udp ``` PORT STATE SERVICE REASON 123/udp open ntp udp-response ``` +--- ## Opname -```bash -ntpq -c readlist -ntpq -c readvar -ntpq -c peers -ntpq -c associations -ntpdc -c monlist -ntpdc -c listpeers -ntpdc -c sysinfo -``` +### Klassieke ntpd / ntpq / ntpdc ```bash -nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 +# Information & variables +ntpq -c rv +ntpq -c readvar +ntpq -c peers +ntpq -c associations + +# Legacy mode-7 (often disabled >=4.2.8p9) +ntpdc -c monlist +ntpdc -c listpeers +ntpdc -c sysinfo ``` +### 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 +chronyc -a -n sources -v -h +chronyc -a -n sourcestats -h +``` +Sien die chronyc man-bladsy vir die betekenis van die **M/S** vlae en ander velde (stratum, bereik, jitter, ens.). + +### Nmap +```bash +# Safe discovery & vuln detection +nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 + +# Explicit monlist check +nmap -sU -p123 --script ntp-monlist +``` +### 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 -- ntp.conf +- ``/etc/ntp.conf`` (ntpd) +- ``/etc/chrony/chrony.conf`` (chrony) +- ``/etc/systemd/timesyncd.conf`` (timesyncd – slegs kliënt) -## NTP Versterking Aanval +Gee spesiale aandag aan ``restrict`` lyne, ``kod`` (Kiss-o'-Death) instellings, ``disable monitor``/``includefile /etc/ntp/crypto`` en of *NTS* geaktiveer is (``nts enable``). -[**Hoe NTP DDoS Aanval Werk**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref) +--- +## Onlangse Kwetsbaarhede (2023-2025) -Die **NTP-protokol**, wat UDP gebruik, laat werking toe sonder die behoefte aan handdruk prosedures, anders as TCP. Hierdie eienskap word uitgebuit in **NTP DDoS versterking aanvalle**. Hier skep aanvallers pakkette met 'n vals bron IP, wat dit laat lyk asof die aanval versoeke van die slagoffer kom. Hierdie pakkette, aanvanklik klein, laat die NTP-bediener toe om met baie groter datavolumes te reageer, wat die aanval versterk. +| 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. citeturn1search1turn1search2turn1search0| +| 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 **gedeaktiveer** is. citeturn4view0| +| 2024 | distro opdaterings | **chrony 4.4 / 4.5** – verskeie sekuriteitsversterkings & NTS-KE regstellings (bv. SUSE-RU-2024:2022) citeturn2search2| +| 2024 | Rekord DDoS | Cloudflare rapporteer 'n **5.6 Tbps UDP refleksie** aanval (NTP onder protokolle gebruik). Hou *monitor* & *monlist* gedeaktiveer op internet-gefokusde gasheers. citeturn5search0| -Die _**MONLIST**_ opdrag, ten spyte van sy seldsame gebruik, kan die laaste 600 kliënte wat aan die NTP-diens gekoppel is, rapporteer. Terwyl die opdrag self eenvoudig is, beklemtoon die misbruik daarvan in sulke aanvalle kritieke sekuriteitskwesbaarhede. +> **Eksploitasie kits**: Bewys-van-konsep payloads vir die 2023 ntpq OOB-skrywe reeks is op GitHub (sien Meinberg skrywe) en kan gewapen word vir kliënt-kant phishing van stelselsadministrateurs. citeturn1search4 + +--- +## Gevorderde Aanvalle + +### 1. NTP Amplifikasie / 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 amplifikasiefaktore 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. citeturn5search1 + +### 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``). citeturn9search1 + +### 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 -ntpdc -n -c monlist +# TLS reconnaissance +nmap -sV -p 4460 --script ssl-enum-ciphers,ssl-cert + +# Grab banner & ALPN +openssl s_client -connect :4460 -alpn ntske/1 -tls1_3 -ign_eof ``` -## Shodan +Soek na self-onderteken of vervalde sertifikate en swak cipher-suites (nie-AEAD). Verwysing: RFC 8915 §4. citeturn11search0 -- `ntp` +--- +## 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-beperking pakkette ontvang in plaas van volle antwoorde. +3. Monitor daemon logs vir **panic** gebeurtenisse of stap aanpassings > 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 smeer venster gebruik. +5. Hou polling ≤24 h sodat leap-sekonde vlae nie gemis word nie. + +Sien RFC 8633 vir 'n omvattende kontrolelys. 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 +``` +--- +## 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 ; set ntp.time.delta 30s; arp.spoof on`` | + +--- ## HackTricks Outomatiese Opdragte ``` -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 +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}} +--- +## Verwysings + +- RFC 8915 – *Netwerk Tyd Sekuriteit vir die Netwerk Tyd Protokol* (poort 4460) citeturn11search0 +- RFC 8633 – *Netwerk Tyd Protokol BCP* citeturn8search0 +- Cloudflare DDoS verslag 2024 Q4 (5.6 Tbps) citeturn5search0 +- Cloudflare *NTP Versterking Aanval* artikel citeturn5search1 +- NTP 4.2.8p15 CVE reeks 2023-04 citeturn1search4 +- NVD inskrywings **CVE-2023-26551–55**, **CVE-2023-33192** citeturn1search1turn1search2turn1search0turn4view0 +- SUSE chrony sekuriteitsopdatering 2024 (chrony 4.5) citeturn2search2 +- Khronos/Chronos konsep (tyd-verskuiwing versagting) citeturn9search1 +- chronyc handleiding/voorbeelde vir afstandsmonitering citeturn3search0turn10search1 +- zgrab2 ntp module dokumentasie citeturn7search0 +{{#include /banners/hacktricks-training.md}}