123/udp - Pentesting NTP
Reading time: 7 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
기본 정보
**네트워크 시간 프로토콜 (NTP)**는 가변 대기 시간 네트워크에서 컴퓨터와 네트워크 장치가 시계를 정확하게 동기화하도록 보장합니다. IT 운영, 보안 및 로깅에서 정확한 시간 유지에 필수적입니다. 시간은 거의 모든 인증, 암호 프로토콜 및 포렌식 프로세스에서 사용되기 때문에, 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 배포판에서)
cmdallow
가 활성화되면 원격 IP에서 허용되는 모니터링 명령은 극히 일부입니다:
chronyc -a -n tracking -h <IP>
chronyc -a -n sources -v -h <IP>
chronyc -a -n sourcestats -h <IP>
M/S 플래그와 기타 필드(스트라텀, 리치, 지터 등)의 의미는 chronyc 매뉴얼 페이지를 참조하세요.
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 쿠키로 인해 v0.3.3 이전에 원격 DoS 발생 – NTS가 비활성화된 경우에도 포트 123에 영향을 미침. |
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 증폭 / 반사
구식 Mode-7 monlist
쿼리는 최대 600개의 호스트 주소를 반환하며 여전히 수천 개의 인터넷 호스트에 존재합니다. 응답 (428-468 바이트/항목)이 8바이트 요청보다 ~ 200배 더 크기 때문에 공격자는 세 자리 증폭 계수를 달성할 수 있습니다. 완화 조치:
- ntp 4.2.8p15+로 업그레이드하고
disable monitor
를 추가하십시오. - 엣지에서 UDP/123의 속도를 제한하거나 DDoS 장비에서 sessions-required를 활성화하십시오.
- 출구 필터링을 위해 BCP 38를 활성화하여 소스 스푸핑을 차단하십시오.
단계별 분석을 위해 Cloudflare의 학습 센터 기사를 참조하십시오.
2. 시간 이동 / 지연 공격 (Khronos / Chronos 연구)
인증이 있더라도, 경로 공격자는 패킷을 드롭하거나 지연시켜 클라이언트 시계를 조용히 이동시킬 수 있습니다. IETF Khronos (이전 Chronos) 초안은 백그라운드에서 다양한 서버를 쿼리하고 결과를 정상 확인하여 𝚡 ms 이상의 이동을 감지할 것을 제안합니다. 최신 chrony (4.4+)는 이미 유사한 정상 필터 (maxdistance
/ maxjitter
)를 구현하고 있습니다.
3. NTS 남용 및 4460/tcp 노출
NTS는 무거운 암호화를 별도의 TLS 1.3 채널인 4460/tcp (ntske/1
)로 이동합니다. 잘못된 구현 (CVE-2023-33192 참조)은 쿠키를 파싱할 때 충돌하거나 약한 암호를 허용합니다. 펜테스터는:
# 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
자체 서명된 인증서나 만료된 인증서 및 약한 암호화 스위트(비 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를 고려하되, 모든 하류 클라이언트가 동일한 스미어 윈도우를 사용하도록 하십시오.
- 도약 초 플래그가 누락되지 않도록 폴링을 ≤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 | 대량 스캔 / 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 자동 명령
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}
References
- RFC 8915 – Network Time Security for the Network Time Protocol (port 4460)
- RFC 8633 – Network Time Protocol BCP
- Cloudflare DDoS report 2024 Q4 (5.6 Tbps)
- Cloudflare NTP Amplification Attack article
- NTP 4.2.8p15 CVE series 2023-04
- NVD entries CVE-2023-26551–55, CVE-2023-33192
- SUSE chrony security update 2024 (chrony 4.5)
- Khronos/Chronos draft (time-shift mitigation)
- chronyc manual/examples for remote monitoring
- zgrab2 ntp module docs
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.