mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/pentesting-ntp.md'] to uk
This commit is contained in:
parent
04edb1074b
commit
89e57f90c2
@ -4,59 +4,154 @@
|
||||
|
||||
## Основна інформація
|
||||
|
||||
**Протокол мережевого часу (NTP)** забезпечує синхронізацію годинників комп'ютерів та мережевих пристроїв через мережі з різною затримкою. Це важливо для підтримки точної облікової інформації в ІТ-операціях, безпеці та веденні журналів. Точність NTP є суттєвою, але вона також несе в собі ризики безпеки, якщо не управляти нею належним чином.
|
||||
**Протокол синхронізації часу в мережі (NTP)** забезпечує синхронізацію годинників комп'ютерів та мережевих пристроїв через мережі з різною затримкою. Це важливо для підтримки точного обліку часу в ІТ-операціях, безпеці та веденні журналів. Оскільки час використовується практично в кожному процесі аутентифікації, криптопротоколі та судово-медичному розслідуванні, **зловмисник, який може впливати на NTP, часто може обійти засоби безпеки або ускладнити розслідування атак.**
|
||||
|
||||
### Резюме та поради з безпеки:
|
||||
### Резюме та поради з безпеки
|
||||
|
||||
- **Мета**: Синхронізує годинники пристроїв через мережі.
|
||||
- **Важливість**: Критично важливо для безпеки, ведення журналів та операцій.
|
||||
- **Важливість**: Критично важливо для безпеки, ведення журналів, криптопротоколів та розподілених систем.
|
||||
- **Заходи безпеки**:
|
||||
- Використовуйте надійні джерела NTP з автентифікацією.
|
||||
- Обмежте доступ до мережі NTP-сервера.
|
||||
- Моніторте синхронізацію на предмет ознак підробки.
|
||||
- Використовуйте надійні джерела NTP або NTS (Network Time Security) з аутентифікацією.
|
||||
- Обмежте, хто може запитувати/керувати демоном (``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
|
||||
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
|
||||
# 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>
|
||||
```
|
||||
## 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
|
||||
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** 🡒 оновлення або зворотне портування виправлень. citeturn1search1turn1search2turn1search0|
|
||||
| 2023 | **CVE-2023-33192** | **ntpd-rs** (реалізація на Rust) | Неправильно сформований **NTS** cookie викликає віддалений **DoS** до v0.3.3 – впливає на порт 123 навіть коли NTS **вимкнено**. citeturn4view0|
|
||||
| 2024 | оновлення дистрибутивів | **chrony 4.4 / 4.5** – кілька виправлень безпеки та NTS-KE (наприклад, SUSE-RU-2024:2022) citeturn2search2|
|
||||
| 2024 | Запис DDoS | Cloudflare повідомляє про **5.6 Tbps UDP відображення** атаки (NTP серед використаних протоколів). Тримайте *monitor* та *monlist* вимкненими на хостах, що виходять в Інтернет. citeturn5search0|
|
||||
|
||||
> **Експлойт-кити**: Патчі для концептуальних навантажень серії 2023 ntpq OOB-write доступні на GitHub (див. опис Meinberg) і можуть бути використані для фішингу з боку клієнта для системних адміністраторів. citeturn1search4
|
||||
|
||||
---
|
||||
## Розширені атаки
|
||||
|
||||
### 1. Посилення / Відображення NTP
|
||||
|
||||
Запит старого режиму-7 ``monlist`` повертає до **600 адрес хостів** і все ще присутній на тисячах Інтернет-хостів. Оскільки відповідь (428-468 байт/запис) *~ 200×* більша за 8-байтовий запит, зловмисник може досягти тризначних коефіцієнтів посилення. Заходи пом'якшення:
|
||||
|
||||
- Оновіть до ntp 4.2.8p15+ та **додайте** ``disable monitor``.
|
||||
- Обмежте швидкість UDP/123 на краю або увімкніть *sessions-required* на пристроях DDoS.
|
||||
- Увімкніть *BCP 38* фільтрацію виходу, щоб заблокувати підробку джерела.
|
||||
|
||||
Дивіться статтю навчального центру Cloudflare для покрокового розбору. citeturn5search1
|
||||
|
||||
### 2. Атаки на зсув часу / затримку (дослідження Khronos / Chronos)
|
||||
|
||||
Навіть з автентифікацією, зловмисник на шляху може безшумно **зсунути годинник клієнта**, скидаючи/затримуючи пакети. Проект IETF **Khronos (раніше Chronos)** пропонує запитувати різноманітний набір серверів у фоновому режимі та перевіряти результати на наявність зсуву > 𝚡 мс. Сучасний chrony (4.4+) вже реалізує подібний фільтр перевірки (``maxdistance`` / ``maxjitter``). citeturn9search1
|
||||
|
||||
### 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.
|
||||
Port_Number: 123 #Comma separated if there is more than one.
|
||||
Protocol_Description: Network Time Protocol #Protocol Abbreviation Spelled out
|
||||
Шукайте самопідписані або прострочені сертифікати та слабкі шифри (non-AEAD). Посилання: RFC 8915 §4. citeturn11search0
|
||||
|
||||
---
|
||||
## Укріплення / Найкраща поточна практика (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 для всебічного контрольного списку. citeturn8search0turn8search1
|
||||
|
||||
---
|
||||
## 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
|
||||
@ -71,6 +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}}
|
||||
- RFC 8915 – *Безпека часу мережі для протоколу часу мережі* (порт 4460) citeturn11search0
|
||||
- RFC 8633 – *Протокол часу мережі BCP* citeturn8search0
|
||||
- Звіт Cloudflare про DDoS 2024 Q4 (5.6 Tbps) citeturn5search0
|
||||
- Стаття Cloudflare про *Атаку посилення NTP* citeturn5search1
|
||||
- NTP 4.2.8p15 серія CVE 2023-04 citeturn1search4
|
||||
- Записи NVD **CVE-2023-26551–55**, **CVE-2023-33192** citeturn1search1turn1search2turn1search0turn4view0
|
||||
- Оновлення безпеки SUSE chrony 2024 (chrony 4.5) citeturn2search2
|
||||
- Чернетка Khronos/Chronos (зменшення зсуву часу) citeturn9search1
|
||||
- Посібник chronyc/приклади для віддаленого моніторингу citeturn3search0turn10search1
|
||||
- Документація модуля ntp zgrab2 citeturn7search0
|
||||
{{#include /banners/hacktricks-training.md}}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user