前言
大部分网络安全文章聊路由器漏洞,都在讲外部扫描端口、Web界面漏洞、UPnP滥用。我们习惯假设设备本身是干净的,威胁全部来自外网入侵。ENDLESSDOORS事件直接推翻这个预设。
这不是黑客攻破设备植入木马,是固件出厂就打包好的root级植入程序,设备开机自动运行,主动向外建立C2连接,不需要外网向设备发起访问,NAT、普通状态防火墙全部失效。全球约十万台设备受影响,大量白牌贴牌流通,普通用户根本分不清硬件底层来自哪家厂商。
厂商对外口径,该组件是售后远程维护工具。安全研究人员把它定义为高危出厂后门。争论没有意义,我们直接看代码行为:无加密明文通信、无任何身份校验、拿到指令直接以root权限调用popen执行系统命令,还能生成交互式PTY shell。
本文不做空话科普。我会完整拆解后门运行链路,放出YARA、Suricata检测规则,编写shell检测脚本,绘制完整的攻击流程、架构Mermaid图,区分家庭用户、中小企业、安全运维三种处置路径。同时用第一性原理+对抗式审查视角,讨论物联网供应链安全的底层问题。
提示:所有脚本、IOC、规则仅用于企业内部安全自查,禁止用于未授权环境测试。
1 漏洞基础信息梳理
- 漏洞编号:CVE‑2026‑66747
- 漏洞名称:ENDLESSDOORS,rctl/kworker Phone‑Home Root Implant
- CVSSv3评分:9.8 严重
- EPSS:0.58%,公开利用暂未大规模爆发,但攻击门槛极低
- 受影响主体:Zbtlink(智博通),自有品牌+大量白牌贴牌,至少20款路由器CPE设备,硬件平台覆盖MIPS、AArch64,基于OpenWrt二次开发固件。
- 核心二进制:
/usr/sbin/kworker(伪装内核线程),/usr/lib/librctl.so,启动脚本/etc/init.d/skworker,配置文件/etc/kworker.cfg。 - 底层来源:基于2015年GitHub开源项目ycsunjane/rctl修改,项目早已停止维护,直接打包进固件包作为系统组件。
受影响型号不完全列表:
CPE2801、WE1026‑5G‑WD、WE1326、WE2007、WE2008‑DSIM、WE2416、WE3326、WE5927、WE5931、WE5931AC、WE826‑T3‑DSIM、Z8102AX‑2DSIM以及WG系列,白牌换壳设备硬件固件一致即受影响。
关键点:恢复出厂设置不会清除后门。后门属于固件镜像内置组件,重置只会复原配置,不会删除系统二进制文件。修改路由器管理密码,对该后门完全无效。
2 第一性原理拆解ENDLESSDOORS工作机制
绝大多数漏洞,攻击起点是外部主动访问设备。端口扫描、HTTP请求、数据包投递,防火墙/NAT可以拦截入站流量。
ENDLESSDOORS完全反过来,设备主动出站。从底层逻辑上,传统边界防护直接失效。
2.1 完整运行时序
- 路由器上电,OpenWrt系统启动,init.d脚本
skworker自动执行。 - 程序加载
librctl.so,进程改名伪装成kworker,和Linux原生内核kworker线程混在一起,以root权限常驻内存。普通ps查看进程很难分辨真假内核线程。 - 读取硬编码配置,拿到域名与IP列表,每约35秒发起TCP连接重试。目标端口7000命令通道;特殊指令触发7001交互式shell通道。
- 明文TCP发送hello报文,携带本机MAC地址作为设备标识,没有TLS,没有签名,没有token,没有密码校验。
- C2服务器返回字符串,程序直接送入
popen()执行,UID=0 root权限。 - 如果收到特殊字符串
rctlbash,设备主动建立第二条TCP连接,分配PTY,吐出完整交互式root shell给服务端,攻击者拿到完整设备控制权。
攻击者控制链路的方式不止攻陷原厂商服务器。DNS劫持、中间人劫持网络链路,就可以接管路由器回连流量。设备不会校验对端身份,任何返回数据包都会被当作合法指令执行。
下面是攻击流程Mermaid流程图:
A[路由器上电启动] --> B[/etc/init.d/skworker启动/]
B --> C[加载librctl.so 进程伪装kworker root运行]
C --> D{每35s循环}
D --> E[明文TCP出站 端口7000 连接硬编码C2]
E --> F[发送hello+本机MAC]
F --> G{收到服务器返回数据}
G -->|普通命令字符串| H[popen root执行系统命令]
G -->|“rctlbash指令”| I[新建TCP 7001 生成PTY root交互式shell]
H --> D
I --> J[攻击者完全接管网关,嗅探内网、横向移动、植入恶意配置]
J --> D
2.2 技术架构Mermaid
subgraph LAN内网
R[Zbtlink受影响路由器
kworker(root)后台进程]
PC1[办公主机/家庭终端]
IOT[摄像头、IoT设备]
PC1 — R
IOT — R
end
subgraph Internet互联网
C2[硬编码C2服务端
zbtctl.epplink.net等]
ATT[攻击者可控服务器
DNS劫持/中间人劫持流量]
end
R --出站TCP 7000/7001 明文无校验–> C2
R -.流量劫持路径.-> ATT
ATT -->|拿到root shell| R
R -->|网关层面嗅探、篡改内网流量| PC1
R -->|横向渗透| IOT
2.3 对抗式审查视角:为什么这个设计属于高危风险
站在厂商维护工具的角度,他们的诉求很朴素:设备部署在全国各地,售后需要远程排错,设备大多在NAT后面,没有公网IP,只能设备主动回连。
正常安全开发,做一套远程维护工具,必须做到:
- 通信链路加密TLS;
- 设备校验服务端证书,防止中间人;
- 双向身份认证,设备校验服务器,服务器校验设备;
- 最小权限,维护进程不默认root;
- 量产版本可配置开关,用户可以彻底关闭该功能;
- 日志完整留存所有执行命令。
rctl这套实现全部跳过以上约束。明文传输,零认证,直接root,无法通过WebUI关闭,固化固件。哪怕厂商本意只做售后,网络链路任意中间人都能拿到root权限。
供应链风险在这里暴露:开源小工具随便拿来修改打包,没有安全审计,直接批量刷进十万级硬件,流向全球白牌市场。
3 IOC、YARA、Suricata规则、本地检测脚本
注意:域名IP做脱敏处理,实际部署时把
[.]替换为.。
3.1 IOC清单
硬编码C2域名:zbtctl.epplink[.]netrbdg4nzqadui[.]wikaba[.]com
硬编码IP(公开披露):47[.]107[.]224[.]89
可疑文件路径:
/etc/init.d/skworker /etc/kworker.cfg /usr/sbin/kworker /usr/lib/librctl.so样本SHA256哈希:
ab8467e1495479693f4de8e838a5aeb61a65f3682d68f5b2d7c856cbfc91a247 31ee58a134b766f6ed4424a22cc2cb08cfabbc9a5f35e0ae11a250c81ccc7f5e3.2 YARA规则,用于固件镜像二进制扫描
rule Zbtlink_ENDLESSDOORS_implant { meta: description = "Detect ENDLESSDOORS rctl implant CVE‑2026‑66747" cve = "CVE‑2026‑66747" reference = "VulnCheck" strings: $cfgpath = "/etc/kworker.cfg" fullword $str_bash = "rctlbash" fullword $exec_ok = "exec success: %s" $exec_fail = "exec fail: %s" $portnote = "bash listen port" $init_script = "/etc/init.d/skworker" condition: 3 of them }3.3 Suricata IDS检测规则,识别网络流量
alert tcp any any -> any [7000,7001] (msg:"ENDLESSDOORS CVE‑2026‑66747 implant traffic detected"; content:"hello"; content:"rctlbash"; sid:1010001; rev:1;) alert dns $HOME_NET any -> any any (msg:"ENDLESSDOORS implant DNS query"; dns.query:"zbtctl.epplink.net"; sid:1010002; rev:1;) alert dns $HOME_NET any -> any any (msg:"ENDLESSDOORS implant DNS query wikaba domain"; dns.query:"rbdg4nzqadui.wikaba.com"; sid:1010003; rev:1;)3.4 本地shell脚本:网关内网侧自查脚本
适用场景:企业内网,在Linux运维主机执行,扫描内网是否存在设备访问风险域名。仅做DNS探测,不发包攻击设备。
#!/bin/bash# ENDLESSDOORS简易检测脚本 CVE‑2026‑66747# 仅用于企业内部自查,禁止未授权使用DOMAINS=("zbtctl.epplink.net""rbdg4nzqadui.wikaba.com")echo"==== ENDLESSDOORS CVE‑2026‑66747 域名探测 ===="fordin"${DOMAINS[@]}";doecho"check domain:$d"nslookup"$d"2>/dev/nulldoneecho""echo"提示:在防火墙/SIEM中监控内网设备向外访问7000、7001端口,匹配上面域名,出现告警代表内网存在风险设备。"echo"该脚本无法确认路由器固件内部二进制,只能发现网络层回连行为。"保存为check_endlessdoors.sh,执行权限chmod +x check_endlessdoors.sh && ./check_endlessdoors.sh。
3.5 固件本地检查(拿到路由器shell情况下)
如果我们可以登录路由器shell,直接执行下面命令判断是否植入后门:
# 检查启动脚本ls-l/etc/init.d/skworker# 检查关键库文件ls-l/usr/lib/librctl.so# 查找伪装kworker进程ps|grepkworker注意:系统原生自带kworker内核线程,要区分:原生内核线程
ps输出会带[]方括号;后门进程没有方括号,是用户态root进程。
4 分层处置方案:家庭用户、中小企业、安全运维
4.1 普通家庭用户
- 确认设备型号,确认是不是Zbtlink或者对应白牌贴牌硬件。市面上很多4G/5G CPE工业路由器、随身网关使用这套固件。
- 最优方案:直接更换硬件。当前厂商没有发布干净修复固件,存量设备无法通过简单操作抹除后门逻辑。出厂重置、改密码完全无效。
- 如果暂时不能更换:在上游主路由或者防火墙层面做域名、IP黑名单拦截,阻断向外访问C2地址。
- 不要把该设备作为核心网关,不要在这个网关后面放置存储隐私数据主机。
只拦截域名有局限:固件内硬编码IP,DNS拦截挡不住IP直连访问,域名黑名单只能作为缓解,不是根治。
4.2 中小企业办公网络
很多小企业采购廉价4G工业CPE做备用线路,很容易踩坑。
- 资产盘点,梳理所有网关、4G/5G CPE、工业路由器,区分OEM白牌设备。很多采购单据只写商品名,不会标注底层硬件厂商Zbtlink。
- 防火墙配置:域名黑名单 + IP黑名单,阻断全部IOC,开启IDS规则,对7000、7001向外TCP连接告警。
- 内网分段,把廉价物联网通信设备放到独立VLAN,和业务服务器、办公终端隔离。就算网关被拿root shell,不能横向访问业务资产。
- 开启NetFlow/流量日志,长期留存,定期检索向外访问7000/7001端口会话。
- 持续跟踪厂商公告,如果后续放出清理后门的固件版本,评估升级;无补丁,分批淘汰替换。
4.3 安全运维、红蓝对抗团队
- 把这类phone‑home外联后门加入IoT对抗审查检查清单。常规渗透测试习惯扫描入站端口,很容易漏掉设备主动外联C2这类风险。
- 固件安全审计流程增加:搜索init.d启动脚本、搜索伪装内核线程进程名、搜索明文硬编码C2域名IP。
- 供应链安全评估:采购物联网网络设备,不能只看功能参数,需要确认固件安全能力:固件签名、可关闭调试组件、量产版本移除调试工具。
- 红队演练新增模拟场景:内网网关被预置外联后门,从内网向外建立C2通道,绕过边界防火墙。
5 第一性原理思考:外联型出厂后门的防御困境
传统网络安全模型建立在一个前提:边界以内全部可信,威胁全部来自外网。防火墙挡住外网入站流量,内网就安全。ENDLESSDOORS这类phone‑home后门直接击穿这套假设。
风险根源拆解为三层:
- 设备行为方向反转。风险流量从入站变成出站。设备自己跑出去找攻击者。NAT、状态防火墙默认允许内网向外发起连接,不会阻拦。
- 信任锚点完全失效。漏洞不是外部入侵,是硬件出厂就带。你买的网关,本身就是潜在攻击者的跳板。密码修改、系统重置这类常规加固手段全部失效。
- 白牌OEM供应链黑盒。品牌商标和底层固件厂商可以完全割裂。采购人员看到A品牌,底层固件来自B厂商,安全缺陷跟着固件到处流转,用户很难识别。
很多人会问:IDS、防火墙全部拦截IOC域名IP,是不是就安全?做对抗式审查推演,攻击者可以修改固件C2地址,换一批IP域名,黑名单策略直接失效。黑名单属于事后补救,不能解决固件层面的根源问题。
真正根源修复只能二选一:固件层面彻底移除植入代码;或者直接更换硬件。
物联网设备普遍还有现实痛点:大量设备生命周期内没有固件更新渠道,厂商不会持续维护,漏洞爆出之后,设备直接永久带风险运行。
6 延伸:同类外联型后门的攻防启示
历史上大量IoT后门以监听端口形式存在,攻击者需要访问设备IP。ENDLESSDOORS代表另一类威胁:设备主动回连C2。未来更多供应链风险会走向这个形态。
红队视角,这种技术本身也被合法运维工具使用。很多企业内网运维平台,受控客户端主动向外连接服务端,不需要监听端口,穿透NAT。技术本身没有善恶,风险来自权限、认证、加密、开关控制。
我们做安全审查,不能只看“这是不是厂商维护工具”,要看客观行为:
- 是否默认开启?
- 是否允许普通用户关闭?
- 是否加密通信,双向校验身份?
- 运行权限是否最小化?
- 是否完整审计所有执行动作?
只要答案是否定,无论厂商叫它调试工具还是售后组件,都属于高风险攻击面。
7 总结
ENDLESSDOORS(CVE‑2026‑66747)事件给行业敲警钟。选购网关、4G CPE,不能只看硬件参数价格。廉价白牌OEM设备,固件供应链风险不可忽视。
普通加固手段,改密码、恢复出厂,对出厂预置外联后门不起作用。网络层IOC拦截只能缓解风险,不能根除。存量设备没有干净固件版本,更换硬件是最稳妥方案。
网络安全防护不能只盯着外网入站攻击,内网设备主动向外建立恶意连接,是现在很容易被忽略的攻击路径。
互动问题
- 你在做IoT设备安全评估的时候,会把设备主动外联C2检查纳入常规测试项吗?实际工作中遇到过哪些类似出厂预置风险?
- 如果企业采购大量白牌物联网网关,没有固件源码,你会设计哪些可落地的检查手段来规避这类供应链后门?