
CVE-1999-0524 の PoC
╔══════════════════════════════════════════════════════════════════╗
║ ██╗ ██████╗███╗ ███╗██████╗ ████████╗███████╗ ║
║ ██║██╔════╝████╗ ████║██╔══██╗ ██╔══╝██╔════╝ ║
║ ██║██║ ██╔████╔██║██████╔╝ ██║ ███████╗ ║
║ ██║██║ ██║╚██╔╝██║██╔═══╝ ██║ ╚════██║ ║
║ ██║╚██████╗██║ ╚═╝ ██║██║ ██║ ███████║ ║
║ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚══════╝ ║
╠══════════════════════════════════════════════════════════════════╣
║ CVE-1999-0524 · ICMP Timestamp Request/Reply Scanner ║
║ Author : Muhamad Bion Tadavi — VPSI ║
║ Org : Vantage Point Security — Authorized Use Only ║
╚══════════════════════════════════════════════════════════════════╝
高速マルチスレッドICMPタイムスタンプスキャナー。色分けされた16進数出力と詳細なタイムスタンプ分析を提供します。
CVE-1999-0524(ICMPタイムスタンプ情報漏洩)の脆弱性を持つホストを検出します。ICMP Type 13 (Timestamp Request) パケットを送信し、ICMP Type 14 (Timestamp Reply) で応答したホストを脆弱と判定します。これにより内部システムクロックが漏洩し、デバイスのフィンガープリントや時刻ベースの攻撃連鎖に悪用される可能性があります。
外部依存関係なし、純粋なPython標準ライブラリのみで構築されています。
Attacker Target
│ │
│──── ICMP Type 13 (Timestamp Request) ──▶│
│ │ [host processes request]
│◀─── ICMP Type 14 (Timestamp Reply) ─────│
│ │
Reply contains three 32-bit timestamp fields (ms since midnight UTC):
├── Originate Timestamp (set by requester — often 0)
├── Receive Timestamp ◀── server clock leaked here
└── Transmit Timestamp ◀── server clock leaked here
python3 --version # 3.8以上であること
git clone https://github.com/<your-username>/CVE-1999-0524-ICMP-Timestamp-Scanner.git
cd CVE-1999-0524-ICMP-Timestamp-Scanner
chmod +x icmp_timestamp_scan.py
sudo python3 icmp_timestamp_scan.py [OPTIONS]
Options:
-t, --target IP、カンマ区切りのIP、またはCIDR (端末入力)
-f, --file 1行に1つのIP/CIDRを記述したファイルのパス
--timeout SECS ホストごとの待機時間(秒)(デフォルト: 2.0)
--threads N 同時スレッド数(デフォルト: 30)
-v, --verbose プログレスバーと各ホストの完全16進ダンプを表示
-h, --help ヘルプを表示
| モード | 動作 |
|---|---|
デフォルト(-vなし) | 各ホストが応答するたびに結果を即時表示 — ホストごとに色付き16進数+タイムスタンプ、その後サマリー |
詳細(-v) | スキャン中にライブプログレスバー、その後各ホストの完全16進ダンプ、その後サマリー |
# 単一ホスト
sudo python3 icmp_timestamp_scan.py -t 192.168.1.1
# 複数ホスト
sudo python3 icmp_timestamp_scan.py -t 192.168.1.1,192.168.1.2,192.168.1.3
# CIDRサブネットスイープ
sudo python3 icmp_timestamp_scan.py -t 192.168.1.0/24
# ファイルから
sudo python3 icmp_timestamp_scan.py -f hosts.txt
# 詳細モード — プログレスバー+完全16進ダンプ
sudo python3 icmp_timestamp_scan.py -f hosts.txt -v
# 高速ワイドスキャン
sudo python3 icmp_timestamp_scan.py -t 10.0.0.0/16 --threads 100 --timeout 1
hosts.txt の形式# 1行に1つのIPまたはCIDRを記述。#で始まる行は無視されます。
192.168.1.1
192.168.1.2
192.168.1.3
10.0.0.1
10.0.0.2
10.0.0.0/24
-vなし) [*] Targets : 4 hosts
[*] Timeout : 2.0s | Threads: 30
[*] Started : 2026-07-14 06:37:25 UTC
[*] Probe : ICMP Type 13 (Timestamp Request)
[*] Expect : ICMP Type 14 (Timestamp Reply) from vulnerable hosts
╔══ VULNERABLE ══════════════════════════════════════════╗
║ Host : 192.168.1.1
║ ICMP Type : 14 — Timestamp Reply (sent Type 13)
║ TTL : 59
║ RTT : 1.84 ms
║ ── Timestamps (ms since midnight UTC) ──────────────
║ Originate : 0 ms → 00:00:00.000 (not set)
║ Receive : 22,974,518 ms → 06:22:54.518 UTC
║ Transmit : 22,974,518 ms → 06:22:54.518 UTC ← server time
║ ── Raw Response (hex) ──────────────────────────────
║ 45 48 00 28 14 76 00 00 3b 01 2d 93 c0 a8 01 01 c0 a8 01 64 0e 00 f9 15 ...
║ Legend: ██=IP header ██=ICMP header ██=ICMP type14 ██=timestamps
╚════════════════════════════════════════════════════════╝
[-] 192.168.1.2 no response (filtered or not vulnerable)
╔══ VULNERABLE ══════════════════════════════════════════╗
║ Host : 192.168.1.3
║ TTL : 59 | RTT : 2.11 ms
║ Transmit : 22,977,926 ms → 06:22:57.926 UTC ← server time
╚════════════════════════════════════════════════════════╝
══════════════════════════════════════════════════════════════════
SCAN SUMMARY
══════════════════════════════════════════════════════════════════
Scanner time : 2026-07-14 13:37:25 WIB (06:37:25 UTC)
Total probed : 4
Vulnerable : 2
No response : 2
Errors : 0
┌─ VULNERABLE HOSTS ────────────────────────────────────────────┐
│ Host TTL RTT Server Time (UTC) Transmit ms │
├───────────────────────────────────────────────────────────────┤
│ 192.168.1.1 59 1.8ms 06:22:54.518 UTC 22,974,518 │
│ 192.168.1.3 59 2.1ms 06:22:57.926 UTC 22,977,926 │
└───────────────────────────────────────────────────────────────┘
── Hex Evidence ─────────────────────────────────────────────
[192.168.1.1] TTL=59 RTT=1.84ms Server→ 06:22:54.518 UTC
45 48 00 28 14 76 00 00 3b 01 2d 93 c0 a8 01 01 c0 a8 01 64 0e 00 f9 15 ...
Legend: ██=IP header ██=ICMP header ██=ICMP type14 ██=timestamps
[192.168.1.3] TTL=59 RTT=2.11ms Server→ 06:22:57.926 UTC
45 48 00 28 1a c3 00 00 3b 01 27 46 c0 a8 01 03 c0 a8 01 64 0e 00 f3 7e ...
Legend: ██=IP header ██=ICMP header ██=ICMP type14 ██=timestamps
Impact : Information Disclosure — server time exposed
CWE : CWE-200 Exposure of Sensitive Information
CVSS v3 : 0.0 (Low) — network access required
Fix : Block ICMP type 13 at perimeter ACL/firewall
Cisco : access-list <ACL> deny icmp any any 13
ip access-list extended BLOCK-ICMP-TS
deny icmp any any 13
deny icmp any any 17
permit ip any any
!
interface GigabitEthernet0/0
ip access-group BLOCK-ICMP-TS in
access-list OUTSIDE_IN deny icmp any any 13
access-list OUTSIDE_IN deny icmp any any 17
access-group OUTSIDE_IN in interface outside
iptables -A INPUT -p icmp --icmp-type timestamp-request -j DROP
iptables -A OUTPUT -p icmp --icmp-type timestamp-reply -j DROP
nft add rule inet filter input icmp type timestamp-request drop
nft add rule inet filter output icmp type timestamp-reply drop
netsh advfirewall firewall add rule `
name="Block ICMP Timestamp Request" `
protocol=icmpv4:13,any action=block dir=in
このツールは、許可されたペネトレーションテスト、セキュリティ研究、教育目的のみを意図しています。 システム所有者から明示的な書面による許可を得ることなく、このツールをいかなるシステムに対しても実行することは違法であり、お住まいの地域のコンピュータ犯罪法に違反する可能性があります。 作成者およびVantage Point Securityは、このツールの不正使用に対して一切の責任を負いません。
Made with ♥ by Muhamad Bion Tadavi — Vantage Point Security (VPSI)
| フィールド | 値 |
|---|
| CVE ID | CVE-1999-0524 |
| CWE | CWE-200 — 機密情報の漏洩 |
| CVSS v3 | 0.0 (低) |
| 種別 | 情報漏洩 |
| プロトコル | ICMP Type 13 / Type 14 |
| 影響を受けるシステム | Cisco IOS、Cisco ASA、Linux、Windows(設定依存) |
| 機能 | 詳細 |
|---|
| マルチスレッドスキャン | 並列プローブ数の設定可能(デフォルト: 30スレッド) |
| 柔軟な入力 | 単一IP · カンマ区切り · CIDRレンジ · ファイル(-t / -f) |
| 色分けされた16進数 | IPヘッダー · ICMPヘッダー · タイプバイト · タイムスタンプ — それぞれ異なる色 |
| タイムスタンプデコード | 生のミリ秒を HH:MM:SS.mmm UTC に変換 |
| サマリー内の16進数証拠 | 脆弱ホストごとに色付き16進数+凡例を最終サマリーに表示 |
完全16進ダンプ(-v) | 各応答についてオフセット+16進数+ASCII列を表示 |
プログレスバー(-v) | 詳細モードでのみライブプログレスバーを表示 |
| サマリーテーブル | TTL、RTT、サーバ時刻を含む脆弱ホストの並び替え可能なテーブル |
| 依存関係ゼロ | 純粋なPython標準ライブラリ — pipインストール不要 |
| バイト | フィールド | 例 | 説明 |
|---|
| 0 | IP Version/IHL | 45 | IPv4、ヘッダー長 = 20バイト |
| 1 | DSCP/ECN | 48 | |
| 2-3 | 全長 | 0028 | 40バイト |
| 4-5 | 識別子 | 1476 | |
| 6-7 | フラグ/フラグメントオフセット | 0000 | |
| 8 | TTL | 3b | 59ホップ |
| 9 | プロトコル | 01 | ICMP |
| 10-11 | IPチェックサム | 2d93 | |
| 12-15 | 送信元IP | c0a80101 | 192.168.1.1 ← 応答ホスト |
| 16-19 | 宛先IP | c0a80164 | 192.168.1.100 ← スキャナー |
| ── ICMPヘッダーはバイト20から開始 ── | |||
| 20 | ICMPタイプ | 0e | 14 = Timestamp Reply ← 脆弱 |
| 21 | ICMPコード | 00 | |
| 22-23 | ICMPチェックサム | f915 | |
| 24-25 | 識別子 | d5bf | |
| 26-27 | シーケンス番号 | 0001 | |
| 28-31 | Originate TS | 00000000 | 0 ms(要求元フィールド、未設定) |
| 32-35 | Receive TS | 015e9036 | 22,974,518 ms = 06:22:54 UTC ← 漏洩 |
| 36-39 | Transmit TS | 015e9036 | 22,974,518 ms = 06:22:54 UTC ← 漏洩 |