當你面對惡意程式諸多繁複功能,好不容易從組合語言萃取出 C2 伺服器程式連線協定。接下來,開始寫程式了。我根據過往經驗,歸納彙整出 3 個複刻 C2 的開發原則建議,分別是「選擇 Scripting 類型的程式語言」、「最小可運行原則」、「 …
C2復刻
準備來撰寫 C2 程式囉,但在寫程式之前,要建置合適的開發與除錯環境,方便一邊複刻 C2 程式,一邊驗證與除錯。接下來,會分享 3 個複刻 Command and Control Server 的程式開發環境的設定建議。 使用虛擬機器軟體建 …
前面章節介紹復刻 Command and Control Server (C2 伺服器)的分析技巧。接下來進入實做 C2 伺服器的部份。實做 C2伺服器,可使用你熟悉的程式語言來撰寫程式。但你若無定見,我誠心建議使用Python 3。 Py …
在複刻 C2 伺服器的功能時,需清楚惡意程式使用何種加解密演算法,才能順利與惡意程式收送指令。但我習慣在整個惡意程式其他功能都分析完畢後,再進行加解密演算法種類判定。最困難的工作要留到最後才做,才不會因為挫折感太重而放棄。在此之前,只要先標 …
在反組譯惡意程式後,如何在茫茫組語海中,定位加解密函式的所在程式碼位置呢? 根據我過去分析惡意程式的經驗,加解密的函式常會單獨成一個函式。從惡意程式角度切入,分為送資料給 C2 伺服器與從 C2 伺服器收資料 ,2 部份作業來說明。 送資料 …
延續上節,若惡意程式採用 TCP 或 UDP 網路傳輸協定,亦會自定義一套與 C2 溝通的專屬格式。 在復刻 C2 上,常利用逆向工程與分析封包手法,去拼湊出每個 C2 控制指令,所對應的傳輸格式與內容。 而在傳輸格式中,最廣泛使用就屬 T …
若想重新複刻 C2 伺服器的功能,分析惡意程式中間過程有一重要步驟:「找出所有 Command and Control Server 指令列表與功能函式」。 分析時,需使用逆向分析工具,例如 IDA Pro、x64dbg 等。如何操作 ID …
對於複刻 C2 伺服器的功能,最重要的一件事就是 — 紀錄惡意程式所有呼叫的作業系統的網路 API (application programming interface) 函式、其對應的參數與函式回傳值。 若是 C 語言撰寫的程 …
Command and Control Server 握手 (Handshake) 與認證 (Authentication) 正如同 阿里巴巴與四十大盜 「芝麻開門」口令。口令目的就像一組共用密碼,能肯定接近的人,是不是自己人。同樣地,口令 …
現實生活中,2 個人要互相溝通,一定會有個先說話的人。而客戶端(這裡指的是惡意程式)與 Command and Control Server (C&C、C2) 伺服器端要互相通訊,道理也相同,會有一方先發起連線。 「先發起連線」的定 …
- 1
- 2
