精华简报:MikroTik RouterOS静默补丁逆向分析报告

核心发现

  1. 静默更新的本质
    MikroTik在同一天向三个主要分支(7.23.4 LTS/7.24.2 Stable/6.49.21 v6)推送安全补丁,但仅模糊声明”重要安全更新”,拒绝透露细节。逆向工程揭示其实际修复了两个高危漏洞链:

    • 低指数RSA签名伪造 → 触发mtget缓冲区溢出
    • SSH用户名”-2”漏洞 → 绕过权限限制实现完整命令执行(需认证,但可自定策略掩码)
  2. 漏洞利用链

    graph LR
    A[SSH用户名为-2] --> B[触发遗留文件描述符登录] 
    B --> C[只读会话提权] 
    C --> D[注入策略掩码] 
    D --> E[完整RouterOS控制]
    
  3. 隐蔽的变更线索
    通过对比跨分支更新日志,唯一共性条目为:
    *) ssh - 重构SSH内部流程并提升系统稳定性
    该描述实为掩盖关键安全修复的”烟雾弹”。


技术分析亮点

  1. 逆向方法论

    • 符号级差异分析:跳过字节比对噪声,聚焦动态符号表变更(如libumsg.so的登录处理逻辑修改)
    • NPK包解构:从SquashFS文件系统中提取关键组件(sshd二进制与libucrypto.so加密库)
  2. 漏洞根因

    • SSH设计缺陷:服务端与客户端共用同一二进制文件,导致边界检查逻辑共享漏洞
    • 密码学误用:RSA签名验证未正确处理低指数情况(e=3)

商业与安全启示

  1. 供应链风险
    MikroTik设备广泛用于ISP和企业网络,静默更新策略导致:

    • 企业无法评估漏洞实际风险等级
    • 漏洞细节被逆向后,未打补丁设备面临定向攻击
  2. 漏洞管理建议

    flowchart TD
    Z[检测MikroTik设备] --> A{版本<7.23.4?}
    A -->|是| B[立即升级]
    A -->|否| C[检查SSH登录审计日志]
    C --> D[排查异常"-2"用户尝试]
    
  3. 厂商响应评分

    指标评分(5分制)评价
    漏洞披露透明度1刻意模糊关键信息
    补丁覆盖速度5多分支同步修复
    缓解措施有效性3依赖用户主动升级

行动建议

  1. 技术团队

    • 使用binwalk提取NPK包验证文件签名(魔数1E F1 D0 BA)
    • 监控/nova/bin/sshd进程异常内存占用
  2. 管理层

    • 要求MikroTik提供漏洞CVE编号(当前无公开编号)
    • 评估是否需临时禁用SSH外网访问(权衡运维便利性)

深度阅读:完整漏洞利用链PoC参见原博客的”从静态分析到代码执行”章节。

🔗 知识库双向关联