您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關開源僵尸網絡平臺LiteHttp的源碼分析,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
如今,黑客越來越多的通過修改開源的病毒源碼來實現快速的病毒開發,如Mirai、qbot等公開了源碼的病毒,常被黑客用于二次開發,用以攻擊。前不久,一起針對巴基斯坦的APT攻擊中,發現黑客所使用的攻擊樣本是通過開源僵尸網絡病毒LiteHttp改造而來的,與后者的行為基本一致。分析開源惡意軟件源碼,能讓我們更直接地了解惡意軟件的工作原理,從而設計出更好的防護策略,下面,我們就來本地搭建LiteHttp并對其源碼進行簡單分析。
LiteHttp是一個使用C#編寫的開源僵尸網絡惡意軟件,項目地址:
https://github.com/zettabithf/LiteHTTP
項目有3個目錄,Bot是病毒程序的代碼,Panel是控制端的代碼,使用PHP編寫,Builder是一個生成器,用于快速生成病毒程序。
生成器運行后如下圖,只要填入控制端的Url以及加解密密鑰,就能自動生成一個病毒程序,這樣就省去了修改病毒源碼重新編譯的步驟。Builder的代碼就是對Bot的一個封裝,下面重點分析Bot和Panel的代碼。
控制端只需要將Panel文件夾復制到PHP網站目錄下即可運行,不過運行之前要先導入Upload_to_database.sql初始化LiteHttp需要的數據庫。
數據庫初始化完畢后,訪問Panel下的login路徑即可進行登陸控制端,初始的賬戶名和密碼均為admin。
Dashboard顯示了上線主機的概況,下發惡意命令的功能在Tasks標簽處。
二、源碼分析
程序一開始會創建兩個線程,分別用于執行核心攻擊操作,以及持久化攻擊操作。
持久化攻擊操作比較簡單,就是在注冊表下創建一個自啟動項“Catlyst Control Center”,實現每次開機自動運行。
接下來看核心攻擊函數的代碼,主要做了3個主要操作:
[1] 收集主機信息,使用預先約定的密鑰進行加密,然后將加密后的信息以Http的方式上傳至控制端服務器。
[2] 接受控制端的控制碼并執行相應的操作。
[3] 上傳執行的結果。
與C&C通信的代碼在類Communication中,通過POST的方式將加密后的主機信息上傳到控制端服務器,這里有一點值得注意,發送數據包前會將Http頭中的UserAgent修改為一個隨機字符串,這個是控制端用來識別肉雞的標識。
主要的核心惡意操作在函數processTask中,通過代碼我們可以發現,控制碼是阿拉伯數字,接收的控制碼和執行參數都是通過base64加密的,首先需要對它們進行base64解密。主要的操作大致有4個:下載&執行可執行文件、訪問網站、清除異己、更新&卸載病毒程序。
在運行病毒程序前,要現在Settings.cs中填入32位的加解密密鑰。
同時,在Panel的\inc\config.php中的$deckey中也填入上一步的密鑰,代碼中是使用AES-CBC算法進行加密的,密鑰必須相同才能保證解密出的數據一致。
調試病毒代碼的通信模塊,通過下圖藍色部分我們可以看到post的數據為一堆加密后的主機信息。
第一次運行時發現了一個bug,當病毒程序嘗試與控制端服務器通信時,服務器返回了一個404,這時就覺得納悶了,路徑沒錯呀,為什么會返回404,這里就得到Panel源碼中去找答案了。
打開page.php,發現原來是只要控制端接收的數據不對,就會跳轉到404頁面,而通過調試,最后確認了是如下藍色部分的代碼判斷失敗,這段代碼是用來判斷參數opsys(肉雞操作系統)是否為英文和數字的組合,而我們中國地區的windows系統名帶有中文,所以判斷失敗,把這段代碼去掉就能成功執行下去了。
運行病毒程序后,在控制端的Dashboard中可以看到一臺主機上線,由于我的IP是內網地址,所以控制端沒有解析出IP的地理位置。
隨后,我們就能在Tasks標簽頁下對該主機進行相應的惡意操作了,下發惡意命令,狀態欄中會顯示任務執行的狀態。
以上就是開源僵尸網絡平臺LiteHttp的源碼分析,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。