新聞中心
本篇文章給大家分享的是有關(guān)開(kāi)源僵尸網(wǎng)絡(luò)平臺(tái)LiteHttp的源碼分析,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
成都創(chuàng)新互聯(lián)從2013年創(chuàng)立,先為姚安等服務(wù)建站,姚安等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為姚安企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
一、簡(jiǎn)介
如今,黑客越來(lái)越多的通過(guò)修改開(kāi)源的病毒源碼來(lái)實(shí)現(xiàn)快速的病毒開(kāi)發(fā),如Mirai、qbot等公開(kāi)了源碼的病毒,常被黑客用于二次開(kāi)發(fā),用以攻擊。前不久,一起針對(duì)巴基斯坦的APT攻擊中,發(fā)現(xiàn)黑客所使用的攻擊樣本是通過(guò)開(kāi)源僵尸網(wǎng)絡(luò)病毒LiteHttp改造而來(lái)的,與后者的行為基本一致。分析開(kāi)源惡意軟件源碼,能讓我們更直接地了解惡意軟件的工作原理,從而設(shè)計(jì)出更好的防護(hù)策略,下面,我們就來(lái)本地搭建LiteHttp并對(duì)其源碼進(jìn)行簡(jiǎn)單分析。
LiteHttp是一個(gè)使用C#編寫的開(kāi)源僵尸網(wǎng)絡(luò)惡意軟件,項(xiàng)目地址:
https://github.com/zettabithf/LiteHTTP
項(xiàng)目有3個(gè)目錄,Bot是病毒程序的代碼,Panel是控制端的代碼,使用PHP編寫,Builder是一個(gè)生成器,用于快速生成病毒程序。
生成器運(yùn)行后如下圖,只要填入控制端的Url以及加解密密鑰,就能自動(dòng)生成一個(gè)病毒程序,這樣就省去了修改病毒源碼重新編譯的步驟。Builder的代碼就是對(duì)Bot的一個(gè)封裝,下面重點(diǎn)分析Bot和Panel的代碼。
控制端只需要將Panel文件夾復(fù)制到PHP網(wǎng)站目錄下即可運(yùn)行,不過(guò)運(yùn)行之前要先導(dǎo)入U(xiǎn)pload_to_database.sql初始化LiteHttp需要的數(shù)據(jù)庫(kù)。
數(shù)據(jù)庫(kù)初始化完畢后,訪問(wèn)Panel下的login路徑即可進(jìn)行登陸控制端,初始的賬戶名和密碼均為admin。
Dashboard顯示了上線主機(jī)的概況,下發(fā)惡意命令的功能在Tasks標(biāo)簽處。
二、源碼分析
2.1 代碼流程
2.2 主函數(shù)
程序一開(kāi)始會(huì)創(chuàng)建兩個(gè)線程,分別用于執(zhí)行核心攻擊操作,以及持久化攻擊操作。
2.3 持久化攻擊函數(shù)
持久化攻擊操作比較簡(jiǎn)單,就是在注冊(cè)表下創(chuàng)建一個(gè)自啟動(dòng)項(xiàng)“Catlyst Control Center”,實(shí)現(xiàn)每次開(kāi)機(jī)自動(dòng)運(yùn)行。
2.4 核心攻擊函數(shù)
接下來(lái)看核心攻擊函數(shù)的代碼,主要做了3個(gè)主要操作:
[1] 收集主機(jī)信息,使用預(yù)先約定的密鑰進(jìn)行加密,然后將加密后的信息以Http的方式上傳至控制端服務(wù)器。
[2] 接受控制端的控制碼并執(zhí)行相應(yīng)的操作。
[3] 上傳執(zhí)行的結(jié)果。
2.5C&C通信函數(shù)
與C&C通信的代碼在類Communication中,通過(guò)POST的方式將加密后的主機(jī)信息上傳到控制端服務(wù)器,這里有一點(diǎn)值得注意,發(fā)送數(shù)據(jù)包前會(huì)將Http頭中的UserAgent修改為一個(gè)隨機(jī)字符串,這個(gè)是控制端用來(lái)識(shí)別肉雞的標(biāo)識(shí)。
2.6 惡意操作執(zhí)行函數(shù)
主要的核心惡意操作在函數(shù)processTask中,通過(guò)代碼我們可以發(fā)現(xiàn),控制碼是阿拉伯?dāng)?shù)字,接收的控制碼和執(zhí)行參數(shù)都是通過(guò)base64加密的,首先需要對(duì)它們進(jìn)行base64解密。主要的操作大致有4個(gè):下載&執(zhí)行可執(zhí)行文件、訪問(wèn)網(wǎng)站、清除異己、更新&卸載病毒程序。
三、平臺(tái)演示
在運(yùn)行病毒程序前,要現(xiàn)在Settings.cs中填入32位的加解密密鑰。
同時(shí),在Panel的\inc\config.php中的$deckey中也填入上一步的密鑰,代碼中是使用AES-CBC算法進(jìn)行加密的,密鑰必須相同才能保證解密出的數(shù)據(jù)一致。
調(diào)試病毒代碼的通信模塊,通過(guò)下圖藍(lán)色部分我們可以看到post的數(shù)據(jù)為一堆加密后的主機(jī)信息。
第一次運(yùn)行時(shí)發(fā)現(xiàn)了一個(gè)bug,當(dāng)病毒程序嘗試與控制端服務(wù)器通信時(shí),服務(wù)器返回了一個(gè)404,這時(shí)就覺(jué)得納悶了,路徑?jīng)]錯(cuò)呀,為什么會(huì)返回404,這里就得到Panel源碼中去找答案了。
打開(kāi)page.php,發(fā)現(xiàn)原來(lái)是只要控制端接收的數(shù)據(jù)不對(duì),就會(huì)跳轉(zhuǎn)到404頁(yè)面,而通過(guò)調(diào)試,最后確認(rèn)了是如下藍(lán)色部分的代碼判斷失敗,這段代碼是用來(lái)判斷參數(shù)opsys(肉雞操作系統(tǒng))是否為英文和數(shù)字的組合,而我們中國(guó)地區(qū)的windows系統(tǒng)名帶有中文,所以判斷失敗,把這段代碼去掉就能成功執(zhí)行下去了。
運(yùn)行病毒程序后,在控制端的Dashboard中可以看到一臺(tái)主機(jī)上線,由于我的IP是內(nèi)網(wǎng)地址,所以控制端沒(méi)有解析出IP的地理位置。
隨后,我們就能在Tasks標(biāo)簽頁(yè)下對(duì)該主機(jī)進(jìn)行相應(yīng)的惡意操作了,下發(fā)惡意命令,狀態(tài)欄中會(huì)顯示任務(wù)執(zhí)行的狀態(tài)。
以上就是開(kāi)源僵尸網(wǎng)絡(luò)平臺(tái)LiteHttp的源碼分析,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
文章題目:開(kāi)源僵尸網(wǎng)絡(luò)平臺(tái)LiteHttp的源碼分析
文章位置:http://ef60e0e.cn/article/ghjpei.html