成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

FBI針對(duì)Tor網(wǎng)絡(luò)的惡意代碼分析

2450184176 / 2958人閱讀

摘要:針對(duì)網(wǎng)絡(luò)的惡意代碼分析一背景提供一個(gè)匿名交流網(wǎng)絡(luò)平臺(tái),它使得用戶在瀏覽網(wǎng)頁或訪問其它網(wǎng)絡(luò)服務(wù)時(shí)不會(huì)被跟蹤。這可能有助于確認(rèn)嫌疑犯和確認(rèn)他們沒有逮捕錯(cuò)人。

FBI針對(duì)Tor網(wǎng)絡(luò)的惡意代碼分析 一、背景

Tor(The Oninon Router)提供一個(gè)匿名交流網(wǎng)絡(luò)平臺(tái),它使得用戶在瀏覽網(wǎng)頁或訪問其它網(wǎng)絡(luò)服務(wù)時(shí)不會(huì)被跟蹤。作為該網(wǎng)絡(luò)的一部分即所謂的“暗網(wǎng)”(darknet),是指只能通過Tor網(wǎng)絡(luò)訪問的服務(wù)器群組,這些服務(wù)器提供包括社區(qū)論壇、電子郵件等多種服務(wù)。雖然提供這些服務(wù)都是無惡意的,初衷是用來關(guān)注侵犯人權(quán)問題,但是由于匿名的原因吸引了很多有犯罪意圖的人,比如傳播兒童色情。事后執(zhí)法部門也不能追蹤到犯罪者的源IP地址。

2013年,在“暗網(wǎng)”服務(wù)器上發(fā)現(xiàn)了一款惡意軟件,它利用特定Web瀏覽器上的安全漏洞在用戶電腦上執(zhí)行一段代碼。該代碼收集一些用戶信息,發(fā)往弗吉尼亞州的服務(wù)器,之后自毀。就惡意軟件的特征來講,它沒有明顯的惡意意圖。初步推斷是FBI植入,他們?cè)诟ゼ醽喼萦修k事處,曾經(jīng)也派專人開發(fā)過惡意程序,可能是他們創(chuàng)建了它————現(xiàn)在看來是真的。

二、對(duì)Shellcode的逆向分析 1、漏洞利用

漏洞利用代碼用javascript編寫,利用一個(gè)出名的firefox瀏覽器的特定版本(Tor網(wǎng)絡(luò)預(yù)裝的firefox)的漏洞。該漏洞利用代碼經(jīng)過了模糊處理,但通過快速掃描可以看到一長串十六進(jìn)制字符,這些字符是shellcode的前幾個(gè)標(biāo)志性字節(jié),即call操作碼(shellcode經(jīng)常以一個(gè)jump或call開始,因此知道了這些操作碼使得識(shí)別shellcode變得容易起來)。

我不會(huì)在這里分析這個(gè)漏洞,但是要看一下這個(gè)shellcode。

首先,讓我們用一些基本的shellcode原則設(shè)定一個(gè)場景。

2、位置無關(guān)代碼

Shellcode的成功執(zhí)行經(jīng)過了獨(dú)一無二的挑戰(zhàn),因?yàn)樗侵苯幼⑷氲揭粋€(gè)進(jìn)程而不是由Windows加載器加載。因此,我們不知道shellcode位于內(nèi)存中的什么地方,更關(guān)鍵的是,不知道標(biāo)準(zhǔn)的windowsAPI函數(shù)位于什么地方(而通常情況下,Windows加載器會(huì)告訴一個(gè)程序這些信息)。

因此,我們必須使用一系列技巧去獲得這個(gè)信息。FBI惡意程序用了一個(gè)常用的技巧去找出它的內(nèi)存地址:

call start

start:

pop ebp

call函數(shù)將執(zhí)行程序移動(dòng)到start標(biāo)簽處,同時(shí)將程序當(dāng)前執(zhí)行的位置壓入堆棧中(這樣我們稍后可以從call函數(shù)返回)。

在此,我們將要用這個(gè)值,從棧里竊取位置,堆棧彈出的值保存到ebp寄存器。我們現(xiàn)在知道了下一條指令的地址,那么就可以用它來訪問跟我們的shellcode相關(guān)的數(shù)據(jù)。

三、定位Windows API

