精华简报:MikroTik RouterOS静默补丁逆向分析报告
核心发现
-
静默更新的本质
MikroTik在同一天向三个主要分支(7.23.4 LTS/7.24.2 Stable/6.49.21 v6)推送安全补丁,但仅模糊声明”重要安全更新”,拒绝透露细节。逆向工程揭示其实际修复了两个高危漏洞链:- 低指数RSA签名伪造 → 触发
mtget缓冲区溢出 - SSH用户名”-2”漏洞 → 绕过权限限制实现完整命令执行(需认证,但可自定策略掩码)
- 低指数RSA签名伪造 → 触发
-
漏洞利用链
graph LR A[SSH用户名为-2] --> B[触发遗留文件描述符登录] B --> C[只读会话提权] C --> D[注入策略掩码] D --> E[完整RouterOS控制] -
隐蔽的变更线索
通过对比跨分支更新日志,唯一共性条目为:
*) ssh - 重构SSH内部流程并提升系统稳定性
该描述实为掩盖关键安全修复的”烟雾弹”。
技术分析亮点
-
逆向方法论
- 符号级差异分析:跳过字节比对噪声,聚焦动态符号表变更(如
libumsg.so的登录处理逻辑修改) - NPK包解构:从SquashFS文件系统中提取关键组件(
sshd二进制与libucrypto.so加密库)
- 符号级差异分析:跳过字节比对噪声,聚焦动态符号表变更(如
-
漏洞根因
- SSH设计缺陷:服务端与客户端共用同一二进制文件,导致边界检查逻辑共享漏洞
- 密码学误用:RSA签名验证未正确处理低指数情况(e=3)
商业与安全启示
-
供应链风险
MikroTik设备广泛用于ISP和企业网络,静默更新策略导致:- 企业无法评估漏洞实际风险等级
- 漏洞细节被逆向后,未打补丁设备面临定向攻击
-
漏洞管理建议
flowchart TD Z[检测MikroTik设备] --> A{版本<7.23.4?} A -->|是| B[立即升级] A -->|否| C[检查SSH登录审计日志] C --> D[排查异常"-2"用户尝试] -
厂商响应评分
指标 评分(5分制) 评价 漏洞披露透明度 1 刻意模糊关键信息 补丁覆盖速度 5 多分支同步修复 缓解措施有效性 3 依赖用户主动升级
行动建议
-
技术团队
- 使用
binwalk提取NPK包验证文件签名(魔数1E F1 D0 BA) - 监控
/nova/bin/sshd进程异常内存占用
- 使用
-
管理层
- 要求MikroTik提供漏洞CVE编号(当前无公开编号)
- 评估是否需临时禁用SSH外网访问(权衡运维便利性)
深度阅读:完整漏洞利用链PoC参见原博客的”从静态分析到代码执行”章节。