C2 複刻 05 | 判斷Command and Control Server (C&C、C2)發起連線端

by iok
1.5k 人次瀏覽
判斷Command and Control Server (C&C、C2)發起連線端

現實生活中,2 個人要互相溝通,一定會有個先說話的人。而客戶端(這裡指的是惡意程式)與 Command and Control Server (C&C、C2) 伺服器端要互相通訊,道理也相同,會有一方先發起連線。

「先發起連線」的定義是「在雙方完成 TCP 三向交握後,或使用 UDP 通訊協定,首先發送通訊資料的那一方」。

如何判斷哪方先發起連線呢?依我的經驗,在還沒深入逆向分析惡意程式前,可以用猜的。

依經驗,多數惡意程式都是先發起連線的那方,並且使用 TCP 協定。猜測與驗證方式說明如下:

驗證方式可使用有「網路瑞士刀」之稱的 netcat 程式。有 2 個假設前提,如下:

  1. 假設惡意程式是先發起連線
  2. 已修改惡意程式連線的目標位址,改為執行 nc 的主機 IP

執行 nc 程式,設定通訊埠 (port)(例如Port 4444),來被動接聽 (Listen) tcp 封包。

接著,執行惡意程式,若螢幕畫面上有輸出字串(字串內容可能是亂碼),即表示惡意程式是先發起連線那端。

反之,等了一段時間,都沒有螢幕畫面輸出任何資料的話,即表示 C2 伺服器是先發起連線那端。

$ nc -l 4444

複刻 C2 系列文章

相關文章

留言