123/udp - Pentesting NTP

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks

Основна інформація

Протокол синхронізації часу в мережі (NTP) забезпечує синхронізацію годинників комп'ютерів та мережевих пристроїв через мережі з різною затримкою. Це важливо для підтримки точного обліку часу в ІТ-операціях, безпеці та веденні журналів. Оскільки час використовується практично в кожному процесі аутентифікації, криптопротоколі та судово-медичному розслідуванні, зловмисник, який може впливати на NTP, часто може обійти засоби безпеки або ускладнити розслідування атак.

Резюме та поради з безпеки

  • Мета: Синхронізує годинники пристроїв через мережі.
  • Важливість: Критично важливо для безпеки, ведення журналів, криптопротоколів та розподілених систем.
  • Заходи безпеки:
  • Використовуйте надійні джерела NTP або NTS (Безпека часу в мережі) з аутентифікацією.
  • Обмежте, хто може запитувати/керувати демоном (restrict default noquery, kod тощо).
  • Вимкніть запити контролю старих режимів 6/7 (monlist, ntpdc) або обмежте їх частоту.
  • Моніторте відхилення синхронізації/стан стрибка секунд для виявлення підробок.
  • Тримайте демон оновленим (див. останні CVE нижче).

Порт за замовчуванням

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

Перерахунок

Класичний 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 (в більшості сучасних дистрибутивів Linux)

Лише кілька команд моніторингу приймаються з віддалених IP-адрес, коли cmdallow увімкнено:

bash
chronyc -a -n tracking   -h <IP>
chronyc -a -n sources -v -h <IP>
chronyc -a -n sourcestats -h <IP>

Дивіться сторінку man для chronyc для значення прапорців M/S та інших полів (stratum, reach, jitter тощо).

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>

Масове/Інтернет-сканування

bash
# Check if MONLIST is enabled (zgrab2 module)
zgrab2 ntp --monlist --timeout 3 --output-file monlist.json -f "zmap_results.csv"

Перевірка конфігураційних файлів

  • /etc/ntp.conf (ntpd)
  • /etc/chrony/chrony.conf (chrony)
  • /etc/systemd/timesyncd.conf (timesyncd – тільки клієнт)

