
1. 引言
基於Python的遠端存取木馬(RATs)因其跨平台相容性、開發簡易性及規避傳統偵測機制的特性,已成為網路安全領域的重大威脅。本報告分析現代Python RATs的技術架構、攻擊手法及規避策略,聚焦於近期攻擊,如基於 Discord 的RAT、PY#RATION及Colour-Blind惡意軟體。主要發現透過案例研究及來自威脅情報報告的反向工程程式碼片段加以支持。

2. Python RATs的技術分析
2.1 指揮與控制(C2)機制
Python RATs日益利用合法平台進行隱秘通訊。例如:
- Discord API濫用 :Cyfirma分析的一款Python RAT使用hardcoded Discord bot tokens建立C2通道。該惡意軟體透過 Discord 的互動式介面監聽按鈕觸發的指令(例如「封鎖螢幕」或「觸發 BSOD 」),實現即時控制。 Discord 的加密流量及廣泛的防火牆白名單使其偵測困難。
- WebSocket協議 :PY#RATION採用WebSockets進行雙向C2通訊,繞過傳統網路監控工具。其流量模擬合法網頁應用程式,後期版本整合Fernet加密以混淆payloads。
2.2 持續性與規避技術
-
啟動資料夾操作
:類似 Discord RAT 的惡意軟體將自身複製到Windows啟動資料夾,命名為
WindowsCrashHandaler.exe
,使用Python的os
和shutil
函式庫確保系統重啟時執行。 -
Process Hollowing
:在「Snakes on a Domain」案例中,一款Python載入器透過process hollowing將 RAT 注入
msbuild.exe
,利用.NET
函式庫規避應用程式白名單。 - Fernet加密 :PY#RATION使用Fernet模組加密其Python原始碼,增加靜態分析的難度。解密後的程式碼包含網路掃描模組及反虛擬機檢查,以避免沙箱偵測。
2.3 惡意功能
現代Python RATs 結合監控與破壞功能:
-
資料竊取
:Colour-Blind,一款透過PyPI分發的RAT,竊取瀏覽器cookies、密碼及加密貨幣錢包。它使用
requests
透過transfer[.]sh
傳輸資料,並嵌入基於Flask的網頁控制面板進行遠端控制。 -
系統干擾
: Discord RAT 透過呼叫
ctypes.windll.ntdll.NtRaiseHardError
並進行權限提升觸發 BSOD ,模擬kernel panic。 -
螢幕鎖定
:使用全螢幕
tkinter
視窗關閉使用者互動,同時利用pyautogui
隨機移動滑鼠游標,阻礙工作效率。
3. 案例研究
3.1 PY#RATION攻擊鏈
- 初始入侵 :釣魚郵件傳遞包含偽裝成英國駕照圖片的惡意LNK檔案的ZIP壓縮檔。這些檔案從C2伺服器下載BAT腳本。
-
Payload執行
:BAT腳本取得Python二進位檔案(例如
CortanaAssistance.exe
),並透過啟動腳本建立持續性。 - C2通訊 :該 RAT 使用WebSockets進行指令執行,並透過Fernet加密通道進行資料竊取。
程式碼片段:PY#RATION中的Fernet解密
- from cryptography.fernet import Fernet
- encrypted_data = b'gAAAAABk...'
- key = Fernet.generate_key()
- cipher = Fernet(key)
- decrypted_data = cipher.decrypt(encrypted_data)
- exec(decrypted_data) # Executes decrypted malicious code
3.2 Colour-Blind惡意軟體(PyPI套件)
-
傳播
:以
colourfool
名稱上傳至PyPI,該套件從Pastebin或 Discord CDN下載第二階段payload。 -
功能
:
- 透過新增Microsoft Defender排除規則關閉防毒軟體。
-
使用
mss
進行螢幕截圖,並利用cloudflared
進行反向隧道(Reverse tunneling)以繞過防火牆。
程式碼片段:防毒規避
- def disable_antivirus():
- subprocess.run(
- 'powershell.exe Add-MpPreference -ExclusionPath "%APPDATA%"',
- shell=True,
- stdout=subprocess.DEVNULL
- )
4. 偵測與緩解策略
4.1 網路層防護
-
監控 Discord API流量,尋找異常bot互動或對
ip-api.com
的異常HTTP請求以進行地理位置檢查。 - 封鎖對未知域名的WebSocket連線,並檢查加密流量中的Fernet金鑰模式。
4.2 端點防護
-
部署EDR解決方案,偵測 Process Hollowing(例如
msbuild.exe
產生異常執行緒)及未授權的登錄檔修改。 - 限制敏感目錄中的Python腳本執行,並審查 PyPI 套件依賴。
4.3 威脅狩獵
-
搜尋啟動資料夾中名為
WindowsCrashHandaler.exe
的檔案,或執行IronPython腳本的ctfmon.exe
。 - 使用LIEF等工具分析解密的C2設定,進行資源提取及RC4解密。
5. 結論
Python RATs體現了「網路犯罪民主化」,開放原始碼工具與合法平台被武器化用於惡意目的。其模組化設計、加密層及對 Discord 與PyPI等可信服務的濫用,凸顯主動防禦策略的必要性。未來變種可能整合AI驅動的規避技術,強調基於行為的偵測及跨產業威脅情報共享的需求。
參考文獻
- Cyfirma, Technical Malware Analysis Report: Python-based RAT Malware
- Cyfirma, Analysis of a Discord-based Remote Access Trojan
- ASEC, Analysis of Pupy RAT Used in Attacks Against Linux Systems
- The Hacker News, PY#RATION: New Python-based RAT Uses WebSocket for C2
- Kroll, PyPI Packages Used to Deliver Python Remote Access Tools
- Securonix, PY#RATION Attack Campaign Leverages Fernet Encryption
- Huntress, Snakes on a Domain: Analysis of a Python Malware Loader
- Elastic, Dissecting REMCOS RAT