成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

系統(tǒng)潛入后門分析

forrest23 / 2808人閱讀

摘要:在這個(gè)案例里,這些是欺騙性的功能,它們似乎有一個(gè)唯一目的,即混淆自動(dòng)檢測(cè)系統(tǒng),反病毒軟件,或者那些甚至嘗試手工分析這些程序樣本的分析人員。受害機(jī)器的處于所規(guī)定的地址空間,攻擊者是無法通過到達(dá)的。

初始傳染手段?-?Nuclear?Pack

已經(jīng)有一些其他的文章介紹過Nuclear?Pack破解工具包??赡芩€不像g10pack或者BlackHole這些工具那么流行,也沒有像CoolEK或者Phoenix工具有那么多的破解功能,但仍然可以看到它的價(jià)值。

Nuclear?Pack因使用了重定向?qū)哟谓Y(jié)構(gòu)以及在傳遞惡意代碼前檢查用戶活動(dòng)而被人所熟知。另外,眾所周知它被不同的犯罪分子用于分發(fā)各種惡意軟件,而其中大多數(shù)是犯罪軟件。在這篇文章里,我們?cè)敿?xì)介紹了一個(gè)特殊的事件,在這個(gè)事件里一個(gè)客戶受到Nuclear?Pack入侵系統(tǒng)的攻擊。

Nuclear?Pack的工作原理如下:

受害者訪問Nuclear?Pack入侵系統(tǒng)的初始登錄頁面,JavaScript程序檢測(cè)其鼠標(biāo)的移動(dòng);

受害者被重定向到JavaScript程序,由其決策哪個(gè)入侵系統(tǒng)對(duì)受害者進(jìn)行攻擊;

JavaScript程序重定向受害者到合適的入侵系統(tǒng),提供參數(shù)解碼URL供漏洞有效負(fù)載取回;

入侵軟件在受害者機(jī)器上運(yùn)行,為有效負(fù)載解碼URL;

入侵軟件下載適合受害者系統(tǒng)的合適的程序,并執(zhí)行(在這個(gè)案例里是Initial?Dropper)。

在下面的Previct的界面中,你可以看到檢測(cè)的結(jié)果信息:

事件的細(xì)節(jié)信息如下:

這個(gè)Java程序成功控制了受害者,就像在下圖所看到的,它立即下載了惡意的可執(zhí)行程序load2.exe(其MD5值是78cfa36112cd0797690327a9a07d5890?,該程序即是上文中所提到的initial?dropper)。

不尋常的可執(zhí)行程序,詳細(xì)的分析

當(dāng)我們第一次看到load2.exe時(shí),很快就覺得這是一種誤報(bào)。程序樣本看起來根本不像是惡意軟件。VirusTotal的快速檢查結(jié)果也沒有幫助我們做出決定;根據(jù)VT的結(jié)果,這種情況看起來也像是一個(gè)可能的誤報(bào)。

Dropper病毒

Initial?Dropper是NullSoft的安裝程序,它首先放置6個(gè)文件到臨時(shí)目錄里:

正如你在下圖中所看到的,被安裝的可執(zhí)行程序有一個(gè)圖標(biāo),類似“設(shè)置”或“更新”符號(hào);而被安裝的DLL中有一個(gè)的描述信息是“Google?Chrome?Patches”。

然后,它啟動(dòng)可執(zhí)行程序文件wobiqacaxa.exe

The Second?Stage

Second?Stage可執(zhí)行程序(即wobiqacaxa.exe)會(huì)做一些數(shù)學(xué)計(jì)算,像下面的函數(shù)這樣:

從其它DLL中導(dǎo)入函數(shù):

并在main函數(shù)中調(diào)用它們:

它也會(huì)計(jì)算剩余的電池壽命,這就是可執(zhí)行程序的程度了。到目前為止還沒有什么可疑的地方。

讓我們看看這些DLL。首先,它們?cè)隗w積上都非常的小,每一個(gè)有一個(gè)導(dǎo)出的函數(shù)。這些導(dǎo)出的函數(shù)看起來并不非??梢?。在對(duì)它們做了一些檢查之后,有人會(huì)想說“這些東西不是惡意軟件,我們這么做感覺像是在浪費(fèi)時(shí)間”,并且你考慮就此停止。但接著,你提醒你自己截止目前已經(jīng)在安裝程序中發(fā)現(xiàn)了非常奇怪的行為,因此得繼續(xù)分析。

讓我們看看:

動(dòng)態(tài)庫(kù)womajejunuc.dll輸出了函數(shù)Nalexavo