因?yàn)檎G闆r下Windows加載器會(huì)加載Windows API的位置到我們的程序,所以我們不奢望運(yùn)行一個(gè)shellcode時(shí)能夠知道程序的位置信息。找出API函數(shù)慣用的方法是查看FS段寄存器所指的線程信息塊(thread information block)。我們能夠通過這個(gè)結(jié)構(gòu)體去定位被我們shellcode宿主程序加載的DLLs,然后利用這些DLL的輸出直到找到目標(biāo)函數(shù)為止。當(dāng)然這個(gè)過程是很乏味的,所以,F(xiàn)BI這個(gè)shellcode使用了一個(gè)庫,包含在MetasploitFramwork內(nèi),這是由Stephen Fewer寫的一個(gè)函數(shù)解析器。它的工作原理如下:

push arguments
. . .
push FUNCTIONHASH
call 

這個(gè)函數(shù)的哈希值是由一個(gè)簡單的hash算法生成,以我們調(diào)用函數(shù)的名稱命名。這樣做的目的不是為了混淆代碼(盡管它達(dá)到這個(gè)目的),但只允許我們用一個(gè)32位的DWORD來調(diào)用此函數(shù),而不是一個(gè)長型字符串(shellcode空間往往是有限的)。 值得慶幸的是,我們自己可以計(jì)算出hash值,或者用別人生成的查找表。

四、開始

如果我們對(duì)shellcode的開始進(jìn)行反匯編,如下圖:

我們一旦計(jì)算出指向API解析器的ebp寄存器值,我們就可以在windows的API進(jìn)行哈希調(diào)用前獲取其十六進(jìn)制數(shù)。如此,如果在查找表里查找到那個(gè)值,在那個(gè)值附近查找調(diào)用的函數(shù),并且添加一些注釋,如下圖:

這段代碼執(zhí)行完整性檢查,通過用GET 開始的HTTP請(qǐng)求頭部信息以確保shellcode安全運(yùn)行。然后調(diào)用Windows
API函數(shù)LoadLibrary()載入兩個(gè)動(dòng)態(tài)鏈接庫:ws2_32.dll(用于互聯(lián)網(wǎng)通信的Windows套接字庫)和iphlpapi.dll(WindowsIP輔助庫)。

五、連接到HTTP服務(wù)器

在必要的庫文件都加載完之后,shellcode將執(zhí)行下圖中的操作:

再一次,用相同的步驟,用哈希值查找一個(gè)Windows API函數(shù):connect()函數(shù)。我們可以看見,在[ebp +0x2e1]位置的數(shù)據(jù)作為一個(gè)參數(shù)傳遞給connect()函數(shù)—從手冊(cè)我們知道,那個(gè)參數(shù)是一個(gè)sockaddr結(jié)構(gòu)體(sockaddr structure)。我們知道ebp寄存器指向我們?cè)趦?nèi)存中的地址,使用那個(gè)地址,再加上偏移量,我們就能定位出那些數(shù)據(jù)在內(nèi)存0x2E8處(ebp=0×7)。

因此,我們?cè)诜治鰏ockaddr之前,先給這些代碼添加一些注釋,命名一些內(nèi)存偏移地址,如下圖:

這個(gè)eax寄存器保存著調(diào)用connect()函數(shù)的返回值,如果這個(gè)值為0(來自微軟用戶手冊(cè))表示connect()調(diào)用成功。但是我們成功連接到哪兒?如果我們現(xiàn)在添加一些注釋到我們之前的反匯編文件,基于我們?cè)谖④浻脩羰謨?cè)中能查到的關(guān)于sockaddr結(jié)構(gòu)體的信息,我們可以這樣添加注釋,如下圖:

通過對(duì)IP地址進(jìn)行whois快速查詢,只得到很少信息。如下圖:

六、收集用戶信息

接下來,這個(gè)惡意軟件嘗試獲得windows主機(jī)名—通常情況下這是windows機(jī)器的名字。這可能有助于確認(rèn)嫌疑犯和確認(rèn)他們沒有逮捕錯(cuò)人。

其次,它枚舉了活躍主機(jī)的hostname和IP地址。

使用SendARP()函數(shù)來發(fā)現(xiàn)網(wǎng)絡(luò)中所有電腦的MAC地址。有一些“恰當(dāng)”的方式做到這樣,但是shellocode只能獲得有限的空間去完成這些事。MAC地址將用戶與一張?zhí)囟ǖ木W(wǎng)卡綁定,于是可以通過這些網(wǎng)卡的供應(yīng)鏈來追蹤用戶。

