2.9K
前面章節介紹復刻 Command and Control Server (C2 伺服器)的分析技巧。接下來進入實做 C2 伺服器的部份。實做 C2伺服器,可使用你熟悉的程式語言來撰寫程式。但你若無定見,我誠心建議使用Python 3。
Python 3 豐富的擴充模組與易學的語法,會大幅減少 C2 伺服器的程式碼,並加快開發速度。以下依類型,列出我撰寫 C2 伺服器程式碼時,常用的 20 個 Python 3 擴充模組。
文章目錄
網路協定相關模組
- socket
提供傳統 Unix 作業系統相似的底層 BSD socket API,實做 TCP/IP socket 程式時使用。 - http.server
HTTP 網頁伺服器模組。可混搭 ssl 模組,變成 HTTPS 網頁伺服器。 - ssl
TLS/SSL socket 封裝模組,可搭配 socket 或 http.server 模組使用,達成TLS/SSL 加密傳輸連線之目的。
處理傳輸 Payload 格式相關模組
- struct
將數值內容封裝至變數時,處理各種不同Size,如 Byte (1 byte)、Word (2 bytes)、DWORD (4 bytes) 與 QWORD (8 bytes),並搭配位元組順序 (Endiannness),如 Big Endian、 Little Endian 的好用模組。 - binascii
二進制資料與 Hex 字串互轉。
加解密與雜湊函數相關模組
- hashlib
提供常見雜湊函數,如 MD5、SHA1、SHA256 等。 - hmac
提供 HMAC 雜湊函數 - Crypto.Cipher
提供多個知名對稱式與非對稱式的加密演算法函數,如 AES、ARC2、ARC4、Blowfish、DES、DES 3、PKCS1_v1_5等。 - rc4
提供 rc4 加密演算法函數。 - base64
提供 Base64編碼與解碼功能函式。
多執行緒相關模組
- Threading
提供程式多執行緒功能,搭配前述網路協定相關模組使用,可讓程式同時服務多個連線客戶端。 - Queue
程式在多執行緒模式運作下,提供不同執行緒間交換資料的管道。
作業系統相關模組
- time
時間函數模組,取得 Unixtime 或 格式化日期時間使用。 - logging
日誌模組,可分等級輸出程式執行日誌至檔案或螢幕。 - fnctl
控制與調整作業系統 I/O 參數。 - termios
POSIX 格式的 TTY 控制模組。 - argparse
程式執行參數模組。依造文件,定義程式的參數與參數對應的 Callback Function。 - select
控制作業系統非同步 I/O 使用。 - os
提供作業系統相關函式 API。如getuid
、getpid
、sleep
等。
資料庫存取相關模組
- SQLAlchemy
資料庫 Object Relational Mapping (簡稱 ORM 模組),能將資料庫欄位定義成 Python 3 物件,透過物件存取,即可進行資料庫操作動作。
總結
上述提到的模組,大部分都已經內建在 Python 3 中 (Battery Included),或是在該領域的知名模組,經過廣大社群開發者檢視過,有一定程度以上的程式碼品質。安裝這些擴充模組,不僅能降低撰寫的程式碼行數,還能加快開發速度。
希望這篇文章能幫助到你,有任何問題,請在下方留言告訴我,並將文章分享給你的好朋友。
複刻 C2 系列文章
- C2 複刻 01 – 為何投入複刻 C2 工作?
- C2 複刻 02 – Command and Control Server 定義
- C2 複刻 03 | Command and Control Server (C&C、C2) 通訊協定類型
- C2 複刻 04 | Command and Control Server (C&C、C2) 觀察
- C2 複刻 05 | 判斷Command and Control Server (C&C、C2)發起連線端
- C2 複刻 06 | Command and Control Server 握手 (Handshake) 與認證 (Authentication)
- C2 複刻 07 | 分析惡意程式呼叫的作業系統網路 API
- C2 複刻 08 | 找出所有 Command and Control Server 指令列表與功能函式
- C2 複刻 09 | Command and Control 資料傳輸格式
- C2 複刻 10 | 惡意程式加解密函式定位
- C2 複刻 11 | 判定惡意程式加解密演算法種類
- C2 複刻 12 | 推薦 20 個複刻 Command and Control Server 的 Python 3 擴充模組
- C2 複刻 13 | 分享 3 個複刻 Command and Control Server 程式測試環境的設定建議
- C2 複刻 14 | 3 個複刻 Command and Control Server 程式的開發原則建議