動(dòng)態(tài)庫(kù)tapevacanop.dll輸出了函數(shù)Miqudigob

動(dòng)態(tài)庫(kù)horikipusac.dll輸出了函數(shù)humolu

這似乎沒有一點(diǎn)像是惡意軟件。但某些東西在困擾著你,你不想就此停止挖掘其中的秘密。為什么會(huì)這樣?

并置

這些代碼沒有任何意義,即使是對(duì)于一個(gè)合法的二進(jìn)制程序,也沒有什么意義去做如下的事情:

1.?調(diào)用一個(gè)數(shù)學(xué)函數(shù),諸如“y?=?10?-?cos(2x)”

2.?獲得本地貨幣格式,應(yīng)用它到串"-3.80",然后對(duì)它沒有再做任何事情

3.?計(jì)算剩余的電池時(shí)間

4.?遍歷驅(qū)動(dòng)器列表

所有這些僅僅是一個(gè)合法程序可能會(huì)使用到的常用函數(shù),但不會(huì)一起并且不會(huì)以這種順序使用。在這個(gè)案例里,這些是欺騙性的功能,它們似乎有一個(gè)唯一目的,即混淆自動(dòng)檢測(cè)系統(tǒng),反病毒軟件,或者那些甚至嘗試手工分析這些程序樣本的分析人員。

當(dāng)我們檢查了之前所說的二進(jìn)制數(shù)據(jù)文件(jepuculoguh.vat)后,所有的疑問消失了。

可以確定的是它的數(shù)據(jù)十分像是使用了一個(gè)短的密匙由序列加密法加密的模式。

解包

因此,除了之前所述的偽裝邏輯,這個(gè)惡意軟件會(huì)做如下事情:

(1)?計(jì)算一個(gè)解密密匙(由來自動(dòng)態(tài)庫(kù)horikipusac.dll的humolu函數(shù)完成)

(1)?讀二進(jìn)制文件到內(nèi)存(由來自動(dòng)態(tài)庫(kù)womajejunuc.dll的Nalexavo函數(shù)完成)

(2)?在內(nèi)存中解密數(shù)據(jù)(由來自動(dòng)態(tài)庫(kù)tapevacanop.dll的Miqudigob函數(shù)完成)

現(xiàn)在看看最后一個(gè)DLL:

動(dòng)態(tài)庫(kù)Qotowokami.dll導(dǎo)出函數(shù)Siwusonivin,它實(shí)現(xiàn)了相當(dāng)于標(biāo)準(zhǔn)的處理模式“注入解密的數(shù)據(jù)到新的進(jìn)程中”:

調(diào)用GetCommandLine和PathGetArgs去獲取初始安裝程序的路徑。這是可行的,因?yàn)榘惭b程序自己?jiǎn)?dòng)被安裝的程序是作為在命令行上的一個(gè)參數(shù)

調(diào)用CreateProcessA去創(chuàng)建一個(gè)新的安裝程序的進(jìn)程實(shí)例,但其被掛起

調(diào)用ZwUnmapViewOfSection和VirtualAllocEx去釋放初始進(jìn)程的內(nèi)存,并在被創(chuàng)建的進(jìn)程里為解密數(shù)據(jù)分配內(nèi)存

調(diào)用WriteProcessMemory去拷貝解密的數(shù)據(jù)到進(jìn)程地址空間

調(diào)用GetThreadContext,SetThreadContext和ResumeThread去改變進(jìn)程中線程的入口點(diǎn),然后使得它們繼續(xù)運(yùn)行

但是,動(dòng)態(tài)庫(kù)Qutowokami.dll本身并沒有包含任何函數(shù)名稱,函數(shù)Siwusonivin通過調(diào)用LoadLibrary和GetProcAddress動(dòng)態(tài)地獲取所有的API函數(shù)。這些函數(shù)都位于解密的內(nèi)存中。因此,沒有解密數(shù)據(jù)是不可能看見這個(gè)DLL的實(shí)際運(yùn)行內(nèi)容的。

沙盒和免殺

這個(gè)惡意軟件編寫的方式使得如果這些組件被多帶帶地分析或如果任意一個(gè)組件丟失,都非常難去識(shí)別出這個(gè)程序樣本應(yīng)該要做什么,以及是否它是惡意軟件。

