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