![]()
2026年初,瑞士InfoGuard Labs的安全團隊在一臺被勒索軟件攻陷的服務(wù)器上,發(fā)現(xiàn)了一個連日志都查不到的持久化后門。它用Windows自帶的Python解釋器當(dāng)啟動器,把惡意代碼塞進一個名為sitecustomize.py的啟動文件里,每次開機自動運行,命令行卻干干凈凈。
這個叫VIPERTUNNEL的后門,核心 payload 被包在三層加密里,最外層是個偽裝成DLL的Python腳本——安全工具掃到它,只會當(dāng)成普通庫文件跳過。
InfoGuard Labs研究員Evgen Blohm帶隊復(fù)盤時,最初只注意到一個異常:計劃任務(wù)里有個叫523135538的條目,每天靜默調(diào)用C:\ProgramData\cp49s\pythonw.exe,不帶任何參數(shù)。正常Windows環(huán)境不會這么用Python,但命令行沒留痕跡,常規(guī)審計根本發(fā)現(xiàn)不了問題。
追查下去才摸到門道。攻擊者篡改的sitecustomize.py是Python的自動加載模塊,解釋器每次啟動必執(zhí)行。它先用ctypes調(diào)用Py_GetArgcArgv確認(rèn)無命令行輸入——排除人工調(diào)試場景——再用runpy模塊加載同目錄下的b5y5yogiiy3c.dll。
這個文件擴展名是幌子。內(nèi)容其實是Python腳本,經(jīng)過Base85編碼、AES和ChaCha20雙層加密,外加控制流扁平化處理。三層殼逐層在內(nèi)存中解密、執(zhí)行,最終釋放的SOCKS5代理后門全程不落盤,直連443端口混在HTTPS流量里。
假DLL真腳本:擴展名欺騙如何騙過掃描工具
把Python腳本重命名為DLL不是技術(shù)突破,是對安全工具分類邏輯的精準(zhǔn)打擊。大多數(shù)EDR和殺毒引擎依賴文件簽名和擴展名做初篩,.dll后綴觸發(fā)的是庫文件分析路徑,而非腳本引擎。VIPERTUNNEL利用這個盲區(qū),讓自動化分析直接放行。
更隱蔽的是加載方式。runpy是Python標(biāo)準(zhǔn)庫模塊,專門用于以編程方式運行Python代碼。用官方模塊加載惡意腳本,行為特征和正常開發(fā)工具重疊,行為檢測很難畫線。
三層加密的設(shè)計明顯針對人工逆向。Base85把二進制數(shù)據(jù)轉(zhuǎn)成ASCII可打印字符,躲過基礎(chǔ)字符串掃描;AES和ChaCha20雙算法加密,即使分析師拿到密鑰材料也要解兩輪;控制流扁平化把原本線性的執(zhí)行邏輯打散成狀態(tài)機,反編譯出來是一堆跳轉(zhuǎn)表和循環(huán),可讀性接近于零。
InfoGuard Labs的報告中提到,單是剝開這三層殼,經(jīng)驗豐富的分析師就花了近三周。攻擊者的目標(biāo)不是防住自動化工具,是拖慢響應(yīng)速度——只要后門多跑幾天,數(shù)據(jù)外泄和橫向移動就能完成。
SOCKS5隧道:為什么選443端口當(dāng)掩護
VIPERTUNNEL的核心功能是為攻擊者建立持久 socks 代理通道。SOCKS5協(xié)議本身不加密,但它能轉(zhuǎn)發(fā)任意TCP/UDP流量,相當(dāng)于在受害網(wǎng)絡(luò)內(nèi)部搭了一座橋。攻擊者從外面連進來,可以像內(nèi)網(wǎng)用戶一樣訪問資源,而防火墻看到的只是正常的HTTPS出站連接。
443端口的選擇經(jīng)過計算。企業(yè)防火墻對HTTPS流量通常寬松處理,深度包檢測成本高、誤報率高,多數(shù)環(huán)境不會全開。VIPERTUNNEL把C2通信偽裝成加密Web流量,既不觸發(fā)端口告警,也不暴露明文特征。
這種"寄生在正常協(xié)議上"的策略,讓網(wǎng)絡(luò)層的異常檢測幾乎失效。流量看起來是瀏覽器在連網(wǎng)站,除非做TLS指紋分析或域名信譽核查,否則很難區(qū)分。
InfoGuard Labs將此次行動歸因于UNC2165和EvilCorp。后者是被美國財政部制裁的老牌網(wǎng)絡(luò)犯罪集團,以Dridex銀行木馬和BitPaymer勒索軟件聞名。VIPERTUNNEL在他們的工具鏈里扮演"留守角色"——勒索軟件引爆前,用它維持訪問、竊取憑證、橫向移動;贖金談判破裂后,還能留著當(dāng)二次入侵的后門。
同一框架養(yǎng)出兩個工具:ShadowCoil的 credential 收割邏輯
調(diào)查過程中,InfoGuard Labs還發(fā)現(xiàn)另一個用相同混淆框架打包的惡意軟件:ShadowCoil。這是個Python編寫的憑證竊取器,專門翻Chrome、Edge、Firefox的本地存儲,把保存的密碼、Cookie、自動填充數(shù)據(jù)打包外傳。
兩個工具共享私有打包器,混淆模式高度一致。安全團隊把這種"代碼風(fēng)格指紋"視為威脅集群的強關(guān)聯(lián)指標(biāo)——即使C2服務(wù)器不同、功能不同,同一批開發(fā)者寫的混淆層騙不了人。
ShadowCoil的部署場景和VIPERTUNNEL互補。前者解決"拿到什么",后者解決"怎么持續(xù)拿"。先偷憑證擴大訪問面,再搭隧道維持據(jù)點,是典型的企業(yè)網(wǎng)絡(luò)滲透流水線。
Python作為攻擊載體的趨勢值得注意。它跨平臺、解釋執(zhí)行、標(biāo)準(zhǔn)庫豐富,而且很多企業(yè)開發(fā)環(huán)境本身就裝了解釋器。用pythonw.exe這種無窗口版本跑后臺任務(wù),系統(tǒng)管理員看到進程名也不會警覺——可能是某個內(nèi)部腳本,可能是CI/CD組件,排查優(yōu)先級天然靠后。
EvilCorp這套組合的關(guān)鍵創(chuàng)新不在某個單點技術(shù),在"如何把合法工具鏈串成攻擊鏈"。Python解釋器是合法的,sitecustomize.py加載機制是設(shè)計特性,SOCKS5代理是通用協(xié)議,443端口是正常業(yè)務(wù)通道。每個環(huán)節(jié)單獨看都沒問題,拼在一起就成了繞過層層防御的隱蔽通道。
InfoGuard Labs建議企業(yè)做兩件事:一是審計計劃任務(wù)和啟動項里調(diào)用解釋器的行為,特別是無參數(shù)調(diào)用pythonw.exe的情況;二是監(jiān)控sitecustomize.py等自動加載文件的完整性,這個文件默認(rèn)不存在,突然出現(xiàn)就是紅色信號。
但防御難度在于,攻擊者可以換用其他自動加載點——usercustomize.py、pth文件、甚至自定義的Python構(gòu)建。只要企業(yè)環(huán)境依賴Python開發(fā),完全封死自動加載機制就不現(xiàn)實。
EvilCorp的這套打法已經(jīng)在至少兩起勒索事件中被觀察到。InfoGuard Labs沒有披露具體受害方,但提到涉及歐洲中型企業(yè)的生產(chǎn)環(huán)境。VIPERTUNNEL的平均潛伏周期目前尚不清楚——分析師發(fā)現(xiàn)它時,后門已經(jīng)跑了多久,是個沒有答案的問題。
如果攻擊者開始把這套框架移植到PowerShell或.NET的自動加載機制上,現(xiàn)有的檢測規(guī)則還能跟上嗎?
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
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.