由于絕大多數(shù)的反病毒產(chǎn)品沒有真正的分析(未知格式的)二進(jìn)制文件,而僅僅是檢查整個(gè)文件的哈希值,而惡意軟件的作者越來越傾向在不可執(zhí)行的二進(jìn)制文件中保存加密的惡意內(nèi)容,然后使用一個(gè)多帶帶的文件抽取加密內(nèi)容,其中包含的是一個(gè)看起來并不讓人感到懷疑的加載/解密程序。我們已經(jīng)在之前的文章(http://www.lastline.com/an-analysis-of-plugx)中探討過類似的技術(shù)。

我們的分析平臺(tái)檢測(cè)到了一個(gè)隱藏入侵:這個(gè)程序樣本嘗試讀取注冊(cè)表鍵(HKLMSYSTEMCURRENTCONTROLSETSERVICESDISKENUM)的值,并比較它的值是否有以下子串:

(1)?"vbox"?(出現(xiàn)在VirtualBox虛擬機(jī)中)

(1)?"qemu"?(出現(xiàn)在QEMU虛擬機(jī)中)

(2)?"vmwa"?(出現(xiàn)在VMWare虛擬機(jī)中)

來檢查它是否工作在一個(gè)虛擬機(jī)環(huán)境中。

所以這里的解密數(shù)據(jù)還不是實(shí)際的內(nèi)容,而是另一種殼程序,它首先檢查其是否運(yùn)行在沙盒中(像這樣的虛擬機(jī)隱藏入侵正在變得越來越常見)。

接著,這個(gè)殼程序解析API函數(shù)。需要說明的是包裝程序是通過哈希查找DLL的地址和API函數(shù)。惡意軟件的作者肯定不希望簡(jiǎn)單地搜索可疑的字符串,比如可疑的API函數(shù)的名字,就能檢測(cè)到它。

殼程序最后會(huì)解密惡意代碼,然后,以一種有趣的方法,為它創(chuàng)建一個(gè)導(dǎo)入表:

對(duì)于它使用的每個(gè)API函數(shù),首先檢測(cè)它的第一條指令

如果指令是跳轉(zhuǎn)指令jump(0xEB或0xE9),包裝程序獲取其目標(biāo)地址,并遞歸地重復(fù)這個(gè)檢查過程

當(dāng)找到第一個(gè)非跳轉(zhuǎn)指令時(shí),包裝程序拷貝這條指令到分配的內(nèi)存區(qū),并在這條指令之后添加到實(shí)際API函數(shù)的第二條指令的跳轉(zhuǎn)指令

使用這種技術(shù),惡意軟件可以逃避安全組件(比如:HIPS)的鉤子(hooks)。

下面是惡意軟件導(dǎo)出函數(shù)的一個(gè)樣例。需要說明的是導(dǎo)入使用的是跳轉(zhuǎn)指令jump(通常導(dǎo)入的構(gòu)成是調(diào)用指令call?[x]或者jmp?addr)

為了替換API函數(shù),使得jump跳轉(zhuǎn)指令按照上文所述特定地產(chǎn)生了如下代碼:

最后是沒加殼的代碼

惡意代碼是位置無關(guān)的,在經(jīng)過重新構(gòu)造后,它看起來像這樣:

這是一個(gè)典型的“后門程序”或者“綁定外殼程序”,它在一個(gè)端口上監(jiān)聽,然后執(zhí)行接收到的命令。并且因?yàn)樗械幕顒?dòng)都是在隱藏進(jìn)行的,又是做過免殺的,所以這個(gè)連接是未加密的,且沒有采取任何驗(yàn)證方法進(jìn)行保護(hù)。

結(jié)論

這個(gè)事件的簡(jiǎn)要摘要如下:

安裝的文件名 表面文件類型 md5 角色
Qotowokami.dll PE32可執(zhí)行程序(DLL) 33a3d73982ff030150429f9e50ff9a00 被解密函數(shù)的注入程序
horikipusac.dll PE32可執(zhí)行程序(DLL) 2551a6ed18384e6dececb5fc45bc839f 解密密匙的計(jì)算程序
jepuculoguh.vat 二進(jìn)制數(shù)據(jù) 3c641ccae35380feebe9d2d53ece8da9 加密的二進(jìn)制數(shù)據(jù),解密后即是實(shí)際的惡意代碼
tapevacanop.dll PE32可執(zhí)行程序(DLL) 2bb51cf2091d124d15a28b19f9fd5326 加密二進(jìn)制數(shù)據(jù)的解密程序
wobiqacaxa.exe PE32可執(zhí)行程序 ddb6d2b7a78e71522893c349ddee5195 Second?Stage可執(zhí)行程序
womajejunuc.dll PE32可執(zhí)行文件(DLL) 5b1ff7476bf1787e4df9c9b74b05ba16 加密二進(jìn)制數(shù)據(jù)的讀入程序