最后,它要構(gòu)建HTTP頭部信息,將MAC地址放進(jìn)Cookie字段,用戶的主機(jī)名放進(jìn)Host字段,并且要以GET請(qǐng)求方式發(fā)送到http://65.222.202.54/05cea4de-951d-4037-bf8f-f69055b279bb。這些十六進(jìn)制數(shù)字的意義不清楚,它們可能是任意選擇或鏈接一個(gè)用戶到特定的接入服務(wù)器。

七、最后階段

這個(gè)shellcode最后階段的唯一目的就是在該shellcode結(jié)束時(shí)運(yùn)行更多的shell代碼—它這樣做的方式稍微有點(diǎn)迂回,我也不知道為什么這樣,也許是一次粗略的嘗試。

那么,最后一歩要怎么做。首先,它利用一些字符串長度操作找出一些被嵌入在其他所有數(shù)據(jù)區(qū)的代碼。那些代碼計(jì)算出我們的HTTP請(qǐng)求字符串結(jié)束的位置,跳過在shellcode結(jié)尾處的所有的無效的空操作指令,然后跳到那里。那里是哪里?誰知道!我被告知有更多的shellcode(這不重要),但是我已經(jīng)沒有時(shí)間來調(diào)試這個(gè)漏洞并獲得它。

構(gòu)建頭部,然后跳轉(zhuǎn)到頭部結(jié)尾處。

查找http頭部結(jié)尾處的無效指令并且跳過它們。

八、運(yùn)行代碼

到目前為止,我以完全靜態(tài)的方式分析了這些代碼—主要是為了完整性。通過運(yùn)行這些代碼能夠更快速的分析它們,同時(shí)可以驗(yàn)證我們的分析是否正確。既然這段惡意代碼沒有任何破壞系統(tǒng)的行為,因此我們可以安全的在真機(jī)上運(yùn)行它。于是運(yùn)行它并觀察它發(fā)送給FBI的確切數(shù)據(jù)。因?yàn)閟hellcode不是一個(gè)exe可執(zhí)行文件,我需要一個(gè)shellcode加載器去運(yùn)行它—-它們快速的分配需要的內(nèi)存,加載shellcode并跳轉(zhuǎn)到該處。這是加載shellcode需要做的—-在調(diào)用真正的shellcode之前會(huì)自動(dòng)斷開。

然后我們啟動(dòng)調(diào)試器跨步執(zhí)行到調(diào)用cnnect()函數(shù)。我們不得不把這個(gè)shellcode的目標(biāo)指向另一臺(tái)我們自己的機(jī)器,便于觀察運(yùn)行結(jié)果。因此,我將讓他指向ip地址為192.168.0.254的77端口,然后在這個(gè)機(jī)器上運(yùn)行netcat程序抓取數(shù)據(jù)。在下圖代碼暫停的箭頭所指處,就是早期通過patch方式來修改sockaddr結(jié)構(gòu)體。

然后我們繼續(xù)跨步執(zhí)行到調(diào)用send()函數(shù),執(zhí)行它,之后我們能看見在netcat終端的輸出,它將輸出它收到的所有數(shù)據(jù)—顯示的那些數(shù)據(jù)原本是發(fā)給FBI。你可以看到,cookie里面的ID包含了我的MAC地址,Host
頭部包含了我的desktop名。

最后,我們跨步執(zhí)行到最后階段—最后的空操作可能是用來注入更多的已經(jīng)提取的shellcode。在那個(gè)十六進(jìn)制查看器窗口可以看見,我們構(gòu)造的那個(gè)HTTP請(qǐng)求已經(jīng)發(fā)出。

九、結(jié)論

這個(gè)惡意軟件從用戶瀏覽器發(fā)送確認(rèn)信息給攻擊機(jī),然后使用戶firefox瀏覽器崩潰。就復(fù)雜性而言,它沒有很明顯的特別之處,也沒有使用一些大家不知道的新技術(shù)。

