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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Основна інформація
Протокол синхронізації часу в мережі (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
# 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
увімкнено:
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
# 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>
Масове/Інтернет-сканування
# 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 | Компонент | Вплив |
---|---|---|---|
2023 | CVE-2023-26551→26555 | ntp 4.2.8p15 (libntp mstolfp, praecis_parse) | Багаторазові записи за межами допустимого, доступні через відповіді ntpq. Патч у 4.2.8p16 🡒 оновлення або зворотне портування виправлень. |
2023 | CVE-2023-33192 | ntpd-rs (реалізація на Rust) | Неправильно сформований NTS cookie викликає віддалений DoS до v0.3.3 – впливає на порт 123 навіть коли NTS вимкнено. |
2024 | оновлення дистрибутивів | chrony 4.4 / 4.5 – кілька виправлень безпеки та NTS-KE (наприклад, SUSE-RU-2024:2022) | |
2024 | Запис DDoS | Cloudflare повідомляє про 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 або дозволяють слабкі шифри. Тестувальники повинні:
# 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)
Оператори МАЮТЬ:
- Використовувати ≥ 4 незалежні, різноманітні джерела часу (публічні пулі, GPS, PTP-містки), щоб уникнути отруєння з одного джерела.
- Увімкнути
kod
таlimited
/nomodify
обмеження, щоб зловмисні клієнти отримували пакети Kiss-o'-Death з обмеженням швидкості замість повних відповідей. - Моніторити журнали демонів на предмет panic подій або коригувань кроку > 1000 с. (Сигнатури атаки згідно з RFC 8633 §5.3.)
- Розглянути leap-smear, щоб уникнути простоїв через стрибки секунд, але переконатися, що всі downstream клієнти використовують одне й те саме вікно розмиття.
- Зберігати опитування ≤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 & peers | python ntpwn.py --monlist targets.txt |
zgrab2 ntp | Масове сканування / JSON вихід з включеним прапором monlist | Див. команду вище |
chronyd з allow | Запустити зловмисний NTP сервер у лабораторії пентесту | chronyd -q 'server 127.127.1.0 iburst' |
BetterCap | Впровадження NTP пакетів для MITM з зсувом часу на Wi-Fi | set 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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.