Зверніть особливу увагу на рядки restrict, налаштування kod (Kiss-o'-Death), disable monitor/includefile /etc/ntp/crypto та чи увімкнено NTS (nts enable).


Останні вразливості (2023-2025)

РікCVEКомпонентВплив
2023CVE-2023-26551→26555ntp 4.2.8p15 (libntp mstolfp, praecis_parse)Багаторазові записи за межами допустимого, доступні через відповіді ntpq. Патч у 4.2.8p16 🡒 оновлення або зворотне портування виправлень.
2023CVE-2023-33192ntpd-rs (реалізація на Rust)Неправильно сформований NTS cookie викликає віддалений DoS до v0.3.3 – впливає на порт 123 навіть коли NTS вимкнено.
2024оновлення дистрибутивівchrony 4.4 / 4.5 – кілька виправлень безпеки та NTS-KE (наприклад, SUSE-RU-2024:2022)
2024Запис DDoSCloudflare повідомляє про 5.6 Tbps UDP-рефлексій атаку (NTP серед використаних протоколів). Тримайте monitor та monlist вимкненими на хостах, що виходять в Інтернет.

Експлойт-кити: Патчі для концептуальних навантажень серії 2023 ntpq OOB-write доступні на GitHub (див. опис Meinberg) і можуть бути використані для фішингу з боку клієнта для системних адміністраторів.


Розширені атаки

1. Посилення / Відображення NTP

Запит старого режиму-7 monlist повертає до 600 адрес хостів і все ще присутній на тисячах Інтернет-хостів. Оскільки відповідь (428-468 байт/запис) є ~ 200× більшою за 8-байтовий запит, зловмисник може досягти тризначних коефіцієнтів посилення. Заходи пом'якшення:

  • Оновіть до ntp 4.2.8p15+ та додайте disable monitor.
  • Обмежте швидкість UDP/123 на краю або увімкніть sessions-required на пристроях DDoS.
  • Увімкніть BCP 38 фільтрацію виходу, щоб заблокувати підробку джерела.

Дивіться статтю навчального центру Cloudflare для покрокового розбору.

2. Атаки на зсув часу / затримку (дослідження Khronos / Chronos)

Навіть з аутентифікацією, зловмисник на шляху може безшумно зсунути годинник клієнта, скидаючи/затримуючи пакети. Проект Khronos (раніше Chronos) IETF пропонує запитувати різноманітний набір серверів у фоновому режимі та перевіряти результати на предмет виявлення зсуву > 𝚡 мс. Сучасний chrony (4.4+) вже реалізує подібний фільтр перевірки (maxdistance / maxjitter).

3. Зловживання NTS та експозиція 4460/tcp

NTS переміщує важку криптографію на окремий TLS 1.3 канал на 4460/tcp (ntske/1). Погані реалізації (див. CVE-2023-33192) аварійно завершуються при парсингу cookie або дозволяють слабкі шифри. Тестувальники повинні:

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

Шукайте самопідписані або прострочені сертифікати та слабкі шифри (non-AEAD). Посилання: RFC 8915 §4.


Укріплення / Найкраща поточна практика (BCP-233 / RFC 8633)

Оператори МАЮТЬ:

  1. Використовувати ≥ 4 незалежні, різноманітні джерела часу (публічні пулі, GPS, PTP-містки), щоб уникнути отруєння з одного джерела.
  2. Увімкнути kod та limited/nomodify обмеження, щоб зловмисні клієнти отримували пакети Kiss-o'-Death з обмеженням швидкості замість повних відповідей.
  3. Моніторити журнали демонів на предмет panic подій або коригувань кроку > 1000 с. (Сигнатури атаки згідно з RFC 8633 §5.3.)
  4. Розглянути leap-smear, щоб уникнути простоїв через стрибки секунд, але переконатися, що всі downstream клієнти використовують одне й те саме вікно розмиття.
  5. Зберігати опитування ≤24 год, щоб не пропустити прапори стрибка секунд.

Дивіться RFC 8633 для всебічного контрольного списку.


Shodan / Censys Dorks

port:123 "ntpd"          # Version banner
udp port:123 monlist:true # Censys tag for vulnerable servers
port:4460 "ntske"         # NTS-KE

Корисні інструменти

ІнструментПризначенняПриклад
ntpwnОбгортка для скрипт-кідді для спрею запитів monlist & peerspython ntpwn.py --monlist targets.txt
zgrab2 ntpМасове сканування / JSON вихід з включеним прапором monlistДив. команду вище
chronyd з allowЗапустити зловмисний NTP сервер у лабораторії пентестуchronyd -q 'server 127.127.1.0 iburst'
BetterCapВпровадження NTP пакетів для MITM з зсувом часу на Wi-Fiset arp.spoof.targets <victim>; set ntp.time.delta 30s; arp.spoof on

Автоматичні команди 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}

Посилання

  • RFC 8915 – Безпека часу мережі для протоколу часу мережі (порт 4460)
  • RFC 8633 – Протокол часу мережі BCP
  • Звіт Cloudflare про DDoS 2024 Q4 (5.6 Tbps)
  • Стаття Cloudflare Атака посилення NTP
  • NTP 4.2.8p15 серія CVE 2023-04
  • Записи NVD CVE-2023-26551–55, CVE-2023-33192
  • Оновлення безпеки SUSE chrony 2024 (chrony 4.5)
  • Чернетка Khronos/Chronos (зменшення зсуву часу)
  • Посібник chronyc/приклади для віддаленого моніторингу
  • Документація модуля zgrab2 ntp

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks