╔══════════════════════════════════════════════════════════════════╗
║ ██╗ ██████╗███╗ ███╗██████╗ ████████╗███████╗ ║
║ ██║██╔════╝████╗ ████║██╔══██╗ ██╔══╝██╔════╝ ║
║ ██║██║ ██╔████╔██║██████╔╝ ██║ ███████╗ ║
║ ██║██║ ██║╚██╔╝██║██╔═══╝ ██║ ╚════██║ ║
║ ██║╚██████╗██║ ╚═╝ ██║██║ ██║ ███████║ ║
║ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚══════╝ ║
╠══════════════════════════════════════════════════════════════════╣
║ CVE-1999-0524 · ICMP Timestamp Request/Reply Scanner ║
║ Author : Muhamad Bion Tadavi — VPSI ║
║ Org : Vantage Point Security — Authorized Use Only ║
╚══════════════════════════════════════════════════════════════════╝
快速、多线程的 ICMP 时间戳扫描器,支持彩色十六进制输出和详细的时间戳分析。
检测易受 CVE-1999-0524(ICMP 时间戳信息泄露)攻击的主机,通过发送 ICMP 类型 13(时间戳请求) 数据包。回复 ICMP 类型 14(时间戳回复) 的主机被标记为 易受攻击——它们泄露了内部系统时钟,有助于设备指纹识别和基于时间的攻击链。
使用零外部依赖构建——纯 Python 标准库。
攻击者 目标
│ │
│──── ICMP 类型 13(时间戳请求)────────▶│
│ │ [主机处理请求]
│◀─── ICMP 类型 14(时间戳回复)─────────│
│ │
回复包含三个 32 位时间戳字段(自午夜 UTC 以来的毫秒数):
├── 发起时间戳 (由请求者设置——通常为 0)
├── 接收时间戳 ◀── 此处泄露服务器时钟
└── 发送时间戳 ◀── 此处泄露服务器时钟
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 [选项]
选项:
-t, --target IP、逗号分隔的 IP 或 CIDR (终端输入)
-f, --file 每行一个 IP/CIDR 的文件路径
--timeout SECS 每个主机等待的秒数 (默认:2.0)
--threads N 并发线程数 (默认:30)
-v, --verbose 显示进度条 + 每个主机的完整十六进制转储
-h, --help 显示帮助
| 模式 | 行为 |
|---|---|
默认(无 -v) | 每个主机响应时立即打印结果——每个主机的彩色十六进制 + 时间戳,然后摘要 |
详细(-v) | 扫描期间实时进度条,然后每个主机的完整十六进制转储,然后摘要 |
# 单个主机
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
# 详细模式——进度条 + 完整十六进制转储
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 格式# 每行一个 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) [*] 目标 : 4 个主机
[*] 超时 : 2.0s | 线程: 30
[*] 开始时间: 2026-07-14 06:37:25 UTC
[*] 探测 : ICMP 类型 13(时间戳请求)
[*] 预期 : 来自易受攻击主机的 ICMP 类型 14(时间戳回复)
╔══ 易受攻击 ══════════════════════════════════════════╗
║ 主机 : 192.168.1.1
║ ICMP 类型 : 14 — 时间戳回复(发送类型 13)
║ TTL : 59
║ RTT : 1.84 ms
║ ── 时间戳(自午夜 UTC 以来的毫秒数)──────────────
║ 发起时间戳: 0 ms → 00:00:00.000(未设置)
║ 接收时间戳: 22,974,518 ms → 06:22:54.518 UTC
║ 发送时间戳: 22,974,518 ms → 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 ...
║ 图例: ██=IP 头 ██=ICMP 头 ██=ICMP 类型 14 ██=时间戳
╚════════════════════════════════════════════════════════╝
[-] 192.168.1.2 无响应(被过滤或不脆弱)
╔══ 易受攻击 ══════════════════════════════════════════╗
║ 主机 : 192.168.1.3
║ TTL : 59 | RTT : 2.11 ms
║ 发送时间戳: 22,977,926 ms → 06:22:57.926 UTC ← 服务器时间
╚════════════════════════════════════════════════════════╝
══════════════════════════════════════════════════════════════════
扫描摘要
══════════════════════════════════════════════════════════════════
扫描仪时间 : 2026-07-14 13:37:25 WIB (06:37:25 UTC)
总探测数 : 4
易受攻击 : 2
无响应 : 2
错误数 : 0
┌─ 易受攻击主机 ────────────────────────────────────────────┐
│ 主机 TTL RTT 服务器时间 (UTC) 发送时间戳 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 │
└───────────────────────────────────────────────────────────────┘
── 十六进制证据 ─────────────────────────────────────────────
[192.168.1.1] TTL=59 RTT=1.84ms 服务器→ 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 ...
图例: ██=IP 头 ██=ICMP 头 ██=ICMP 类型 14 ██=时间戳
[192.168.1.3] TTL=59 RTT=2.11ms 服务器→ 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 ...
图例: ██=IP 头 ██=ICMP 头 ██=ICMP 类型 14 ██=时间戳
影响 : 信息泄露 — 服务器时间暴露
CWE : CWE-200 敏感信息暴露
CVSS v3 : 0.0(低)— 需要网络访问
修复 : 在边界 ACL/防火墙中阻止 ICMP 类型 13
Cisco : access-list <ACL> deny icmp any any 13
字节 字段 示例 描述
───── ───────────────── ─────────── ──────────────────────────────────────
0 IP 版本/首部长度 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 = 时间戳回复 ← 易受攻击
21 ICMP 代码 00
22-23 ICMP 校验和 f915
24-25 标识符 d5bf
26-27 序列号 0001
28-31 发起时间戳 00000000 0 ms(请求者字段,未填充)
32-35 接收时间戳 015e9036 22,974,518 ms = 06:22:54 UTC ← 泄露
36-39 发送时间戳 015e9036 22,974,518 ms = 06:22:54 UTC ← 泄露
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 不对任何滥用本工具的行为承担责任。
由 Muhamad Bion Tadavi — Vantage Point Security (VPSI) 用 ♥ 制作
| 字段 | 值 |
|---|
| CVE ID | CVE-1999-0524 |
| CWE | CWE-200 — 敏感信息暴露 |
| CVSS v3 | 0.0(低) |
| 类型 | 信息泄露 |
| 协议 | ICMP 类型 13 / 类型 14 |
| 受影响 | Cisco IOS、Cisco ASA、Linux、Windows(取决于配置) |
| 特性 | 详情 |
|---|
| 多线程扫描 | 可配置的并行探测(默认:30 线程) |
| 灵活的输入 | 单一 IP · 逗号分隔 · CIDR 范围 · 文件(-t / -f) |
| 彩色十六进制 | IP 头 · ICMP 头 · 类型字节 · 时间戳——每种颜色不同 |
| 时间戳解码 | 原始毫秒解码为 HH:MM:SS.mmm UTC |
| 摘要中的十六进制证据 | 每个易受攻击主机的摘要中打印彩色十六进制 + 图例 |
完整十六进制转储(-v) | 每个响应的偏移量 + 十六进制 + ASCII 列 |
进度条(-v) | 仅详细模式下显示实时进度条 |
| 摘要表 | 排序的易受攻击主机表,包含 TTL、RTT 和服务器时间 |
| 零依赖 | 纯 Python 标准库——无需 pip 安装 |