Translated ['src/network-services-pentesting/pentesting-ntp.md'] to uk

This commit is contained in:
Translator 2025-07-10 09:32:52 +00:00
parent 04edb1074b
commit 89e57f90c2

View File

@ -4,59 +4,154 @@
## Основна інформація ## Основна інформація
**Протокол мережевого часу (NTP)** забезпечує синхронізацію годинників комп'ютерів та мережевих пристроїв через мережі з різною затримкою. Це важливо для підтримки точної облікової інформації в ІТ-операціях, безпеці та веденні журналів. Точність NTP є суттєвою, але вона також несе в собі ризики безпеки, якщо не управляти нею належним чином. **Протокол синхронізації часу в мережі (NTP)** забезпечує синхронізацію годинників комп'ютерів та мережевих пристроїв через мережі з різною затримкою. Це важливо для підтримки точного обліку часу в ІТ-операціях, безпеці та веденні журналів. Оскільки час використовується практично в кожному процесі аутентифікації, криптопротоколі та судово-медичному розслідуванні, **зловмисник, який може впливати на NTP, часто може обійти засоби безпеки або ускладнити розслідування атак.**
### Резюме та поради з безпеки: ### Резюме та поради з безпеки
- **Мета**: Синхронізує годинники пристроїв через мережі. - **Мета**: Синхронізує годинники пристроїв через мережі.
- **Важливість**: Критично важливо для безпеки, ведення журналів та операцій. - **Важливість**: Критично важливо для безпеки, ведення журналів, криптопротоколів та розподілених систем.
- **Заходи безпеки**: - **Заходи безпеки**:
- Використовуйте надійні джерела NTP з автентифікацією. - Використовуйте надійні джерела NTP або NTS (Network Time Security) з аутентифікацією.
- Обмежте доступ до мережі NTP-сервера. - Обмежте, хто може запитувати/керувати демоном (``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
```
**Порт за замовчуванням:** 123/udp
``` ```
PORT STATE SERVICE REASON PORT STATE SERVICE REASON
123/udp open ntp udp-response 123/udp open ntp udp-response
``` ```
---
## Перерахування ## Перерахування
```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
```bash ```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> 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>
``` ```
## Examine configuration files ### Масове/Інтернет-сканування
- ntp.conf
## NTP Amplification Attack
[**How NTP DDoS Attack Works**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref)
Протокол **NTP**, що використовує UDP, дозволяє працювати без необхідності в процедурах рукопожаття, на відміну від TCP. Ця характеристика експлуатується в **NTP DDoS amplification attacks**. Тут зловмисники створюють пакети з підробленою IP-адресою джерела, що створює враження, ніби запити атаки надходять від жертви. Ці пакети, спочатку невеликі, змушують NTP-сервер відповідати значно більшими обсягами даних, посилюючи атаку.
Команда _**MONLIST**_, незважаючи на рідкісне використання, може повідомити про останні 600 клієнтів, підключених до служби NTP. Хоча сама команда є простою, її зловживання в таких атаках підкреслює критичні вразливості безпеки.
```bash ```bash
ntpdc -n -c monlist <IP> # Check if MONLIST is enabled (zgrab2 module)
zgrab2 ntp --monlist --timeout 3 --output-file monlist.json -f "zmap_results.csv"
``` ```
## Shodan ---
## Перевірка конфігураційних файлів
- `ntp` - ``/etc/ntp.conf`` (ntpd)
- ``/etc/chrony/chrony.conf`` (chrony)
- ``/etc/systemd/timesyncd.conf`` (timesyncd тільки клієнт)
## HackTricks Автоматичні Команди Зверніть особливу увагу на рядки ``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** 🡒 оновлення або зворотне портування виправлень. citeturn1search1turn1search2turn1search0|
| 2023 | **CVE-2023-33192** | **ntpd-rs** (реалізація на Rust) | Неправильно сформований **NTS** cookie викликає віддалений **DoS** до v0.3.3 впливає на порт 123 навіть коли NTS **вимкнено**. citeturn4view0|
| 2024 | оновлення дистрибутивів | **chrony 4.4 / 4.5** кілька виправлень безпеки та NTS-KE (наприклад, SUSE-RU-2024:2022) citeturn2search2|
| 2024 | Запис DDoS | Cloudflare повідомляє про **5.6 Tbps UDP відображення** атаки (NTP серед використаних протоколів). Тримайте *monitor* та *monlist* вимкненими на хостах, що виходять в Інтернет. citeturn5search0|
> **Експлойт-кити**: Патчі для концептуальних навантажень серії 2023 ntpq OOB-write доступні на GitHub (див. опис Meinberg) і можуть бути використані для фішингу з боку клієнта для системних адміністраторів. citeturn1search4
---
## Розширені атаки
### 1. Посилення / Відображення NTP
Запит старого режиму-7 ``monlist`` повертає до **600 адрес хостів** і все ще присутній на тисячах Інтернет-хостів. Оскільки відповідь (428-468 байт/запис) *~ 200×* більша за 8-байтовий запит, зловмисник може досягти тризначних коефіцієнтів посилення. Заходи пом'якшення:
- Оновіть до ntp 4.2.8p15+ та **додайте** ``disable monitor``.
- Обмежте швидкість UDP/123 на краю або увімкніть *sessions-required* на пристроях DDoS.
- Увімкніть *BCP 38* фільтрацію виходу, щоб заблокувати підробку джерела.
Дивіться статтю навчального центру Cloudflare для покрокового розбору. citeturn5search1
### 2. Атаки на зсув часу / затримку (дослідження Khronos / Chronos)
Навіть з автентифікацією, зловмисник на шляху може безшумно **зсунути годинник клієнта**, скидаючи/затримуючи пакети. Проект IETF **Khronos (раніше Chronos)** пропонує запитувати різноманітний набір серверів у фоновому режимі та перевіряти результати на наявність зсуву > 𝚡 мс. Сучасний chrony (4.4+) вже реалізує подібний фільтр перевірки (``maxdistance`` / ``maxjitter``). citeturn9search1
### 3. Зловживання NTS та експозиція 4460/tcp
NTS переміщує важку криптографію на окремий **TLS 1.3 канал на 4460/tcp** (``ntske/1``). Погані реалізації (див. CVE-2023-33192) аварійно завершуються при парсингу cookie або дозволяють слабкі шифри. Pentesters повинні:
```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
``` ```
Protocol_Name: NTP #Protocol Abbreviation if there is one. Шукайте самопідписані або прострочені сертифікати та слабкі шифри (non-AEAD). Посилання: RFC 8915 §4. citeturn11search0
Port_Number: 123 #Comma separated if there is more than one.
Protocol_Description: Network Time Protocol #Protocol Abbreviation Spelled out ---
## Укріплення / Найкраща поточна практика (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**, щоб уникнути простоїв через стрибки секунд, але переконатися, що *всі* клієнти нижнього рівня використовують одне й те саме вікно розмиття.
5. Зберігати опитування ≤24 год, щоб не пропустити прапори стрибка секунд.
Дивіться RFC 8633 для всебічного контрольного списку. 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
```
---
## Корисні інструменти
| Інструмент | Призначення | Приклад |
|------------|-------------|---------|
| ``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: Entry_1:
Name: Notes Name: Notes
@ -71,6 +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}} - RFC 8915 *Безпека часу мережі для протоколу часу мережі* (порт 4460) citeturn11search0
- RFC 8633 *Протокол часу мережі BCP* citeturn8search0
- Звіт Cloudflare про DDoS 2024 Q4 (5.6 Tbps) citeturn5search0
- Стаття Cloudflare про *Атаку посилення NTP* citeturn5search1
- NTP 4.2.8p15 серія CVE 2023-04 citeturn1search4
- Записи NVD **CVE-2023-2655155**, **CVE-2023-33192** citeturn1search1turn1search2turn1search0turn4view0
- Оновлення безпеки SUSE chrony 2024 (chrony 4.5) citeturn2search2
- Чернетка Khronos/Chronos (зменшення зсуву часу) citeturn9search1
- Посібник chronyc/приклади для віддаленого моніторингу citeturn3search0turn10search1
- Документація модуля ntp zgrab2 citeturn7search0
{{#include /banners/hacktricks-training.md}}