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

This commit is contained in:
Translator 2025-07-10 09:32:43 +00:00
parent dc4d2cb097
commit fa604d2ca3

View File

@ -4,59 +4,154 @@
## 기본 정보 ## 기본 정보
**네트워크 시간 프로토콜 (NTP)**는 다양한 지연 네트워크에서 컴퓨터와 네트워크 장치가 시계를 정확하게 동기화하도록 보장합니다. IT 운영, 보안 및 로깅에서 정확한 시간 유지에 필수적입니다. NTP의 정확성은 중요하지만, 적절하게 관리되지 않으면 보안 위험을 초래할 수 있습니다. **네트워크 시간 프로토콜 (NTP)**는 가변 대기 시간 네트워크에서 컴퓨터와 네트워크 장치가 시계를 정확하게 동기화하도록 보장합니다. IT 운영, 보안 및 로깅에서 정확한 시간 유지에 필수적입니다. 시간은 거의 모든 인증, 암호 프로토콜 및 포렌식 프로세스에 사용되기 때문에, **NTP에 영향을 미칠 수 있는 공격자는 종종 보안 통제를 우회하거나 공격을 조사하기 어렵게 만들 수 있습니다.**
### 요약 및 보안 팁: ### 요약 및 보안 팁
- **목적**: 네트워크를 통해 장치 시계를 동기화합니다. - **목적**: 네트워크를 통해 장치 시계를 동기화합니다.
- **중요성**: 보안, 로깅 및 운영에 중요합니다. - **중요성**: 보안, 로깅, 암호 프로토콜 및 분산 시스템에 중요합니다.
- **보안 조치**: - **보안 조치**:
- 인증이 있는 신뢰할 수 있는 NTP 소스를 사용하십시오. - 인증이 있는 신뢰할 수 있는 NTP 또는 NTS(네트워크 시간 보안) 소스를 사용합니다.
- 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
nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 <IP> # 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 배포판에서)
``cmdallow``가 활성화되면 원격 IP에서 허용되는 모니터링 명령은 극히 일부입니다:
```bash
chronyc -a -n tracking -h <IP>
chronyc -a -n sources -v -h <IP>
chronyc -a -n sourcestats -h <IP>
```
**M/S** 플래그와 기타 필드(스트라텀, 리치, 지터 등)의 의미는 chronyc 매뉴얼 페이지를 참조하세요.
### 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"
```
---
## 구성 파일 검사 ## 구성 파일 검사
- ntp.conf - ``/etc/ntp.conf`` (ntpd)
- ``/etc/chrony/chrony.conf`` (chrony)
- ``/etc/systemd/timesyncd.conf`` (timesyncd 클라이언트 전용)
## NTP 증폭 공격 ``restrict`` 라인, ``kod`` (Kiss-o'-Death) 설정, ``disable monitor``/``includefile /etc/ntp/crypto`` 및 *NTS*가 활성화되어 있는지 (``nts enable``) 특별히 주의하십시오.
[**NTP DDoS 공격 작동 방식**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref) ---
## 최근 취약점 (2023-2025)
**NTP 프로토콜**은 UDP를 사용하여 TCP와 달리 핸드셰이크 절차 없이 작동할 수 있습니다. 이 특성은 **NTP DDoS 증폭 공격**에서 악용됩니다. 여기서 공격자는 가짜 소스 IP로 패킷을 생성하여 공격 요청이 피해자로부터 오는 것처럼 보이게 합니다. 이러한 패킷은 처음에는 작지만, NTP 서버가 훨씬 더 큰 데이터 양으로 응답하도록 하여 공격을 증폭시킵니다. | 연도 | 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** 쿠키로 인해 v0.3.3 이전에 원격 **DoS** 발생 NTS가 **비활성화**된 경우에도 포트 123에 영향을 미침. 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|
_**MONLIST**_ 명령은 드물게 사용되지만, NTP 서비스에 연결된 마지막 600명의 클라이언트를 보고할 수 있습니다. 명령 자체는 간단하지만, 이러한 공격에서의 오용은 중요한 보안 취약점을 강조합니다. > **익스플로잇 키트**: 2023 ntpq OOB-write 시리즈에 대한 개념 증명 페이로드가 GitHub에 있으며 (Meinberg 작성 참조) 시스템 관리자에 대한 클라이언트 측 피싱을 위해 무기화될 수 있습니다. citeturn1search4
---
## 고급 공격
### 1. NTP 증폭 / 반사
구식 Mode-7 ``monlist`` 쿼리는 최대 **600개의 호스트 주소**를 반환하며 여전히 수천 개의 인터넷 호스트에 존재합니다. 응답 (428-468 바이트/항목)이 8바이트 요청보다 *~ 200×* 더 크기 때문에 공격자는 세 자리 증폭 계수를 달성할 수 있습니다. 완화 조치:
- ntp 4.2.8p15+로 업그레이드하고 ``disable monitor``를 **추가**하십시오.
- 엣지에서 UDP/123의 속도를 제한하거나 DDoS 장치에서 *sessions-required*를 활성화하십시오.
- 출처 스푸핑을 차단하기 위해 *BCP 38* 이탈 필터링을 활성화하십시오.
Cloudflare의 학습 센터 기사를 참조하여 단계별 분석을 확인하십시오. citeturn5search1
### 2. 시간 이동 / 지연 공격 (Khronos / Chronos 연구)
인증이 있더라도, 경로상의 공격자는 패킷을 드롭하거나 지연시켜 클라이언트 시계를 조용히 **이동**시킬 수 있습니다. IETF **Khronos (이전 Chronos) 초안**은 백그라운드에서 다양한 서버를 쿼리하고 결과를 정상 확인하여 𝚡 ms를 초과하는 이동을 감지할 것을 제안합니다. 최신 chrony (4.4+)는 이미 유사한 정상 필터 (``maxdistance`` / ``maxjitter``)를 구현하고 있습니다. citeturn9search1
### 3. NTS 남용 및 4460/tcp 노출
NTS는 무거운 암호화를 별도의 **TLS 1.3 채널에서 4460/tcp** (``ntske/1``)로 이동합니다. 잘못된 구현 (CVE-2023-33192 참조)은 쿠키를 파싱할 때 충돌하거나 약한 암호를 허용합니다. 펜테스터는:
```bash ```bash
ntpdc -n -c monlist <IP> # 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
``` ```
## Shodan 자체 서명된 인증서나 만료된 인증서 및 약한 암호화 스위트(비 AEAD)를 찾으십시오. 참조: RFC 8915 §4. citeturn11search0
- `ntp` ---
## 강화 / 최선의 현재 관행 (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** | 대량 스캔 / monlist 플래그를 포함한 JSON 출력 | 위의 명령 참조 |
| ``chronyd`` with ``allow`` | 펜테스트 실험실에서 악성 NTP 서버 실행 | ``chronyd -q 'server 127.127.1.0 iburst'`` |
| ``BetterCap`` | Wi-Fi에서 시간 이동 MITM을 위한 NTP 패킷 주입 | ``set arp.spoof.targets <victim>; set ntp.time.delta 30s; arp.spoof on`` |
---
## HackTricks 자동 명령 ## HackTricks 자동 명령
``` ```
Protocol_Name: NTP #Protocol Abbreviation if there is one. Protocol_Name: NTP
Port_Number: 123 #Comma separated if there is more than one. Port_Number: 123
Protocol_Description: Network Time Protocol #Protocol Abbreviation Spelled out Protocol_Description: Network Time Protocol
Entry_1: Entry_1:
Name: Notes Name: Notes
@ -71,4 +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}} ---
## References
- RFC 8915 *Network Time Security for the Network Time Protocol* (port 4460) citeturn11search0
- RFC 8633 *Network Time Protocol BCP* citeturn8search0
- Cloudflare DDoS report 2024 Q4 (5.6 Tbps) citeturn5search0
- Cloudflare *NTP Amplification Attack* article citeturn5search1
- NTP 4.2.8p15 CVE series 2023-04 citeturn1search4
- NVD entries **CVE-2023-2655155**, **CVE-2023-33192** citeturn1search1turn1search2turn1search0turn4view0
- SUSE chrony security update 2024 (chrony 4.5) citeturn2search2
- Khronos/Chronos draft (time-shift mitigation) citeturn9search1
- chronyc manual/examples for remote monitoring citeturn3search0turn10search1
- zgrab2 ntp module docs citeturn7search0
{{#include /banners/hacktricks-training.md}}