偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

安全 應(yīng)用安全
Tor(The Oninon Router)提供一個匿名交流網(wǎng)絡(luò)平臺,它使得用戶在瀏覽網(wǎng)頁或訪問其它網(wǎng)絡(luò)服務(wù)時不會被跟蹤。作為該網(wǎng)絡(luò)的一部分即所謂的“暗網(wǎng)”(darknet),是指只能通過Tor網(wǎng)絡(luò)訪問的服務(wù)器群組,這些服務(wù)器提供包括社區(qū)論壇、電子郵件等多種服務(wù)。

一、背景

Tor(The Oninon Router)提供一個匿名交流網(wǎng)絡(luò)平臺,它使得用戶在瀏覽網(wǎng)頁或訪問其它網(wǎng)絡(luò)服務(wù)時不會被跟蹤。作為該網(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植入,他們在弗吉尼亞州有辦事處,曾經(jīng)也派專人開發(fā)過惡意程序,可能是他們創(chuàng)建了它—現(xiàn)在看來是真的。

二、對Shellcode的逆向分析

1、漏洞利用

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

我不會在這里分析這個漏洞,但是要看一下這個shellcode。

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

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

Shellcode的成功執(zhí)行經(jīng)過了獨一無二的挑戰(zhàn),因為它是直接注入到一個進程而不是由Windows加載器加載。因此,我們不知道shellcode位于內(nèi)存中的什么地方,更關(guān)鍵的是,不知道標(biāo)準(zhǔn)的windowsAPI函數(shù)位于什么地方(而通常情況下,Windows加載器會告訴一個程序這些信息)。

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

call start
start:
pop ebp

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

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

三、定位Windows API

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

push arguments
. . .
push FUNCTIONHASH
call<Stephen’sResolver>

這個函數(shù)的哈希值是由一個簡單的hash算法生成,以我們調(diào)用函數(shù)的名稱命名。這樣做的目的不是為了混淆代碼(盡管它達(dá)到這個目的),但只允許我們用一個32位的DWORD來調(diào)用此函數(shù),而不是一個長型字符串(shellcode空間往往是有限的)。

值得慶幸的是,我們自己可以計算出hash值,或者用別人生成的查找表。

四、開始

如果我們對shellcode的開始進行反匯編,如下圖:

 

圖片1

 

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

 

圖片2

 

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

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

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

 

圖片3

 

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

 

圖片4

 

因此,我們在分析sockaddr之前,先給這些代碼添加一些注釋,命名一些內(nèi)存偏移地址,如下圖:

 

圖片5

 

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

 

圖片6

 

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

 

圖片7

 

六、收集用戶信息

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

 

圖片9

 

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

 

圖片10

 

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

 

圖片11

 

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

 

圖片12

 

七、最后階段

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

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

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

 

圖片13

 

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

 

圖片14

 

八、運行代碼

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

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

 

圖片15

 

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

 

圖片16

 

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

 

圖片17

 

九、結(jié)論

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

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

本文來自英國樸茨茅斯大學(xué)加雷斯.歐文的博文《Analysis of the FBI Tor Malware》,由IDF實驗室李秀烈翻譯。

責(zé)任編輯:藍(lán)雨淚 來源: IDF實驗室博客
相關(guān)推薦

2013-11-05 15:06:29

scdbg惡意代碼分析安全工具

2013-11-08 10:42:09

代碼工具

2017-03-27 15:46:14

2016-11-24 11:07:54

Andriod惡意代碼

2021-11-17 10:40:33

網(wǎng)絡(luò)安全惡意代碼網(wǎng)絡(luò)攻擊

2011-08-09 11:45:45

2022-09-26 11:40:59

網(wǎng)絡(luò)釣魚惡意代碼

2014-10-23 09:40:57

2014-12-12 14:55:42

移動惡意代碼移動安全

2014-10-29 14:43:05

2013-07-27 21:04:58

2014-10-23 18:26:02

破殼漏洞Shellshock遠(yuǎn)程代碼執(zhí)行漏洞

2021-03-01 11:33:03

微軟惡意代碼惡意軟件

2011-08-09 11:51:37

2014-12-30 16:37:11

2013-12-10 14:54:58

2010-09-03 12:01:17

SQL刪除

2019-05-27 11:13:07

2020-08-10 09:00:16

微軟瀏覽器Windows

2015-09-18 19:05:35

惡意代碼病毒Xcode
點贊
收藏

51CTO技術(shù)棧公眾號