![]()
去年6月,一個名叫TroyDen的賬號在Telegram開了個頻道,叫@NumberLocationTrack。沒人注意到這個細節。直到9個月后,Netskope的研究員在法蘭克福的一臺服務器上,發現了300多個GitHub倉庫在往同一個地址回傳數據——全是開發者的桌面截圖。
這是2025年開年以來最精細的一場"釣魚"。目標不是點擊鏈接的大爺大媽,是能寫代碼、會翻墻、自以為安全意識夠高的那群人。黑客把惡意軟件拆成三塊,每一塊單獨過殺毒引擎都干干凈凈,合在一起才現原形。這種設計不是聰明,是對自動化檢測系統的嘲諷。
一個"明星項目"的誕生
2025年初,GitHub上出現了一個叫AAAabiola/openclaw-docker的倉庫。名字起得很講究:OpenClaw是個正經的AI項目,Docker是開發者天天用的工具,連起來像個官方部署方案。README寫得像模像樣,Windows和Linux的安裝步驟都有,還配了個GitHub.io的配套頁面。
貢獻者名單里有個賬號,名下有個568星的倉庫。這個數字選得刁鉆——不是幾千星的大V,那種太容易被識破;也不是零星的僵尸號,那種沒人信。568星,剛好卡在"有點東西但不張揚"的區間。
剩下的全是戲。攻擊者批量注冊了一批小號,給項目點星、fork,再打上ai-agents、docker、openclaw、LLM這些標簽。GitHub的搜索算法吃這套,項目很快爬到開發者搜索結果的前列。一個"熱門開源工具"的人設,就這么搭起來了。
但真正的問題是:代碼里藏了什么?
Netskope的分析師下載了 release 包,解壓后看到三樣東西:Launch.bat、unc.exe、license.txt。批處理文件、可執行程序、許可證文本——看起來像個正常軟件的標配。實際上,unc.exe是改名后的LuaJIT運行時,license.txt是混淆過的Lua腳本,Launch.bat是唯一能把兩者串起來的鑰匙。
這個設計針對的是自動化沙箱的盲區。VirusTotal這類服務收到文件后,通常把每個組件單獨丟進虛擬機跑一圈。批處理文件? harmless。可執行程序? harmless。文本文件? harmless。三份無害報告拼在一起,結論就是"安全"。
但真正的攻擊發生在用戶雙擊Launch.bat的那一刻。批處理文件按特定順序調用unc.exe,把license.txt當參數喂進去,LuaJIT解釋器開始執行惡意邏輯。這種"分體激活"的套路,讓靜態分析工具集體失明。
五道安檢門與法蘭克福的服務器
Payload運行前要先過五道檢查:有沒有調試器、內存是不是太小、系統運行時間夠不夠長、CPU核心數夠不夠多、有沒有常見分析工具在跑。任何一項不通過,程序就靜默退出,不留痕跡。
這些檢查不是為了防普通用戶——普通用戶的機器不可能裝調試器。目標很明確:讓自動化分析環境覺得"這軟件什么都沒干",從而給出干凈報告。
過關后的第一件事是定位。受害者的IP被解析成地理位置,連同一張完整的桌面截圖,一起發到法蘭克福的C2服務器。Netskope追蹤到這臺后端用了8個IP做負載均衡,架構明顯是為大規模并發設計的。
研究員順藤摸瓜,發現同樣的惡意工具鏈出現在300多個不同的交付包里。游戲外掛、手機追蹤器、VPN破解工具、Roblox腳本——全是開發者和技術愛好者會主動搜索的東西。每個倉庫的命名都怪怪的:拉丁文古詞、冷門生物分類名、醫學術語。這種命名風格不像人類的手筆,更像是AI批量生成的結果。
![]()
換句話說,攻擊者可能用AI寫了命名腳本,用AI生成了部分代碼,再用AI輔助批量創建GitHub賬號。 一個人運營不了300個倉庫的維護、更新、 star 刷量,但AI可以。
Telegram頻道里的時間線
調查中最有意思的發現是那個Telegram頻道。@NumberLocationTrack從2025年6月就開始運營,比GitHub倉庫的出現早了至少三個月。頻道名字直白得近乎粗暴:號碼定位追蹤。
這意味著攻擊者在公開投放惡意代碼之前,已經花了大量時間測試基礎設施、打磨工具鏈、觀察目標人群的行為模式。GitHub倉庫不是起點,是規模化復制后的結果。
攻擊者的技術棧也值得玩味。LuaJIT是個小眾選擇——比Python快,比C++輕量,反編譯難度大,在惡意軟件圈子里不算主流。選這個 runtime,說明團隊里有懂編譯原理的人,而且愿意為"隱蔽性"犧牲開發效率。
更細思極恐的是話題標簽的運營。ai-agents、LLM這些詞是2024-2025年的流量密碼,攻擊者精準地蹭了上去。他們不是不懂技術,是太懂了——懂到知道開發者會搜什么、信什么、點什么。
開發者正在成為最脆弱的環節
傳統安全模型假設"用戶是弱點",所以企業拼命給員工做釣魚培訓。但這場戰役的受害者是另一群人:能讀代碼、會看commit歷史、知道怎么驗證GPG簽名的開發者。他們的自信反而成了盲區——"我懂技術,我不會中招"。
AAAabiola/openclaw-docker的偽裝級別,恰恰利用了這種心理。不是粗糙的"點擊領取比特幣",是完整的項目生態:有文檔、有貢獻者、有社區互動(雖然是刷的)、有持續更新。開發者評估開源項目的直覺經驗,在這里全部失效。
Netskope的報告沒有披露具體受害人數,但提到了"廣泛的用戶范圍"。考慮到300多個倉庫、8個后端IP、以及Telegram頻道三個月的預熱期,實際影響可能遠超目前確認的樣本。
GitHub在2024年加強了惡意倉庫的檢測,但這場 campaign 說明規則對抗已經升級。攻擊者不再上傳明顯的惡意二進制文件,而是拆分、混淆、用合法 runtime 加載惡意腳本——每一步都踩在"技術上合法"的邊界上。
一個值得注意的細節:所有受害者的桌面截圖都被傳回C2服務器。這不是必要的功能,惡意軟件完全可以直接執行后續攻擊。截圖更像是一種"質量控制"——攻擊者在觀察哪些誘餌有效、哪些被識破、目標人群的真實使用場景是什么。
這種數據驅動的迭代模式,和正規產品的增長黑客沒什么區別。
現在,那個叫TroyDen的賬號還在Telegram上活躍。GitHub上的惡意倉庫大部分已被清理,但攻擊者的基礎設施——法蘭克福的8個IP、LuaJIT的工具鏈、AI生成命名的方法論——隨時可以重新啟用。下一次,項目名字可能不再是OpenClaw,而是當下最熱門的AI框架。
你最近一次從GitHub下載工具時,有沒有檢查過貢獻者的其他倉庫?有沒有看過Launch.bat里到底寫了什么?
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.