開源殭屍網路平台LiteHttp原始碼分析

2021-09-24 05:04:02 字數 1805 閱讀 7794

一、 簡介

如今,黑客越來越多的通過修改開源的病毒原始碼來實現快速的病毒開發,如mirai、qbot等公開了原始碼的病毒,常被黑客用於二次開發,用以攻擊。前不久,一起針對巴基斯坦的apt攻擊中,發現黑客所使用的攻擊樣本是通過開源殭屍網路病毒litehttp改造而來的,與後者的行為基本一致。分析開源惡意軟體原始碼,能讓我們更直接地了解惡意軟體的工作原理,從而設計出更好的防護策略,下面,我們就來本地搭建litehttp並對其原始碼進行簡單分析。天空彩

litehttp是乙個使用c#編寫的開源殭屍網路惡意軟體,

專案有3個目錄,bot是病毒程式的**,panel是控制端的**,使用php編寫,builder是乙個生成器,用於快速生成病毒程式。中國菜刀

生成器執行後如下圖,只要填入控制端的url以及加解密金鑰,就能自動生成乙個病毒程式,這樣就省去了修改病毒原始碼重新編譯的步驟。builder的**就是對bot的乙個封裝,下面重點分析bot和panel的**。

控制端只需要將panel資料夾複製到php**目錄下即可執行,不過執行之前要先導入upload_to_database.sql初始化litehttp需要的資料庫。

資料庫初始化完畢後,訪問panel下的login路徑即可進行登陸控制端,初始的賬戶名和密碼均為admin。

dashboard顯示了上線主機的概況,下發惡意命令的功能在tasks標籤處。

二、 原始碼分析

2.1 **流程

2.2 主函式

程式一開始會建立兩個執行緒,分別用於執行核心攻擊操作,以及持久化攻擊操作。

2.3 持久化攻擊函式

持久化攻擊操作比較簡單,就是在登錄檔下建立乙個自啟動項「catlyst control center」,實現每次開機自動執行。

2.4 核心攻擊函式

接下來看核心攻擊函式的**,主要做了3個主要操作:

[1] 收集主機資訊,使用預先約定的金鑰進行加密,然後將加密後的資訊以http的方式上傳至控制端伺服器。

[2] 接受控制端的控制碼並執行相應的操作。

[3] 上傳執行的結果。

2.5 c&c通訊函式

與c&c通訊的**在類communication中,通過post的方式將加密後的主機資訊上傳到控制端伺服器,這裡有一點值得注意,傳送資料報前會將http頭中的useragent修改為乙個隨機字串,這個是控制端用來識別肉雞的標識。

2.6 惡意操作執行函式

三、 平台演示

在執行病毒程式前,要現在settings.cs中填入32位的加解密金鑰。

同時,在panel的\inc\config.php中的$deckey中也填入上一步的金鑰,**中是使用aes-cbc演算法進行加密的,金鑰必須相同才能保證解密出的資料一致。

除錯病毒**的通訊模組,通過下圖藍色部分我們可以看到post的資料為一堆加密後的主機資訊。

第一次執行時發現了乙個bug,當病毒程式嘗試與控制端伺服器通訊時,伺服器返回了乙個404,這時就覺得納悶了,路徑沒錯呀,為什麼會返回404,這裡就得到panel原始碼中去找答案了。

開啟page.php,發現原來是只要控制端接收的資料不對,就會跳轉到404頁面,而通過除錯,最後確認了是如下藍色部分的**判斷失敗,這段**是用來判斷引數opsys(肉雞作業系統)是否為英文和數字的組合,而我們中國地區的windows系統名帶有中文,所以判斷失敗,把這段**去掉就能成功執行下去了。

執行病毒程式後,在控制端的dashboard中可以看到一台主機上線,由於我的ip是內網位址,所以控制端沒有解析出ip的地理位置。

隨後,我們就能在tasks標籤頁下對該主機進行相應的惡意操作了,下發惡意命令,狀態列中會顯示任務執行的狀態。

IOS開源專案 殭屍來襲

殭屍來襲的畫面大家有沒有想過。那麼如果如何通過oc來實現呢。閒來無事寫了乙個開源專案放到github共享。下面一起分析一下核心 網上找來4張。每張裡面有8個殭屍。我們需要切圖來把8個殭屍放到乙個陣列中,然後使用陣列動畫。我們需要乙個殭屍類,下面有4個子類。每一種殭屍有自己的奔跑速度。這又涉及到繼承和...

7個開源的SNS社交網路平台

1.dolphin 2.ucenter home ucenter home是一套採用php mysql構建的社會化網路軟體,通過它,建站者可以輕鬆構建乙個以好友關係為核心的交流網路,讓站點使用者可以用迷你部落格一句話記錄生活中的點點滴滴 方便快捷地發布日誌 上傳等。3.elgg elgg是乙個功能強...

構建SSH殭屍網路

每個單獨的殭屍或client都能連線上某台肉雞 以下實現了三颱主機登入一台肉雞 這三颱主機分別例項化三個不同的client物件 並加到陣列中 然後通過函式botnetcommand讀取使用者輸入的命令 並通過陣列的client物件呼叫send command函式 三颱主機並且每一台主機傳送2條命令 ...