曝ZBTLink路由器出厂设置藏双后门,无需密码直接获取Root权限"

admin 2026-10-23 02:16:23 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

曝ZBTLink路由器出厂设置藏双后门,无需密码直接获取Root权限

原创

suntiger
suntiger

二进制空间安全

2026年8月31日 17:05
北京

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

将二进制空间安全设为\"星标⭐️\"

第一时间收到文章更新

技术背景

2026年8月27日,漏洞情报机构VulnCheck公开了深圳智博通电子(ZBT)多款路由器固件中的两套出厂后门,分别命名为SPEAKINGSTONE与DARKLANTERN,均可在无身份验证的情况下让远程攻击者以Root权限执行命令。

VulnCheck在2026年8月18日至21日对公网扫描,发现203台设备上的DARKLANTERN后门直接暴露在UDP 9992端口,分布22个国家,涉及16种自报型号。与此同时,研究人员注册了SPEAKINGSTONE备用域名www.findmyipaddr.com并搭建蜜罐服务器,截至8月21日收到392台设备的定期上报,其中390台位于中国,304个WiFi名称以CMCC开头,363台为同一型号L3\_V2\_8、固件3.0.0.4.528,最长一台已连续上报近两年。

漏洞原理

两套后门由同一个名为inetdetect的网络连通性看门狗进程拉起,均用Nim语言编写,使用UDP协议,但工作方式相反。SPEAKINGSTONE以系统服务yunmgrd运行,主动向外联UDP 10000端口发送设备指纹,包括型号、固件版本、MAC地址、WiFi名称、局域网IP、运行时长,部分型号还带GPS坐标。默认指挥服务器域名ac-link.com,解析到阿里云深圳节点47.107.224.89,与ENDLESSDOORS使用的地址相同。SPEAKINGSTONE还支持8类远程指令:执行任意命令、读取PPPoE宽带账号密码、写入DNS劫持列表、开关反向SSH隧道、更换备用C2地址等。

DARKLANTERN以infosrvd服务运行,在WAN侧监听UDP 9992,出厂防火墙规则显式允许来自互联网的入站访问。协议内部称revProto,分信息探测包和命令包两类。探测包固定19字节,设备收到后向来源的UDP 8897端口返回明文设备信息。命令包携带Shell字符串,经system(\"/etc/exec/cmd \" + payload)直接执行;校验令牌为md5(\"mqonu.com\" + payload)末4字节的十六进制,密钥写死在固件里;MAC地址校验看似严格,但全零MAC会被当作合法而放行。

攻击细节

DARKLANTERN的攻击链短而粗暴,适合在互联网上批量扫描。攻击者向目标UDP 9992发送19字节探测包,无需握手即可收到型号、MAC、SSID、公网IP。构造命令包时,用硬编码盐值mqonu.com计算MD5校验,MAC字段填六个零字节绕过过滤,Payload里用分号截断固定前缀即可注入任意Shell。VulnCheck扫描仪在4天内确认203个公网实例,型号从WE826-T2到WG3526等16种,说明这不是单一批次的失误,而是跨产品线固件级植入。

SPEAKINGSTONE的攻击面更偏向长期潜伏与数据收集。设备每间隔一段时间向C2发送注册信标(msgType 0x1001),攻击者若处于网络路径上(同一运营商、被劫持的DNS、伪造的C2),即可下发0x2507命令执行Shell、0x2502读取宽带凭证、0x230b写入DNS劫持。出站信标仅做单字节XOR混淆,入站命令完全明文,设备无法确认服务器真伪。备用域名findmyipaddr.com在固件里被拆成字符串片段隐藏,域名过期未续费时,任何注册者都能接管大量未配置主C2的设备,VulnCheck实测392台上报即证明这一点。

修复方案

先看机身或管理界面里的MAC地址是否以78:A3:51开头。再查品牌是否命中WiFlyer、Zbtlink、Deep Orange、KuWFi、Cioswi、CroSkylink等已知贴牌。有公网IP的设备,可在隔离环境用VulnCheck公开的Python脚本对UDP 9992发探测包,有符合格式的回应则高度可疑。企业网络侧可监控出站UDP 10000和DNS查询ac-link.com、findmyipaddr.com。

以下代码来自VulnCheck博客,可在已隔离的测试机上对单个IP做无害探测,仅发送信息查询包,不发送命令包:

#!/usr/bin/env python3\"\"\"Minimal DARKLANTERN scanner — VulnCheck PoC\"\"\"
import socketimport sys
# info probe: type 0x16, wildcard Allmac (all zeros), 1-byte dummy payload \"x\"PROBE = bytes.fromhex(\"0c161f00000000000000000000000000010078\")
def scan(host, port=9992, timeout=6):    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)    sock.settimeout(timeout)    # infosrvd replies to :8897, not our source port — bind explicitly    sock.bind((\"\", 8897))    try:        sock.sendto(PROBE, (host, port))        data, _ = sock.recvfrom(1024)    except socket.timeout:        return None    finally:        sock.close()
    if len(data) < 4 or data[:3] != b\"\\x0c\\x16\\x1f\":        return None
    fields = data[3:].decode(\"ascii\", errors=\"replace\").split(\";\")    if len(fields) < 3:        return None
    return {\"model\": fields[0], \"firmware\": fields[1], \"mac\": fields[2]}
if __name__ == \"__main__\":    if len(sys.argv) != 2:        print(f\"usage: {sys.argv[0]} <host>\", file=sys.stderr)        sys.exit(1)
    result = scan(sys.argv[1])    if result:        print(f\"[VULN] {sys.argv[1]} — model={result['model']} fw={result['firmware']} mac={result['mac']}\")    else:        print(f\"[SAFE] {sys.argv[1]} — no infosrvd response\")

运行环境:Python 3.6及以上,无需额外依赖。用法示例:python3 darklantern_scan.py 203.0.113.10。仅在获得授权的目标上使用;探测包本身不执行命令,但确认响应意味着目标存在未授权远程管理接口,应视为已失陷边缘设备处理。

企业采购场景应把硬件来源写入验收清单,要求供应商提供固件SBOM或至少制造商与编译版本,对边缘4G/LTE设备做入网前UDP端口扫描与MAC前缀比对。家庭用户若无法确认来源,最省心的做法是直接换主流品牌消费级路由,避免把来源不明的白盒设备放在财务、监控、NAS同一局域网。

(全文完)


    曝ZBTLink路由器出厂设置藏双后门,无需密码直接获取Root权限" 网络安全文章

    曝ZBTLink路由器出厂设置藏双后门,无需密码直接获取Root权限"

    深圳智博通电子多款路由器固件被曝存在两套出厂后门speakingstone与darklantern,均可在无认证情况下远程获取root权限。darklantern监听UDP9992端口,公网扫描发现203台暴露设备;speakingstone主动外联C2并支持执行命令、窃取宽带凭证等。建议用户检查MAC前缀、更换设备,企业应监控相关流量并验证固件来源。
    暗网动态更新~某检查长办公室数据泄露!" 网络安全文章

    暗网动态更新~某检查长办公室数据泄露!"

    本文为暗网动态汇总:墨西哥科利马州检察长办公室12847份公职人员财产申报PDF泄露,含身份与资产隐私;保加利亚保险公司4.47万名老年客户约220万条信息外泄;乌克兰放射源采购合同文件流出。另报道曼彻斯特机场集团旅客数据被窃及PaperCutNG/MF漏洞遭零日利用,建议相关机构及时修补漏洞并强化数据防护。
    评论:0   参与:  0