功能模塊與物理文件對(duì)應(yīng)關(guān)系如下:

Initial?dropper?對(duì)應(yīng)?load2.exe

second?stage對(duì)應(yīng)wobiqacaxa.exe

key?calculator對(duì)應(yīng)horikipusac.dll

encrypted?binary?data?對(duì)應(yīng)jepuculoguh.vat

reader?對(duì)應(yīng)womajejunuc.dll

decryptor?對(duì)應(yīng)tapevacanop.dll

injector?對(duì)應(yīng)Qotowokami.dll

Initial?Dropper之后惡意軟件的運(yùn)行過程如上圖所示:

運(yùn)行wobiqacaxa.exe,其首先做一些數(shù)學(xué)計(jì)算

接著從安裝的DLL中導(dǎo)入函數(shù)

獲取安裝的設(shè)備和計(jì)算密匙(代碼位于horikipusac.dll)

檢查電源狀態(tài)和電池壽命

打開加密文件,讀入它到內(nèi)存中。做貨幣計(jì)算(代碼位于womajejunuc.dll)

解密文件到內(nèi)存中(代碼位于tapevacanop.dll)

獲取Initial?Dropper程序的路徑,創(chuàng)建一個(gè)新的掛起的進(jìn)程(代碼位于Qotowokami.dll)

釋放當(dāng)前進(jìn)程內(nèi)存,并在新進(jìn)程空間中分配新的內(nèi)存

注入解密的數(shù)據(jù)到新分配的內(nèi)存中

改變?nèi)肟邳c(diǎn),然后繼續(xù)運(yùn)行線程

從這里開始進(jìn)入解密后的代碼中運(yùn)行

檢查是否運(yùn)行在虛擬機(jī)環(huán)境中

如果不是,則再次執(zhí)行解密,并為進(jìn)程創(chuàng)建函數(shù)導(dǎo)入表

安裝自己作為一個(gè)服務(wù),名為SunJavaUpdateSched

打開TCP套接字,在端口8000上監(jiān)聽,當(dāng)有連接請(qǐng)求到來時(shí),啟動(dòng)cmd.exe,其I/O重定向到了socket上

所有這些努力都是為了保護(hù)一個(gè)簡(jiǎn)單的TCP綁定外殼程序,使其不被檢測(cè)到嗎?為什么一個(gè)攻擊者會(huì)利用一個(gè)部署在Internet上的,位于受害機(jī)器的網(wǎng)絡(luò)之外的控制入侵軟件?這樣做,他可能無法進(jìn)入到缺乏抵抗力的主機(jī)。受害機(jī)器的IP處于RFC1918所規(guī)定的地址空間,攻擊者是無法通過Internet到達(dá)的。

一個(gè)可能的解釋是攻擊者來自于某個(gè)家庭網(wǎng)絡(luò)。在這樣一個(gè)網(wǎng)絡(luò)中的攻擊者可能不太關(guān)注對(duì)到本地網(wǎng)絡(luò)中的其它機(jī)器上的連接進(jìn)行加密,而更關(guān)心的是可以在網(wǎng)絡(luò)中傳遞數(shù)據(jù)。

這似乎是攻擊者在受害者機(jī)器的網(wǎng)絡(luò)中建立了一個(gè)前沿陣地后,想要訪問網(wǎng)絡(luò)中其它機(jī)器時(shí),進(jìn)行橫向入侵的技術(shù)。使用從第一臺(tái)機(jī)器上搜集的信息,他們可以制造一個(gè)可信的消息(一種釣魚法),在潛在的受害者因?yàn)槟撤N不可抗拒的原因訪問了一個(gè)包含在其中的URL時(shí),采取如文章開始時(shí)所描述的方法,對(duì)受害者進(jìn)行入侵控制。


原文 Analysis of an evasive backdoor
翻譯 周耀平

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/11085.html

相關(guān)文章

  • Capoae惡意軟件使用多個(gè)漏洞攻擊Linux系統(tǒng)和Web應(yīng)用程序

    摘要:安全研究員于上周四檢測(cè)到名為的惡意軟件,該惡意軟件利用多個(gè)漏洞攻擊系統(tǒng)和多個(gè)應(yīng)用程序。軟件系統(tǒng)的安全漏洞成為網(wǎng)絡(luò)犯罪分子發(fā)動(dòng)攻擊的輔助工具。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;color:#333}.markdown-b...

    elarity 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<