對於剛接觸嵌入式系統或 IoT(物聯網)安全的 Junior 工程師來說,最危險的漏洞往往不是開發時不小心留下的 Bug,而是「刻意設計」進系統的後門。近期安全研究機構 VulnCheck 揭露了中國路由器廠商 Zbtlink 的多款產品在出廠韌體中就內建了後門,這是一個典型的供應鏈安全(Supply Chain Security)問題。
這篇分析將帶你深入了解這個被命名為 ENDLESSDOORS 的後門是如何運作的,以及它在技術層面上為何如此危險。
事件背景:什麼是 ENDLESSDOORS?
VulnCheck 的研究人員在分析 Zbtlink 的韌體時,發現至少 20 多款路由器型號(涵蓋過去兩年內發布的所有 21 個韌體鏡像)都包含一個預裝的後門。
這個後門被命名為 ENDLESSDOORS。它的核心邏輯非常簡單:設備在啟動後會自動執行一個隱藏程序,定期向位於中國的指令控制伺服器(Command and Control, C2)發送訊號(Beaconing),等待遠端指令。
核心技術機制:rctl 與偽裝術
核心工具:rctl ENDLESSDOORS 的實作核心是一個名為 rctl (Remote Control Linux) 的小型工具。有趣的是,這個工具早在 2015 年 1 月就上傳到了 GitHub 且之後再未更新。它實作了一個極其簡單的客戶端-伺服器(C-S)架構: 伺服器端:監聽 Port 7000,接收客戶端連接。 客戶端(路由器):連接伺服器,接收指令並執行。
隱匿手段:偽裝成核心執行緒 為了不讓管理員在執行 ps 或 top 等指令查看進程時發現異常,該後門採取了偽裝策略。它將自己偽裝成 Linux 的核心工作執行緒(Kernel Worker Thread),通常在系統中顯示為 kworker。
然而,這是一個誤導。真正的 kworker 是運行在核心空間(Kernel Space)的,而這個後門實際上是一個運行在使用者空間(Userland)的進程,但卻擁有最高權限 —— Root 權限。
通訊流程與權限劫持
這項後門最令人擔憂的地方在於其完全缺乏安全驗證機制。
運作流程 自動啟動:設備透過 /etc/init.d/skworker 腳本在開機時自動啟動後門。 發送訊號:後門每 35 秒嘗試聯繫一次 C2 伺服器(例如 rbdg4nzqadui.wikaba.com)。 簡單握手:客戶端僅發送一個 "hello" 訊息以及設備的 LAN MAC 地址給伺服器。 執行指令:伺服器回傳任何指令,設備都會直接以 Root 權限執行。
如何獲取 Root Shell 如果伺服器回傳一個特定的保留字串 rctlbash,後門會執行以下操作: 開啟第二條連接至 Port 7001。 分配一個偽終端(Pseudo-terminal)。 啟動 /bin/sh 並將其橋接至該連接。
結果就是:攻擊者直接獲得了一個即時且互動式的 Root Shell,可以完全控制該路由器。
潛在風險與影響
無需外部觸發的劫持 通常的遠端攻擊需要設備開啟特定 Port 並暴露在公網上(Internet-facing)。但 ENDLESSDOORS 是「由內向外」發起連接(Outbound Connection)。這意味著即使路由器在防火牆後方,只要它能訪問外網,攻擊者就能透過控制 DNS 解析或劫持 C2 伺服器來控制設備。
影響範圍 受影響的型號非常廣泛,包括: CPE2801, WE1026-5G-WD, WE1326, WE2007, WE2008-DSIM, WE2416, WE3326, WE5927, WE5931, WE5931AC, WE826-T3-DSIM, WG108, WG1602, WG1608-DSIM, WG209, WG2105, WG2107, WG259, WG3526, Z8102AX-2DSIM。
這些設備共同指向四個主要或次要的端點,包括 zbtctl.epplink.net 和 online-string.com 等。
廠商回應與實務對策
廠商解釋 Zbtlink 表示此功能「僅用於售後維護」和「樣機調試」,並強調其主業是 OEM/ODM 定製服務,客戶通常會使用自研軟體而非預設韌體。然而,在正式出貨的韌體中保留此類功能,在安全業界被視為極其不專業且危險的行為。
給工程師的檢查清單 如果你正在管理或測試相關設備,可以採取以下步驟進行排查:
檢查進程:查看是否有可疑的 kworker 進程(注意區分真正的核心執行緒)。 掃描檔案系統:尋找以下特定路徑的檔案: - /usr/sbin/kworker (執行檔) - /usr/lib/librctl.so (共享庫) - /etc/kworker.cfg (設定檔) - /etc/init.d/skworker (啟動腳本) 網路封鎖:在防火牆或邊界設備上封鎖上述提到的 C2 伺服器域名與 IP 地址。
工程判斷與總結
從工程角度來看,ENDLESSDOORS 是一個極其低劣的後門實作。它沒有加密、沒有認證、且使用了公開的 GitHub 舊代碼。這種設計雖然能達成「維護」目的,但卻將設備完全暴露在任何能操控網路路徑(如 DNS 劫持)的攻擊者面前。
給 Junior 工程師的啟示: 權限最小化原則:任何維護工具都不應該直接以 Root 權限運行且不經過認證。 避免硬編碼 C2:將控制端點硬編碼在韌體中是巨大的安全漏洞。 警惕供應鏈:不要假設原廠提供的韌體是安全的,對第三方設備進行基本的檔案系統審計(Audit)是必要的。