如果這個(gè)惡意軟件作者是FBI,那么他們需要去回答一些很嚴(yán)肅的問題。這些惡意程序被植入到非美國的服務(wù)器上,并攻擊利用全球用戶的瀏覽器(他們當(dāng)中很多人是無辜的)他們這樣做甚至可能會(huì)得到法律授權(quán)?我不這么認(rèn)為。當(dāng)有人告發(fā)時(shí)FBI是否需要出示他們?cè)?jīng)得到過法律授權(quán)的證據(jù)?未必。我希望他們會(huì)依據(jù)用戶的電腦內(nèi)發(fā)現(xiàn)的證據(jù)和在收到起訴時(shí)取得的證據(jù)—-盡管最初的搜索授權(quán)可能很不靠譜。不管怎么說,我畢竟不是一個(gè)律師。


原文 Analysis of the FBI Tor Malware》,由IDF實(shí)驗(yàn)室李秀烈
翻譯 IDF實(shí)驗(yàn)室 李秀烈

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/11105.html

相關(guān)文章

  • 繼上一批高調(diào)勒索軟件消失后 這7個(gè)新勒索軟件繼承雙重勒索

    摘要:在今年年中一系列高調(diào)的攻擊之后,一些規(guī)模龐大臭名昭著的勒索軟件銷聲匿跡了。與往常一樣,新的勒索軟件團(tuán)伙定期亮相。不要指望勒索軟件真正消失,與其期待控制勒索軟件不如加強(qiáng)自身防御。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;...

    Barry_Ng 評(píng)論0 收藏0
  • 金融科技行業(yè)網(wǎng)絡(luò)安全威脅概覽

    摘要:在眾多端點(diǎn)威脅中,針對(duì)金融部門的最常見的持續(xù)攻擊是網(wǎng)絡(luò)釣魚和勒索軟件攻擊。通過研究,影響金融行業(yè)的勒索軟件攻擊和數(shù)據(jù)泄露的趨勢表明,勒索軟件組是最活躍的。針對(duì)金融機(jī)構(gòu)的累計(jì)攻擊次數(shù)達(dá)起,涉及個(gè)勒索軟件組織。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;ove...

    xietao3 評(píng)論0 收藏0
  • 網(wǎng)絡(luò)黑白》一書所抄襲文章列表

    摘要:網(wǎng)絡(luò)黑白一書所抄襲的文章列表這本書實(shí)在是垃圾,一是因?yàn)樗幕ヂ?lián)網(wǎng)上的文章拼湊而成的,二是因?yàn)槠礈愃教?,連表述都一模一樣,還抄得前言不搭后語,三是因?yàn)閮?nèi)容全都是大量的科普,不涉及技術(shù)也沒有干貨。 《網(wǎng)絡(luò)黑白》一書所抄襲的文章列表 這本書實(shí)在是垃圾,一是因?yàn)樗幕ヂ?lián)網(wǎng)上的文章拼湊而成的,二是因?yàn)槠礈愃教?,連表述都一模一樣,還抄得前言不搭后語,三是因?yàn)閮?nèi)容全都是大量的科普,不涉及技術(shù)...

    zlyBear 評(píng)論0 收藏0
  • 食品和農(nóng)業(yè)組織難逃網(wǎng)絡(luò)攻擊!美國農(nóng)場因勒索軟件攻擊損失900萬美元

    摘要:表示受勒索軟件侵害的食品和農(nóng)業(yè)企業(yè)因支付贖金生產(chǎn)力損失和補(bǔ)救成本而遭受重大經(jīng)濟(jì)損失。公司也可能會(huì)丟失專有信息和個(gè)人身份信息,并可能因勒索軟件攻擊而遭受聲譽(yù)損失。年月,針對(duì)美國一家農(nóng)場的勒索軟件攻擊致其運(yùn)營暫時(shí)關(guān)閉,造成約萬美元的損失。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-siz...

    Jensen 評(píng)論0 收藏0
  • 勒索軟件卷土重來 REvil團(tuán)伙正在重塑形象并發(fā)動(dòng)襲擊

    摘要:勒索軟件卷土重來卷土重來最危險(xiǎn)的勒索軟件團(tuán)伙可能已經(jīng)銷聲匿跡,但這只意味著他們正在進(jìn)行品牌重塑,改進(jìn)戰(zhàn)術(shù),并發(fā)動(dòng)更猛烈的攻擊。阿爾瓦拉多認(rèn)為,事件是勒索軟件集團(tuán)發(fā)生重大變化的先驅(qū)者。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;c...

    番茄西紅柿 評(píng)論0 收藏2637

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<