《電子數(shù)據(jù)取證技術(shù)》課件-第9章_第1頁(yè)
《電子數(shù)據(jù)取證技術(shù)》課件-第9章_第2頁(yè)
《電子數(shù)據(jù)取證技術(shù)》課件-第9章_第3頁(yè)
《電子數(shù)據(jù)取證技術(shù)》課件-第9章_第4頁(yè)
《電子數(shù)據(jù)取證技術(shù)》課件-第9章_第5頁(yè)
已閱讀5頁(yè),還剩202頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第9章網(wǎng)絡(luò)取證技術(shù)9.1網(wǎng)絡(luò)取證概述9.2網(wǎng)絡(luò)實(shí)時(shí)取證與分析9.3網(wǎng)絡(luò)非實(shí)時(shí)取證與分析

9.1網(wǎng)絡(luò)取證概述

網(wǎng)絡(luò)取證對(duì)于電子數(shù)據(jù)取證來(lái)說(shuō),其重要性毋庸置疑。在現(xiàn)階段的涉網(wǎng)違法犯罪打擊過(guò)程中,涉網(wǎng)電子證據(jù)的比例在逐年增加,尤其是網(wǎng)絡(luò)新技術(shù)和新應(yīng)用的不斷涌現(xiàn),對(duì)涉網(wǎng)電子數(shù)據(jù)的提取固定提出了更高的要求。從涉網(wǎng)電子數(shù)據(jù)取證的技術(shù)來(lái)說(shuō),主要分實(shí)時(shí)性網(wǎng)絡(luò)取證和非實(shí)時(shí)性網(wǎng)絡(luò)取證兩種,實(shí)時(shí)性網(wǎng)絡(luò)取證主要是對(duì)正在傳輸過(guò)程中的電子數(shù)據(jù)進(jìn)行提取分析,非實(shí)時(shí)性網(wǎng)絡(luò)取證主要是對(duì)網(wǎng)絡(luò)行為的相關(guān)痕跡進(jìn)行提取和固定。

9.1.1網(wǎng)絡(luò)取證的特殊性

相對(duì)于傳統(tǒng)的電子數(shù)據(jù)取證,網(wǎng)絡(luò)取證是一個(gè)新興的取證領(lǐng)域。隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)取證的需求量在不斷加大,其重要性不言而喻。同時(shí),由于網(wǎng)絡(luò)技術(shù)不斷推陳出新,網(wǎng)絡(luò)犯罪的表現(xiàn)形式也在不斷變化,因此給取證人員帶來(lái)了較大難度。

1.網(wǎng)絡(luò)取證的概念

計(jì)算機(jī)取證是指對(duì)存在于計(jì)算機(jī)及相關(guān)外部設(shè)備中的計(jì)算機(jī)犯罪證據(jù)進(jìn)行確定、獲取、分析和提取,以及在法庭出示的過(guò)程。計(jì)算機(jī)取證涵蓋法學(xué)、計(jì)算機(jī)科學(xué)和刑事偵查學(xué)等諸多學(xué)科,在取證過(guò)程中還需要根據(jù)取證的標(biāo)準(zhǔn)和方法進(jìn)行相關(guān)的流程控制,這些在前面章節(jié)中均已詳細(xì)闡述。網(wǎng)絡(luò)取證是計(jì)算機(jī)取證的一個(gè)重要分支,有別于計(jì)算機(jī)單機(jī)取證,網(wǎng)絡(luò)取證是指借助于已構(gòu)建好的網(wǎng)絡(luò)環(huán)境,對(duì)存在于本地計(jì)算機(jī)或網(wǎng)絡(luò)存儲(chǔ)介質(zhì)中的計(jì)算機(jī)犯罪證據(jù)進(jìn)行確定、獲取、分析和提取的過(guò)程。

網(wǎng)絡(luò)取證的內(nèi)容主要涉及兩個(gè)方面:

一是來(lái)源取證,指取證目的主要是確定犯罪嫌疑人及其所在位置,取證內(nèi)容主要包括IP地址、MAC地址、電子郵件信箱、軟件賬號(hào)等;

二是事實(shí)取證,指取證目的不是查明犯罪嫌疑人是誰(shuí),而是要確定犯罪實(shí)施的過(guò)程和具體內(nèi)容,取證內(nèi)容主要包括文件內(nèi)容調(diào)查、使用痕跡調(diào)查、日志文件分析、網(wǎng)絡(luò)狀態(tài)和數(shù)據(jù)包分析等。

2.網(wǎng)絡(luò)電子證據(jù)的特點(diǎn)

網(wǎng)絡(luò)電子證據(jù)是通過(guò)網(wǎng)絡(luò)進(jìn)行傳輸?shù)木W(wǎng)絡(luò)數(shù)據(jù),其存在形式是電磁或電子脈沖。與傳統(tǒng)證據(jù)一樣,網(wǎng)絡(luò)電子證據(jù)必須是可信的、準(zhǔn)確的、完整的、符合法律法規(guī)的證據(jù)。但由于網(wǎng)絡(luò)電子證據(jù)的存在形式依賴于網(wǎng)絡(luò)傳輸協(xié)議,缺乏可見的實(shí)體,采用不同的傳輸協(xié)議,其格式及傳輸方式就會(huì)不同。因此,網(wǎng)絡(luò)電子證據(jù)必須通過(guò)專門工具和技術(shù)來(lái)進(jìn)行正確的提取和分析,使之具備證明案件事實(shí)的能力。

網(wǎng)絡(luò)電子證據(jù)具有以下特點(diǎn):

(1)表現(xiàn)形式的多樣性。

(2)存儲(chǔ)介質(zhì)的電子性。

(3)準(zhǔn)確性。

(4)脆弱性。

(5)海量性。

(6)廣域性。

3.網(wǎng)絡(luò)取證的難點(diǎn)

隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,犯罪嫌疑人采用的技術(shù)越來(lái)越高明,要偵破此類案件,需要依賴特定的技術(shù)裝備并要求偵查人員具備較高的計(jì)算機(jī)水平。目前,我國(guó)大部分地區(qū)還未配備受過(guò)專業(yè)訓(xùn)練并掌握相關(guān)偵破技術(shù)的偵查人員,現(xiàn)有辦案人員缺乏計(jì)算機(jī)網(wǎng)絡(luò)知識(shí)。這些因素導(dǎo)致計(jì)算機(jī)網(wǎng)絡(luò)取證工作在偵查和取證方面都存在著一定的困難。

計(jì)算機(jī)網(wǎng)絡(luò)犯罪主體多種多樣,犯罪手段花樣翻新,犯罪行為隱蔽性強(qiáng),而且作案時(shí)間短、傳播速度快、不易被人發(fā)現(xiàn)。由于犯罪現(xiàn)場(chǎng)留下的痕跡是數(shù)字化痕跡,計(jì)算機(jī)網(wǎng)絡(luò)犯罪現(xiàn)場(chǎng)也不像傳統(tǒng)犯罪現(xiàn)場(chǎng)那么明確,這些無(wú)疑會(huì)加大偵查計(jì)算機(jī)網(wǎng)絡(luò)犯罪案件的難度。以本書作者曾參與的多起侵害公私財(cái)產(chǎn)為目的的計(jì)算機(jī)網(wǎng)絡(luò)犯罪案件來(lái)看,犯罪嫌疑人在虛擬的網(wǎng)絡(luò)空間中,可以利用計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)在不同的時(shí)間和地點(diǎn)進(jìn)行犯罪活動(dòng),或采用DDoS(Distributed

DenialofService,分布式拒絕服務(wù))技術(shù)對(duì)類似網(wǎng)吧這樣的公共上網(wǎng)場(chǎng)所實(shí)施攻擊以致其網(wǎng)絡(luò)癱瘓;

或采用網(wǎng)頁(yè)掛馬技術(shù),在捕獲大量“肉機(jī)”(受人非法控制的具有最高管理權(quán)限的遠(yuǎn)程計(jì)算機(jī))的同時(shí),竊取大量個(gè)人網(wǎng)銀賬號(hào)、公司賬務(wù)等敏感隱私信息。而有些企業(yè)的網(wǎng)絡(luò)技術(shù)人員和負(fù)責(zé)人在發(fā)現(xiàn)網(wǎng)絡(luò)入侵事件后,擔(dān)心損害企業(yè)在用戶心目中的形象,對(duì)所受到的網(wǎng)絡(luò)攻擊隱瞞不報(bào)或自行重建系統(tǒng)排除故障了事,這樣往往破壞了犯罪嫌疑人留下的犯罪證據(jù),延誤了偵查破案時(shí)機(jī)。

計(jì)算機(jī)系統(tǒng)內(nèi)各種數(shù)據(jù)資料形態(tài)各異,使人不易察覺到計(jì)算機(jī)系統(tǒng)內(nèi)發(fā)生的變化。偵查人員在計(jì)算機(jī)網(wǎng)絡(luò)犯罪現(xiàn)場(chǎng)對(duì)本地計(jì)算機(jī)硬盤或其他網(wǎng)絡(luò)存儲(chǔ)介質(zhì)進(jìn)行取證時(shí),可能誤入犯罪嫌疑人設(shè)計(jì)好的圈套,收集到被篡改的證據(jù);另外,由于目前計(jì)算機(jī)網(wǎng)絡(luò)取證技術(shù)尚未成熟,存在局限性,犯罪嫌疑人由此采用了一些反取證技術(shù),如數(shù)據(jù)擦除、數(shù)據(jù)隱藏和數(shù)據(jù)加密,只需敲擊幾下鍵盤,在很短時(shí)間內(nèi)就可以銷毀犯罪記錄,這些都大大增加了對(duì)計(jì)算機(jī)網(wǎng)絡(luò)犯罪進(jìn)行調(diào)查取證的難度。

9.1.2常見網(wǎng)絡(luò)協(xié)議介紹

簡(jiǎn)單來(lái)說(shuō),協(xié)議就是計(jì)算機(jī)與計(jì)算機(jī)之間通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)通信時(shí)達(dá)成的一種約定。就如兩個(gè)人對(duì)話,雙方都必須能聽得懂對(duì)方的語(yǔ)言,或者兩者之間有一種雙方都會(huì)意的溝通方式,如果兩者之間沒(méi)有這樣的約定,那么就會(huì)出現(xiàn)“雞同鴨講”的情況,雙方無(wú)法溝通。計(jì)算機(jī)通信也是如此,為了能實(shí)現(xiàn)計(jì)算機(jī)之間的通信交互,兩者必須有一種共同能理解的約定,這就是人們所稱的協(xié)議?;ヂ?lián)網(wǎng)協(xié)議中,比較有代表性的有IP協(xié)議、TCP協(xié)議、HTTP協(xié)議等。

OSI參考模型是學(xué)術(shù)和法律上的國(guó)際標(biāo)準(zhǔn),是完整的權(quán)威的網(wǎng)絡(luò)參考模型;而TCP/IP參考模型則是事實(shí)上的國(guó)際標(biāo)準(zhǔn),即現(xiàn)實(shí)生活中被廣泛使用的網(wǎng)絡(luò)參考模型。在TCP/IP模型中,計(jì)算機(jī)信息系統(tǒng)按照應(yīng)用程序、操作系統(tǒng)、設(shè)備驅(qū)動(dòng)程序與網(wǎng)絡(luò)接口3個(gè)層面進(jìn)行劃分,相關(guān)的計(jì)算機(jī)通信協(xié)議主要分布于TCP/IP模型的應(yīng)用層、傳輸層和互聯(lián)網(wǎng)層,與OSI參考模型的分層稍有不同,但是各種協(xié)議都能對(duì)應(yīng)到OSI參考模型中,如圖9-1所示。

圖9-1

TCP/IP模型與OSI參考模型的對(duì)應(yīng)

數(shù)據(jù)包在兩個(gè)模型中都是以報(bào)文的形式存在的,數(shù)據(jù)包的結(jié)構(gòu)可以分成兩個(gè)部分:報(bào)頭和內(nèi)容。數(shù)據(jù)在發(fā)送方頂層至底層的傳遞過(guò)程中,到達(dá)相應(yīng)層會(huì)添加一個(gè)報(bào)頭,將原先帶有上一層報(bào)頭的數(shù)據(jù)包整體作為內(nèi)容部分存入新的數(shù)據(jù)包,實(shí)現(xiàn)了層層加報(bào)頭的特點(diǎn);在接收方,則按照這樣的模式自下而上層層解包,最終實(shí)現(xiàn)數(shù)據(jù)的傳輸。在TCP/IP分層模型中,數(shù)據(jù)包也與OSI參考模型一樣,通過(guò)分層與分發(fā)的方式進(jìn)行封裝傳輸,如需要傳輸?shù)臄?shù)據(jù)在傳輸層中增加了一個(gè)TCP的報(bào)頭,形成TCP中的數(shù)據(jù)包,傳輸至網(wǎng)絡(luò)層;到達(dá)網(wǎng)絡(luò)層后又增加了一個(gè)IP的報(bào)頭,傳輸至數(shù)據(jù)鏈路層,形成以太網(wǎng)的數(shù)據(jù)包進(jìn)行傳輸,如圖9-2所示。

圖9-2層層加報(bào)頭

1.數(shù)據(jù)鏈路層協(xié)議解析

眾所周知,電纜中傳輸?shù)亩际?和1兩種信號(hào),只有區(qū)分0和1的各種不同的組合意義,才能將數(shù)據(jù)傳輸?shù)恼Z(yǔ)義進(jìn)行表達(dá),否則就是一片亂碼。數(shù)據(jù)鏈路層就承擔(dān)了這樣的職能,在電纜傳輸?shù)纳戏酱_定了0和1的分組方式。

由于通信傳輸發(fā)展是一個(gè)漸變的過(guò)程,早期各通信公司在電信號(hào)的分組中均采用自己的公司標(biāo)準(zhǔn),沒(méi)有形成一個(gè)國(guó)際行業(yè)標(biāo)準(zhǔn),導(dǎo)致不同廠商之間的通信設(shè)備無(wú)法通用。為了實(shí)現(xiàn)標(biāo)準(zhǔn)統(tǒng)一,以太網(wǎng)這種協(xié)議逐漸被各廠家接受,并迅速占據(jù)了主導(dǎo)地位。以太網(wǎng)規(guī)定,一組電信號(hào)構(gòu)成一個(gè)數(shù)據(jù)包,稱為幀(Frame);每一幀分成兩個(gè)部分:標(biāo)頭(Head)和數(shù)據(jù)(Data)。因此,數(shù)據(jù)鏈路層的數(shù)據(jù)包就稱為以太網(wǎng)數(shù)據(jù)包,它由標(biāo)頭和數(shù)據(jù)兩部分組成。其中,標(biāo)頭包含數(shù)據(jù)包的一些說(shuō)明項(xiàng),如發(fā)送者、接收者、數(shù)據(jù)類型等。

為了標(biāo)識(shí)標(biāo)頭中的發(fā)送者和接收者信息,以太網(wǎng)規(guī)定,接入網(wǎng)絡(luò)的所有設(shè)備都必須具有網(wǎng)卡接口。數(shù)據(jù)包必須從一塊網(wǎng)卡傳送到另一塊網(wǎng)卡,網(wǎng)卡地址就是數(shù)據(jù)包的發(fā)送地址和接收地址,也稱MAC地址。每塊網(wǎng)卡出廠時(shí)都有全世界獨(dú)一無(wú)二的MAC地址,長(zhǎng)度是48位的二進(jìn)制數(shù),通常用12個(gè)十六進(jìn)制數(shù)表示。其中,前6個(gè)十六進(jìn)制數(shù)是廠商編號(hào),后6個(gè)十六進(jìn)制數(shù)是該廠商的網(wǎng)卡流水號(hào),如圖9-3所示。有了MAC地址,就可以定位網(wǎng)卡和數(shù)據(jù)包的路徑。

圖9-3

MAC地址

2.網(wǎng)絡(luò)層協(xié)議解析

根據(jù)以太網(wǎng)的協(xié)議,每發(fā)送一個(gè)數(shù)據(jù)包就廣播一次,那么就會(huì)出現(xiàn)數(shù)據(jù)傳輸阻塞的問(wèn)題。假設(shè)全世界所有的計(jì)算機(jī)都僅僅依靠MAC地址和廣播方式進(jìn)行數(shù)據(jù)包傳輸,每一臺(tái)計(jì)算機(jī)發(fā)出的數(shù)據(jù)包都同步廣播到全世界其他計(jì)算機(jī),再一一比對(duì)判斷,這樣顯然是低效、不現(xiàn)實(shí)的。為此,將廣播設(shè)定在發(fā)送者所在的局域網(wǎng)內(nèi),相對(duì)于互聯(lián)網(wǎng)來(lái)說(shuō)就是一個(gè)子網(wǎng),這樣才能提高通信效率。所以,互聯(lián)網(wǎng)是由一個(gè)個(gè)子網(wǎng)組成的更大的子網(wǎng),一級(jí)一級(jí)組網(wǎng),最終構(gòu)成了互聯(lián)網(wǎng)。

既然是通過(guò)多層組網(wǎng)的方式,那么僅僅依靠MAC地址是無(wú)法實(shí)現(xiàn)不同子網(wǎng)間數(shù)據(jù)包的傳輸?shù)?。因此,在互?lián)網(wǎng)中設(shè)計(jì)的傳輸模式是:先行判斷那些MAC是否屬于同一個(gè)子網(wǎng),如果是則采用廣播方式發(fā)送,如果不是則采用路由方式發(fā)送。因此,需要引用一個(gè)新的地址模式,使人們能夠區(qū)分哪些計(jì)算機(jī)屬于同一個(gè)子網(wǎng),這種地址稱為網(wǎng)絡(luò)地址,即IP地址。在網(wǎng)絡(luò)層,IP地址是基于IP協(xié)議來(lái)定義的。IP地址目前有IPv4(InternetProtocolversion4)和IPv6(InternetProtocolversion6)兩版,又稱互聯(lián)網(wǎng)通信協(xié)議第四/六版。目前,主流的IP地址主要是IPv4,網(wǎng)絡(luò)地址由32個(gè)二進(jìn)制位組成。習(xí)慣上,一個(gè)IP地址用4段十進(jìn)制數(shù)表示,范圍為~55,如圖9-4所示。

圖9-4

IP地址

互聯(lián)網(wǎng)上的每一臺(tái)計(jì)算機(jī)都會(huì)被分配到一個(gè)IP地址,這個(gè)地址由兩部分組成,前一部分代表網(wǎng)絡(luò),后一部分代表主機(jī)。例如,IP地址是一個(gè)32位的地址,假定它的網(wǎng)絡(luò)部分是前24位(172.16.254),那么主機(jī)部分就是后8位(1)。處于同一個(gè)子網(wǎng)絡(luò)的計(jì)算機(jī),它們IP地址的網(wǎng)絡(luò)部分必定是相同的,即應(yīng)該與處于同一個(gè)子網(wǎng)絡(luò),而最后的2與1則是同一子網(wǎng)內(nèi)兩臺(tái)不同計(jì)算機(jī)(主機(jī))的編號(hào)。目前,IP地址主要分為5大類,根據(jù)不同的網(wǎng)絡(luò)號(hào)進(jìn)行區(qū)分,如表9-1所示。

當(dāng)然,僅僅根據(jù)一個(gè)IP地址還無(wú)法判斷網(wǎng)絡(luò)部分。例如,有10這樣一個(gè)IP地址,網(wǎng)絡(luò)部分是前24位還是前16位無(wú)法直接判斷,需要有一個(gè)標(biāo)識(shí)來(lái)區(qū)分是否在同一個(gè)子網(wǎng)中。因此,人們又引用了子網(wǎng)掩碼的概念。子網(wǎng)掩碼就是表示子網(wǎng)絡(luò)特征的一個(gè)參數(shù),它在形式上等同于IP地址,也是一個(gè)32位二進(jìn)制數(shù)字,它的網(wǎng)絡(luò)部分全部為1,主機(jī)部分全部為0。例如,IP地址10,如果已知網(wǎng)絡(luò)部分是前24位,主機(jī)部分是后8位,那么子網(wǎng)絡(luò)掩碼就是11111111.11111111.11111111.00000000,寫成十進(jìn)制就是,如圖9-5所示。圖9-5子網(wǎng)掩碼

通常,人們把網(wǎng)絡(luò)層使用的路由器稱為網(wǎng)關(guān)。路由器上面有MAC地址和MAC地址對(duì)應(yīng)的IP地址,而網(wǎng)關(guān)是網(wǎng)絡(luò)層的概念,因此它只有IP地址。目前很多局域網(wǎng)采用路由器接入網(wǎng)絡(luò),因此現(xiàn)在習(xí)慣性認(rèn)為網(wǎng)關(guān)就是路由器的IP地址。路由器是尋址在網(wǎng)絡(luò)層的設(shè)備,雖然路由器上有MAC地址和IP地址,但并不能僅僅通過(guò)MAC地址尋址,必須通過(guò)IP地址尋址。

相對(duì)于路由器,平時(shí)也常用網(wǎng)絡(luò)交換機(jī)。網(wǎng)絡(luò)交換機(jī)是一個(gè)擴(kuò)大網(wǎng)絡(luò)的器材,能為子網(wǎng)提供更多的連接端口,以便連接更多的計(jì)算機(jī)。交換機(jī)與路由器的區(qū)別主要有:一是工作層次不同,交換機(jī)主要工作在數(shù)據(jù)鏈路層(第二層),路由器工作在網(wǎng)絡(luò)層(第三層)。二是轉(zhuǎn)發(fā)依據(jù)不同,交換機(jī)轉(zhuǎn)發(fā)依據(jù)的對(duì)象是MAC地址,路由器轉(zhuǎn)發(fā)依據(jù)的對(duì)象是IP地址。三是主要功能不同,交換機(jī)主要用于組建局域網(wǎng),連接同屬于一個(gè)(廣播域)子網(wǎng)的所有設(shè)備,負(fù)責(zé)子網(wǎng)內(nèi)部通信(廣播);而路由器的主要功能是將由交換機(jī)組建好的局域網(wǎng)相互連接起來(lái),將它們接入互聯(lián)網(wǎng)。因此,交換機(jī)能實(shí)現(xiàn)的功能路由器均能實(shí)現(xiàn),而且路由器還具有分割廣播域(子網(wǎng))、提供防火墻的功能,但路由器配置比交換機(jī)復(fù)雜,如圖9-6所示。

圖9-6路由器配置

假如數(shù)據(jù)包從主機(jī)145.17生成,需要將該數(shù)據(jù)包發(fā)送到另一個(gè)主機(jī)146.21,則先寫好數(shù)據(jù)包的標(biāo)頭,即寫清楚發(fā)送者的IP地址(5)和接收者的IP地址(199.165.146.21),然后145.17會(huì)參照自己的路由表(RoutingTable)(里面有兩行記錄,見圖9-7)進(jìn)行傳送。

圖9-7主機(jī)145.17的路由表

中間的路由器在收到IP包之后,會(huì)提取目的地IP地址,然后對(duì)照自己的路由表(見圖9-8)進(jìn)行傳送。

圖9-8中間路由器的路由表

通過(guò)這樣的方式路由,IP包可以進(jìn)一步接力,到達(dá)更遠(yuǎn)的主機(jī)。IP包從主機(jī)出發(fā),根據(jù)沿途路由器的路由表指導(dǎo),在路由間接力。IP包最終到達(dá)某個(gè)路由器,這個(gè)路由器與目標(biāo)主機(jī)位于一個(gè)局域網(wǎng)中,可以直接建立數(shù)據(jù)鏈路層的(廣播)通信。最后,IP包被送到目標(biāo)主機(jī),這樣一個(gè)過(guò)程稱為路由(Routing)。整個(gè)過(guò)程中,IP包不斷被主機(jī)和路由器封裝到幀并拆開,借助連接層,在局域網(wǎng)的各個(gè)網(wǎng)卡之間傳送幀。被傳輸?shù)腎P包的內(nèi)容保持完整,沒(méi)有發(fā)生變化,最終的效果是一個(gè)IP包從一個(gè)主機(jī)傳送到另一個(gè)主機(jī)。利用IP包傳輸,不需要考慮底層(如數(shù)據(jù)鏈路層)發(fā)生了什么。

在上面的過(guò)程中,實(shí)際上只是假設(shè)了每一臺(tái)主機(jī)和路由器都能了解局域網(wǎng)內(nèi)的IP地址和MAC地址的對(duì)應(yīng)關(guān)系,這是實(shí)現(xiàn)IP包封裝到幀的基本條件。IP地址與MAC地址的對(duì)應(yīng)則是通過(guò)ARP協(xié)議傳播到局域網(wǎng)的每個(gè)主機(jī)和路由器中的。每一臺(tái)主機(jī)或路由器中都有一個(gè)ARPCache,用以存儲(chǔ)局域網(wǎng)內(nèi)IP地址和MAC地址的對(duì)應(yīng)關(guān)系。

ARP介于數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層之間,ARP包需要包裹在一個(gè)幀中。ARP協(xié)議的工作方式為:主機(jī)發(fā)出一個(gè)ARP包,該ARP包中包含自己的IP地址和MAC地址。通過(guò)ARP包,主機(jī)以廣播的形式詢問(wèn)局域網(wǎng)上所有的主機(jī)和路由器:“我是IP地址××××,我的MAC地址是××××,有人知道IP地址××××的MAC地址嗎?”擁有該IP地址的主機(jī)會(huì)回復(fù)發(fā)出請(qǐng)求的主機(jī):“哦,我知道,這個(gè)IP地址屬于我的一個(gè)網(wǎng)卡,它的MAC地址是××××××?!?/p>

由于發(fā)送ARP請(qǐng)求的主機(jī)采取的是廣播形式,并附帶有自己的IP地址和MAC地址,因此其他主機(jī)和路由器會(huì)同時(shí)檢查自己的ARPCache,如果不符合,則更新自己的ARPCache。就這樣,經(jīng)過(guò)幾次ARP請(qǐng)求之后,ARPCache會(huì)達(dá)到穩(wěn)定。如果局域網(wǎng)中的設(shè)備發(fā)生變動(dòng),則ARP會(huì)重復(fù)上面的過(guò)程。當(dāng)然,ARP協(xié)議只用于IPv4。IPv6使用NeighborDiscoveryProtocol來(lái)替代ARP的功能。

3.傳輸層協(xié)議解析

依靠MAC地址和IP地址可以解決互聯(lián)網(wǎng)上的兩臺(tái)計(jì)算機(jī)之間的通信問(wèn)題。但是,在實(shí)際應(yīng)用中發(fā)現(xiàn),服務(wù)器的很多程序和進(jìn)程都需要網(wǎng)絡(luò)支持,如網(wǎng)絡(luò)遠(yuǎn)程連接,數(shù)據(jù)庫(kù)的遠(yuǎn)程管理等,不同的網(wǎng)絡(luò)應(yīng)用如果同時(shí)使用,則需要在數(shù)據(jù)包傳輸時(shí)區(qū)分?jǐn)?shù)據(jù)包的歸屬問(wèn)題,否則會(huì)出現(xiàn)數(shù)據(jù)包混亂的情況。為了解決這個(gè)問(wèn)題,端口號(hào)就被引用了。端口號(hào)就是每一個(gè)使用網(wǎng)卡的程序的編號(hào)。每個(gè)數(shù)據(jù)包發(fā)送到主機(jī)特定的端口,所以不同的程序就能取到自己想要的數(shù)據(jù)包。

端口編號(hào)是一個(gè)0~65?535的整數(shù),正好是16個(gè)二進(jìn)制位。0~1023的端口被系統(tǒng)占用,用戶只能使用大于1023的端口。不管是瀏覽網(wǎng)頁(yè)還是聊天,應(yīng)用程序都會(huì)隨機(jī)選用一個(gè)端口,然后與服務(wù)器建立相應(yīng)的端口關(guān)系。因此,傳輸層的功能就是建立端口到端口之間的通信。相比之下,網(wǎng)絡(luò)層的功能是建立主機(jī)到主機(jī)的通信。只要確定主機(jī)和端口號(hào),就能實(shí)現(xiàn)程序之間的交流。

很明顯,傳輸層是建立端口到端口之間的通信,也可以說(shuō)是進(jìn)程間的通信。進(jìn)程間的通信分為兩種:一種是主機(jī)內(nèi)部(或終端內(nèi)部)進(jìn)程間的通信,其由終端或主機(jī)上的操作系統(tǒng)決定,如在Android操作系統(tǒng)中進(jìn)程間的通信就是AIDL(AndroidInterfaceDefinitionLanguage);另一種是跨主機(jī)進(jìn)程間的通信或者網(wǎng)絡(luò)進(jìn)程間的通信,也稱Socket通信(Socket又稱套接字)。

在傳輸層,自然離不開UDP/TCP協(xié)議,這兩個(gè)協(xié)議都是傳輸層的協(xié)議,主要作用就是在應(yīng)用層的數(shù)據(jù)包標(biāo)頭加上端口號(hào)(或者在IP協(xié)議的數(shù)據(jù)包中插入端口號(hào))。UDP協(xié)議的優(yōu)點(diǎn)是比較簡(jiǎn)單,容易實(shí)現(xiàn),但是可靠性較差,一旦數(shù)據(jù)包發(fā)出,無(wú)法知道對(duì)方是否收到。TCP協(xié)議可以近似認(rèn)為是有確認(rèn)機(jī)制的UDP協(xié)議,每發(fā)出一個(gè)數(shù)據(jù)包都要求確認(rèn),如果有一個(gè)數(shù)據(jù)包遺失,就收不到確認(rèn),發(fā)送方就會(huì)重發(fā)這個(gè)數(shù)據(jù)包。TCP協(xié)議主要的確認(rèn)機(jī)制是“三次握手,四次揮手”。

三次握手的原理如下:

第一次握手:建立連接時(shí),客戶端發(fā)送SYN(SynchronizeSequenceNumbers,同步序列編號(hào))包(syn=j)到服務(wù)器,并進(jìn)入SYN_SENT狀態(tài),等待服務(wù)器確認(rèn)。

第二次握手:服務(wù)器收到SYN包,必須確認(rèn)客戶的SYN(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài)。

第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED(TCP連接成功)狀態(tài),完成三次握手,客戶端與服務(wù)器開始傳送數(shù)據(jù)。

在三次握手協(xié)議中,服務(wù)器數(shù)據(jù)會(huì)維護(hù)一個(gè)未連接隊(duì)列,該隊(duì)列為每個(gè)客戶端的SYN包(syn=j)開設(shè)一個(gè)條目,該條目表明服務(wù)器已收到SYN包,并向客戶發(fā)出確認(rèn),正在等待客戶的確認(rèn)包。這些條目標(biāo)識(shí)的連接在服務(wù)器中處于SYN_RECV狀態(tài),當(dāng)服務(wù)器收到客戶的確認(rèn)包時(shí),刪除該條目,服務(wù)器進(jìn)入ESTABLISHED狀態(tài)。

四次揮手的原理如下:

對(duì)于一個(gè)已經(jīng)建立的連接,TCP使用四次揮手來(lái)釋放連接(使用一個(gè)帶有FIN附加標(biāo)記的報(bào)文段)。

第一步,當(dāng)主機(jī)A的應(yīng)用程序通知TCP數(shù)據(jù)已經(jīng)發(fā)送完畢時(shí),TCP向主機(jī)B發(fā)送一個(gè)帶有FIN附加標(biāo)記的報(bào)文段(FIN表示英文finish)。

第二步,主機(jī)B收到這個(gè)FIN報(bào)文段之后,并不立即用FIN報(bào)文段回復(fù)主機(jī)A,而是先向主機(jī)A發(fā)送一個(gè)確認(rèn)序號(hào)ACK,同時(shí)通知自己相應(yīng)的應(yīng)用程序。對(duì)方要求關(guān)閉連接(先發(fā)送ACK的目的是防止在這段時(shí)間內(nèi)對(duì)方重傳FIN報(bào)文段)。

第三步,主機(jī)B的應(yīng)用程序告訴TCP“我要徹底地關(guān)閉連接”,TCP向主機(jī)A送一個(gè)FIN報(bào)文段。

第四步,主機(jī)A收到該FIN報(bào)文段后,向主機(jī)B發(fā)送一個(gè)ACK表示連接徹底釋放。

4.應(yīng)用層協(xié)議解析

在前面幾層的基礎(chǔ)上,數(shù)據(jù)包完成了傳遞,需要在最終的應(yīng)用中進(jìn)行解釋。由于互聯(lián)網(wǎng)是開放架構(gòu),數(shù)據(jù)來(lái)源五花八門,具體到不同的設(shè)備及不同的操作系統(tǒng)上數(shù)據(jù)呈現(xiàn)格式是不同的,因此需要轉(zhuǎn)化成統(tǒng)一的、用戶能夠感知的聲音、圖片、文字等信息,這就是應(yīng)用層做的事情,確保在網(wǎng)絡(luò)流中數(shù)據(jù)格式的標(biāo)準(zhǔn)化。應(yīng)用層中常見的協(xié)議主要有FTP、HTTP、Telnet、SMTP等。

1)

FTP協(xié)議

FTP協(xié)議用于Internet上的控制文件的雙向傳輸。同時(shí),它也是一個(gè)應(yīng)用程序(Application)。基于不同的操作系統(tǒng)有不同的FTP應(yīng)用程序,而所有這些應(yīng)用程序都遵守同一種協(xié)議以便傳輸文件。在FTP的使用當(dāng)中,用戶經(jīng)常遇到兩個(gè)概念:下載(Download)和上傳(Upload)。下載文件就是從遠(yuǎn)程主機(jī)上復(fù)制文件至自己的計(jì)算機(jī)中,上傳文件就是將文件從自己的計(jì)算機(jī)中復(fù)制至遠(yuǎn)程主機(jī)上。用Internet語(yǔ)言來(lái)說(shuō),用戶可通過(guò)客戶機(jī)程序向(從)遠(yuǎn)程主機(jī)上傳(下載)文件。

在TCP/IP協(xié)議中,F(xiàn)TP標(biāo)準(zhǔn)命令TCP端口號(hào)為21,Port方式數(shù)據(jù)端口為20。FTP的任務(wù)是將文件從一臺(tái)計(jì)算機(jī)傳送到另一臺(tái)計(jì)算機(jī),不受操作系統(tǒng)的限制。一般來(lái)說(shuō),需要進(jìn)行遠(yuǎn)程文件傳輸?shù)挠?jì)算機(jī)必須安裝和運(yùn)行FTP客戶程序。需要啟動(dòng)FTP時(shí),可以在IE地址欄中輸入如下格式的URL地址:“ftp://[用戶名:口令@]ftp服務(wù)器域名:[端口號(hào)]”。在CMD命令行下也可以用上述方法連接,通過(guò)put命令和get命令達(dá)到上傳和下載的目的,通過(guò)ls命令列出目錄。除了上述方法外,還可以在CMD下輸入“ftp”并按Enter鍵,然后輸入“openIP”來(lái)建立一個(gè)連接,此方法還適用于Linux下連接FTP服務(wù)器。

2)

HTTP協(xié)議

HTTP協(xié)議是Internet上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的WWW文件都必須遵守該標(biāo)準(zhǔn),設(shè)計(jì)HTTP最初的目的是提供一種發(fā)布和接收HTML頁(yè)面的方法。HTTP是一個(gè)客戶端和服務(wù)器端請(qǐng)求和應(yīng)答的TCP標(biāo)準(zhǔn)??蛻舳耸墙K端用戶,服務(wù)器端是網(wǎng)站。通過(guò)使用Web瀏覽器、網(wǎng)絡(luò)爬蟲或者其他工具,客戶端發(fā)起一個(gè)到服務(wù)器上指定端口(默認(rèn)端口為80)的HTTP請(qǐng)求,稱為用戶代理(UserAgent)。應(yīng)答的服務(wù)器上存儲(chǔ)資源,如HTML文件和圖像,稱為源服務(wù)器(OriginServer)。

在用戶代理和源服務(wù)器中間可能存在HTTP和其他幾種網(wǎng)絡(luò)協(xié)議多個(gè)中間層,如代理、網(wǎng)關(guān)、隧道(Tunnels)等。通常,由HTTP客戶端發(fā)起一個(gè)請(qǐng)求,建立一個(gè)到服務(wù)器指定端口(默認(rèn)是80端口)的TCP連接;HTTP服務(wù)器則在那個(gè)端口監(jiān)聽客戶端發(fā)送過(guò)來(lái)的請(qǐng)求。一旦收到請(qǐng)求,服務(wù)器(向客戶端)發(fā)回一個(gè)狀態(tài)行,如“HTTP/1.1200OK”和響應(yīng)的消息,消息的消息體可能是請(qǐng)求的文件、錯(cuò)誤消息或者其他一些信息。通過(guò)HTTP或者HTTPS協(xié)議請(qǐng)求的資源由URL來(lái)標(biāo)識(shí)。

3)

Telnet協(xié)議

Telnet協(xié)議是TCP/IP協(xié)議族中的一員,是Internet遠(yuǎn)程登錄服務(wù)的標(biāo)準(zhǔn)協(xié)議和主要方式,為用戶提供了在本地計(jì)算機(jī)上完成遠(yuǎn)程主機(jī)工作的能力。在終端使用者的計(jì)算機(jī)上使用Telnet程序,用它連接到服務(wù)器。終端使用者可以在Telnet程序中輸入命令,這些命令會(huì)在服務(wù)器上運(yùn)行,就像直接在服務(wù)器的控制臺(tái)上輸入一樣,可以在本地就能控制服務(wù)器。要開始一個(gè)Telnet會(huì)話,必須輸入用戶名和密碼來(lái)登錄服務(wù)器。Telnet是常用的遠(yuǎn)程控制Web服務(wù)器的方法。

4)

SMTP協(xié)議

SMTP協(xié)議是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來(lái)控制信件的中轉(zhuǎn)方式。SMTP協(xié)議屬于TCP/IP協(xié)議族,幫助每臺(tái)計(jì)算機(jī)在發(fā)送或中轉(zhuǎn)信件時(shí)找到下一個(gè)目的地。通過(guò)SMTP協(xié)議指定的服務(wù)器,就可以把E-mail寄到收信人的服務(wù)器上,整個(gè)過(guò)程只要幾分鐘。SMTP服務(wù)器則是遵循SMTP協(xié)議的發(fā)送郵件服務(wù)器,用來(lái)發(fā)送或中轉(zhuǎn)發(fā)出的電子郵件。它使用由TCP提供的可靠的數(shù)據(jù)傳輸服務(wù)把郵件消息從發(fā)信人的郵件服務(wù)器傳送到收信人的郵件服務(wù)器。

跟大多數(shù)應(yīng)用層協(xié)議一樣,SMTP也存在兩個(gè)端:在發(fā)信人的郵件服務(wù)器上執(zhí)行的客戶端和在收信人的郵件服務(wù)器上執(zhí)行的服務(wù)器端。SMTP的客戶端和服務(wù)器端同時(shí)運(yùn)行在每個(gè)郵件服務(wù)器上。當(dāng)一個(gè)郵件服務(wù)器在向其他郵件服務(wù)器發(fā)送郵件消息時(shí),它是作為SMTP客戶端在運(yùn)行的。SMTP協(xié)議與人們用于面對(duì)面交互的禮儀之間有許多相似之處。運(yùn)行在發(fā)送端郵件服務(wù)器主機(jī)上的SMTP客戶發(fā)起建立一個(gè)到接收端郵件服務(wù)器(SMTP端口號(hào)為25)的TCP連接,如果接收郵件服務(wù)器當(dāng)前未工作,則SMTP客戶就等待一段時(shí)間后再嘗試建立該連接。SMTP客戶和服務(wù)器先執(zhí)行一些應(yīng)用層握手操作,在SMTP握手階段,SMTP客戶向服務(wù)器分別指出發(fā)信人和收信人的電子郵件地址。

9.1.3網(wǎng)絡(luò)取證的數(shù)據(jù)來(lái)源

網(wǎng)絡(luò)環(huán)境復(fù)雜多變,在任何一起網(wǎng)絡(luò)取證工作中,證據(jù)都有可能存在于不同地方,如路由器、Web代理、網(wǎng)絡(luò)日志等。針對(duì)取證需求,取證人員還要關(guān)注案件的類型、相關(guān)設(shè)備配置以及網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)等情況。當(dāng)然,不同的網(wǎng)絡(luò)證據(jù)來(lái)源肯定存在重疊,可以有效進(jìn)行關(guān)聯(lián)分析,還可以對(duì)不同來(lái)源的數(shù)據(jù)相互補(bǔ)充。

1.物理線路上的數(shù)據(jù)

物理線路主要是指供主機(jī)與交換機(jī)之間、交換機(jī)與路由器之間的連接電纜,其支持?jǐn)?shù)字信號(hào)傳輸。需要進(jìn)行取證時(shí),可以在物理線路上搭接一條電纜,復(fù)制并保存通過(guò)電纜傳輸?shù)木W(wǎng)絡(luò)數(shù)據(jù)流。目前,此類設(shè)備已經(jīng)不再是利用物理電纜的搭線橋接方式,而是通過(guò)相應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)接口設(shè)備來(lái)實(shí)現(xiàn),如光纖傳輸?shù)姆止庠O(shè)備等。值得注意的是,在取證過(guò)程中,將電纜信號(hào)復(fù)制到另一臺(tái)被動(dòng)監(jiān)聽的主機(jī)上時(shí),盡量不要造成原始信號(hào)的衰減。

2.交換機(jī)和路由器等網(wǎng)絡(luò)設(shè)備上的數(shù)據(jù)

交換機(jī)能把主機(jī)連接起來(lái),形成局域網(wǎng);路由器能將不同的局域網(wǎng)連接起來(lái),形成更廣泛的網(wǎng)絡(luò)。交換機(jī)中有一張CAM(ConnectAddressableMemory)表,其記錄了各個(gè)物理端口與各張網(wǎng)卡MAC地址的對(duì)應(yīng)關(guān)系;路由器中有一張路由表,記錄了路由器端口與其他所連接網(wǎng)絡(luò)的映射關(guān)系。

3.服務(wù)器上的數(shù)據(jù)

網(wǎng)絡(luò)取證的核心是服務(wù)器上的數(shù)據(jù),數(shù)據(jù)的主要表現(xiàn)形式是日志、配置文件等。一般來(lái)說(shuō),主要的網(wǎng)絡(luò)取證對(duì)象是各類服務(wù)器,如各類DHCP服務(wù)器、DNS(DomainNameSystem,域名系統(tǒng))服務(wù)器、認(rèn)證服務(wù)器、應(yīng)用服務(wù)器等。DHCP服務(wù)器在分配IP地址時(shí)一般會(huì)為該事件創(chuàng)建一條日志,記錄分配的IP地址、接收該IP地址的設(shè)備MAC地址,以及本次分配或更新的時(shí)間等信息,某些服務(wù)器還會(huì)記錄相應(yīng)系統(tǒng)的主機(jī)名等信息;

DNS服務(wù)器會(huì)記錄所有對(duì)IP地址或域名的查詢以及相應(yīng)的時(shí)間;認(rèn)證服務(wù)器主要統(tǒng)一管理登錄賬號(hào),提供集中式的登錄認(rèn)證服務(wù),會(huì)把登錄成功或失敗以及其他相關(guān)的事件記錄在日志里;應(yīng)用服務(wù)器主要是數(shù)據(jù)庫(kù)服務(wù)器、Web服務(wù)器、電子郵件服務(wù)器等相關(guān)的網(wǎng)絡(luò)應(yīng)用的服務(wù)器,會(huì)記錄相關(guān)應(yīng)用的配置和運(yùn)行數(shù)據(jù)。

4.其他輔助設(shè)備的數(shù)據(jù)

除上述數(shù)據(jù)來(lái)源之外,還有IDS(入侵檢測(cè)系統(tǒng))、WAF(WebApplicationFirewall,Web應(yīng)用防火墻)、Web代理等數(shù)據(jù)在進(jìn)行電子數(shù)據(jù)取證的過(guò)程中也能發(fā)揮較大作用。例如防火墻,目前的防火墻均具備詳盡的日志功能,有些還有基礎(chǔ)設(shè)施防護(hù)和IDS功能。通過(guò)配置,防火墻能阻止或放行流量,在系統(tǒng)配置發(fā)生變化、出錯(cuò)或其他許多事件產(chǎn)生時(shí)生成日志,對(duì)網(wǎng)絡(luò)取證具有較高價(jià)值。

9.2網(wǎng)絡(luò)實(shí)時(shí)取證與分析

9.2.1數(shù)據(jù)包獲取方法和途徑

1.

ARP協(xié)議的抓包

ARP工作流程分為兩個(gè)階段,一個(gè)是ARP請(qǐng)求過(guò)程,另一個(gè)是ARP響應(yīng)過(guò)程。在了解ARP協(xié)議的基礎(chǔ)上,可以利用Wireshark等抓包工具中的ARP捕獲器直接捕獲ARP協(xié)議包。需要捕獲ARP包時(shí),可以在主機(jī)上執(zhí)行ping命令,即可產(chǎn)生ARP包進(jìn)行獲取。

2.

IP協(xié)議的抓包

TCP/IP協(xié)議定義了一個(gè)在互聯(lián)網(wǎng)上傳輸?shù)陌?,稱為IP數(shù)據(jù)包。IP數(shù)據(jù)包是一個(gè)與硬件無(wú)關(guān)的虛擬包,由首部和數(shù)據(jù)兩部分組成。其中,首部主要包括版本、長(zhǎng)度、IP地址等信息;數(shù)據(jù)部分一般用來(lái)傳送其他協(xié)議,如TCP、UDP、ICMP(InternetControlMessageProtocol,Internet控制報(bào)文協(xié)議)等。在了解TCP/IP協(xié)議的基礎(chǔ)上,可以利用Wireshark等抓包工具的IP數(shù)據(jù)包捕獲器直接捕獲IP協(xié)議包,如打開一個(gè)網(wǎng)頁(yè),可以捕獲到網(wǎng)頁(yè)的相關(guān)DNS、TCP、HTTP等協(xié)議的包,這些包中均包含了IP的頭部信息。

3.

UDP協(xié)議的抓包

UDP協(xié)議是一種無(wú)連接的協(xié)議。該協(xié)議用來(lái)支持需要在計(jì)算機(jī)間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用,包括網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)在內(nèi)的眾多C/S模式的網(wǎng)絡(luò)應(yīng)用。該協(xié)議使用底層的互聯(lián)網(wǎng)協(xié)議來(lái)傳送報(bào)文,同IP一樣提供不可靠的無(wú)連接服務(wù),也不提供報(bào)文到達(dá)確認(rèn)、排序及流量控制等功能。在Wireshark中,可以使用UDP數(shù)據(jù)包捕獲器直接捕獲UDP協(xié)議包,如打開一個(gè)QQ應(yīng)用程序,只需要對(duì)QQ進(jìn)行簡(jiǎn)單操作,便會(huì)捕獲到大量的UDP數(shù)據(jù)包。

4.

TCP協(xié)議的抓包

TCP協(xié)議是一種面向連接的、可靠的、基于IP的傳輸層協(xié)議,在通信過(guò)程中采用了三次握手建立連接,通信結(jié)束后還需要斷開連接。使用TCP協(xié)議傳輸數(shù)據(jù)時(shí),每發(fā)送一個(gè)數(shù)據(jù)包均需要確認(rèn),如果數(shù)據(jù)包丟失,則發(fā)送方就收不到確認(rèn)包,于是便會(huì)重發(fā)該數(shù)據(jù)包。在Wireshark中,可以使用TCP數(shù)據(jù)包捕獲器直接捕獲TCP協(xié)議包,如打開一個(gè)網(wǎng)頁(yè),系統(tǒng)便會(huì)捕獲到用于網(wǎng)頁(yè)服務(wù)器通信的TCP數(shù)據(jù)包。

5.

ICMP協(xié)議的抓包

ICMP協(xié)議是TCP/IP協(xié)議族中的一個(gè)子協(xié)議,用于IP主機(jī)、路由器直接傳遞控制消息??刂葡⒅饕芯W(wǎng)絡(luò)通不通、主機(jī)是否可達(dá)、路由是否可用等網(wǎng)絡(luò)本身的消息。這些消息雖然并不傳輸用戶數(shù)據(jù),但是對(duì)于用戶的傳遞起著非常重要的作用。在Wireshark中,可以使用ICMP數(shù)據(jù)包捕獲器直接捕獲ICMP協(xié)議包,如運(yùn)行ping命令,系統(tǒng)就可以捕獲ICMP包。

9.2.2數(shù)據(jù)包分析的工具

通過(guò)對(duì)數(shù)據(jù)包獲取方式的介紹,讀者可以了解數(shù)據(jù)包是基于相應(yīng)協(xié)議的,在具體的抓包過(guò)程中可以利用現(xiàn)有的一些常用軟件工具進(jìn)行抓包分析,從而獲取有價(jià)值的電子數(shù)據(jù)。在介紹抓包工具之前,先介紹Google瀏覽器自帶的開發(fā)者工具或Firefox瀏覽器的firebug,可以利用該工具進(jìn)行基礎(chǔ)的抓包,一般快捷鍵為F12,其主界面如圖9-9所示。

圖9-9

firebug主界面

在工具欄中可以顯示當(dāng)前的網(wǎng)絡(luò)活動(dòng)信息,也可以暫停記錄網(wǎng)絡(luò)活動(dòng)信息。建議每次抓包前先清空原來(lái)的數(shù)據(jù),然后刷新瀏覽器頁(yè)面,當(dāng)前的網(wǎng)絡(luò)活動(dòng)會(huì)自動(dòng)記錄到調(diào)試期中,包括HTML、CSS、JS、XHR、字體、圖像、媒體、WS等內(nèi)容,如圖9-10所示。

圖9-10當(dāng)前的網(wǎng)絡(luò)活動(dòng)信息

1.?Wireshark

Wireshark是一款免費(fèi)的網(wǎng)絡(luò)封包分析軟件,可以在Windows、Linux、macOS、Solaris、FreeBSD、NETBSD等多個(gè)平臺(tái)上運(yùn)行,支持TCP、UDP、FTP、SMTP、USB等多個(gè)協(xié)議,是數(shù)據(jù)包獲取和分析的利器。

1)使用Wireshark進(jìn)行數(shù)據(jù)包抓取

單擊菜單欄中的“捕獲”按鈕,會(huì)跳出本機(jī)所有的網(wǎng)卡,選擇需要捕獲的數(shù)據(jù)對(duì)應(yīng)的網(wǎng)卡,單擊“開始”按鈕后Wireshark就自動(dòng)開始獲取數(shù)據(jù)包,如圖9-11所示。

圖9-11

Wireshark捕獲窗口

2)

Wireshark窗口

Wireshark窗口主要分為以下幾部分:

(1)菜單欄。菜單欄包括文件、編輯、視圖、跳轉(zhuǎn)、捕獲、分析、統(tǒng)計(jì)、電話、無(wú)線、工具、幫助等項(xiàng)目。

(2)工具欄。工具欄的主要功能包括開始捕獲分組、開始捕獲、重新捕獲、停止捕獲、打開已捕獲數(shù)據(jù)包、保存捕獲數(shù)據(jù)包等。

(3)過(guò)濾器。默認(rèn)情況下,過(guò)濾器用來(lái)過(guò)濾自定義設(shè)置的過(guò)濾規(guī)則。通過(guò)該功能可以快速過(guò)濾出用戶關(guān)注的數(shù)據(jù)封包,如HTTP、FTP、TCP等常用協(xié)議的過(guò)濾。當(dāng)然,也可以使用過(guò)濾器表達(dá)式窗口提供的規(guī)則快速構(gòu)造過(guò)濾條件。

按Ctrl+F組合鍵,可以將過(guò)濾器最大化。Wireshark也支持對(duì)十六進(jìn)制值和字符串的過(guò)濾,如圖9-12所示。

圖9-12

Wireshark過(guò)濾器支持對(duì)十六進(jìn)制值和字符串的過(guò)濾

(4)封包列表。封包列表中有大量的封包,Wireshark會(huì)根據(jù)抓包的時(shí)間自動(dòng)對(duì)每一個(gè)封包進(jìn)行編號(hào),最終以編號(hào)、捕獲時(shí)間、原始IP地址、目的IP地址、協(xié)議、封包長(zhǎng)度、基本信息的格式一條條呈現(xiàn)在列表中。

(5)封包詳細(xì)信息。封包詳細(xì)信息會(huì)顯示每一個(gè)封包的具體信息,如圖9-13所示,信息按照不同的層級(jí)進(jìn)行分組,通過(guò)展開查看可以獲取原始設(shè)備和目的設(shè)備的IP、MAC、端口號(hào)、傳輸協(xié)議等信息。以下是封包的5個(gè)不同層級(jí)信息:

①Frame:物理層信息。

②EthernetⅡ:數(shù)據(jù)鏈路層信息。

③InternetProtocolVersion4:互聯(lián)網(wǎng)層信息。

④TransmissionControlProtocol:傳輸層信息。

⑤HypertextTransferProtocol:應(yīng)用層信息。

圖9-13封包詳細(xì)信息

(6)十六進(jìn)制數(shù)據(jù)。這里的數(shù)據(jù)以十六進(jìn)制的形式展示每個(gè)封包的詳細(xì)信息。

(7)數(shù)據(jù)包基本信息。這里會(huì)顯示整個(gè)數(shù)據(jù)包的一些基本信息,如圖9-14所示。單擊圖9-14中左側(cè)第一個(gè)按鈕,可以使用Wireshark的專家模式功能,即通過(guò)內(nèi)置參數(shù)對(duì)各個(gè)封包的傳輸進(jìn)行分析,并按照協(xié)議分為對(duì)話、注意、警告和錯(cuò)誤4個(gè)等級(jí),可將它們提供給分析者作為參考,如圖9-15所示。

圖9-14數(shù)據(jù)包基本信息圖9-15

Wireshark專家模式

單擊圖9-14中左側(cè)第二個(gè)按鈕,可以分析整個(gè)數(shù)據(jù)包的基本信息,包括數(shù)據(jù)包文件名、大小、數(shù)據(jù)包格式、獲取時(shí)間、獲取接口、操作系統(tǒng)、封包數(shù)量等,如圖9-16所示。

圖9-16

Wireshark捕獲文件屬性

3)

Wireshark基本使用方法

(1)過(guò)濾。

過(guò)濾又分為捕獲過(guò)濾和顯示過(guò)濾兩種。

①捕獲過(guò)濾:使用Wireshark可以設(shè)置特定的獲取規(guī)則,防止獲取無(wú)用的大量封包。具體可以在“捕獲”→“捕獲過(guò)濾器”中進(jìn)行過(guò)濾規(guī)則的設(shè)置,如圖9-17所示。

圖9-17

Wireshark捕獲過(guò)濾

基本語(yǔ)法:

<Protocol><Direction><Host(s)><Value><LogicalOperations><Otherexpression>

a.?Protocol:IP、TCP、UDP、FTP、SMTP、ICMP、ARP等。

b.?Direction:src、dst、srcanddst、srcordst。

c.?Host(s):net、port、host、portrange。

d.?LogicalOperations:not、and、or。

②顯示過(guò)濾:Wireshark會(huì)獲取所有經(jīng)過(guò)網(wǎng)卡的數(shù)據(jù),因此會(huì)有大量的數(shù)據(jù)封包。Wireshark不僅可以設(shè)置捕獲過(guò)濾規(guī)則,也可以設(shè)置顯示過(guò)濾表達(dá)式規(guī)則,常用的過(guò)濾方法如下。

(2)數(shù)據(jù)流追蹤。

通過(guò)過(guò)濾分析出關(guān)鍵封包后,單擊右鍵,在彈出的快捷菜單中選擇“追蹤流”→“TCP流”命令,即可找到完整的請(qǐng)求,如圖9-18所示。通過(guò)分析發(fā)現(xiàn),00向20服務(wù)器上傳了一張?.jpg圖片,將該數(shù)據(jù)流導(dǎo)出,通過(guò)WinHex或010editor進(jìn)行文件格式整理就能獲取到這張照片,如圖9-19所示。

圖9-18追蹤數(shù)據(jù)流圖9-19分析數(shù)據(jù)流發(fā)現(xiàn).jpg文件

通過(guò)過(guò)濾FTP相關(guān)內(nèi)容和流追蹤發(fā)現(xiàn)一個(gè)?.rar文件被上傳,如圖9-20所示。繼續(xù)過(guò)濾ftp-data后發(fā)現(xiàn)?.rar的十六進(jìn)制值,如圖9-22所示,將其導(dǎo)出即可還原?.rar文件。

圖9-20追蹤數(shù)據(jù)流發(fā)現(xiàn).rar文件圖9-21發(fā)現(xiàn)?.rar的十六進(jìn)制值

(3)統(tǒng)計(jì)功能。

在對(duì)大流量尤其是企業(yè)的數(shù)據(jù)包進(jìn)行分析時(shí),獲取的數(shù)據(jù)包往往是幾十吉字節(jié)到幾百吉字節(jié),如何快速地對(duì)整個(gè)數(shù)據(jù)包進(jìn)行概況分析呢?為此Wireshark提供了很多統(tǒng)計(jì)方法。

①協(xié)議分級(jí)。該功能可以對(duì)整個(gè)數(shù)據(jù)包各層級(jí)的協(xié)議進(jìn)行樹形結(jié)構(gòu)展示,通過(guò)分析可以快速掌握該數(shù)據(jù)包中各個(gè)協(xié)議在各個(gè)層級(jí)所占的比例,如圖9-22所示。

圖9-22使用Wireshark進(jìn)行協(xié)議分級(jí)

②會(huì)話分析。該功能可以將每一層的協(xié)議分離出來(lái),對(duì)會(huì)話進(jìn)行分別統(tǒng)計(jì),快速掌握哪些節(jié)點(diǎn)使用什么方式進(jìn)行通信,特別是服務(wù)器遭遇掃描時(shí),使用該功能可以快速發(fā)現(xiàn)攻擊主機(jī)。

IPv4或IPv6統(tǒng)計(jì)。該功能可以分組統(tǒng)計(jì)整個(gè)數(shù)據(jù)包中出現(xiàn)的IP次數(shù),從而發(fā)現(xiàn)大量訪問(wèn)的可疑IP并將其作為進(jìn)行服務(wù)器取證的重點(diǎn)分析對(duì)象,如圖9-23所示。

圖9-23使用Wireshark進(jìn)行IPv4或IPv6統(tǒng)計(jì)

④針對(duì)HTTP協(xié)議的統(tǒng)計(jì)。PacketCounter對(duì)數(shù)據(jù)包中的HTTP協(xié)議的請(qǐng)求方法和響應(yīng)情況進(jìn)行了統(tǒng)計(jì),如圖9-24所示。從圖9-24中可以快速判斷是否有GET或POST敏感訪問(wèn),為下一步分析做好準(zhǔn)備。

圖9-24針對(duì)HTTP協(xié)議的統(tǒng)計(jì)

Requests則是針對(duì)數(shù)據(jù)包中的域名請(qǐng)求進(jìn)行分析,如圖9-25所示。

圖9-25針對(duì)數(shù)據(jù)包中的域名請(qǐng)求進(jìn)行分析

(4)解密SSL。

借助Wireshark可以對(duì)大部分?jǐn)?shù)據(jù)進(jìn)行捕獲并分析,然而當(dāng)遇到的是用SSL/TLS等加密手段加密過(guò)的網(wǎng)絡(luò)數(shù)據(jù)時(shí),即使獲取到數(shù)據(jù)包,但還是不能獲得解密的內(nèi)容。在對(duì)HTTPS的網(wǎng)站進(jìn)行抓包時(shí),獲取的內(nèi)容只是加密的內(nèi)容,借助Wireshark可以對(duì)SSL協(xié)議進(jìn)行解密,具體操作步驟如下:

①在環(huán)境變量中新建名為SSLKEYLOGFILE的環(huán)境變量(圖9-26),并指定具體路徑用來(lái)保存SSL會(huì)話的私鑰日志。關(guān)閉當(dāng)前瀏覽器,重啟瀏覽器后訪問(wèn)一個(gè)HTTPS的網(wǎng)站,此時(shí)秘鑰文件已經(jīng)被保存到本地。

②在Wireshark中選擇“編輯”→“首選項(xiàng)”命令,在協(xié)議列表中找到SSL,并配置SSL秘鑰日志文件,分別如圖9-27和圖9-28所示。

圖9-26新建環(huán)境變量圖9-27選擇“編輯”→“首選項(xiàng)”命令圖9-28配置SSL秘鑰日志文件

③在Wireshark中設(shè)置好配置后,開始獲取數(shù)據(jù)包,然后過(guò)濾出SSL協(xié)議并選擇一個(gè)會(huì)話,最后在十六進(jìn)制數(shù)值中選擇解密SSL數(shù)據(jù),即可看到HTTPS傳輸?shù)膬?nèi)容,如圖9-29所示。

圖9-29解密SSL數(shù)據(jù)

(5)導(dǎo)出對(duì)象。

Wireshark可以快速導(dǎo)出DICOM、HTTP、SMP、TFTP的對(duì)象內(nèi)容,如圖9-30所示。

例如,上述數(shù)據(jù)包中通過(guò)upload.php上傳的文件,通過(guò)導(dǎo)出對(duì)象可以獲取upload.php頁(yè)面以及上傳的文件內(nèi)容。

圖9-30導(dǎo)出對(duì)象

(6)流量包清洗。

在面對(duì)大流量數(shù)據(jù)包分析時(shí),如果直接使用Wireshark打開數(shù)據(jù)包進(jìn)行過(guò)濾,則需要消耗大量的時(shí)間并降低性能,因此可以使用Wireshark自帶的工具進(jìn)行數(shù)據(jù)清洗。

Mergecap:用于將多個(gè)數(shù)據(jù)包合并成為一個(gè)數(shù)據(jù)包。

②?Editcap:用于過(guò)濾數(shù)據(jù)包生成一個(gè)新的數(shù)據(jù)包。

③?Tshark:Tshark是Wireshark的命令行版本,通過(guò)命令行可簡(jiǎn)便高效地實(shí)現(xiàn)過(guò)濾功能。

4)

Wireshark數(shù)據(jù)包分析方法

(1)網(wǎng)絡(luò)分析。

①只抓包頭。

在進(jìn)行網(wǎng)絡(luò)分析時(shí)往往只需要知道兩個(gè)節(jié)點(diǎn)是不是能夠聯(lián)通,具體的傳輸信息并不重要。所以,抓包時(shí)可以設(shè)置只抓包頭,這樣就大大減小了數(shù)據(jù)包的大小,有利于數(shù)據(jù)分析。

設(shè)置方法:Capture(捕獲)→Options(選項(xiàng))→Snaplen(Snap長(zhǎng)度)。如圖9-31所示,將Snap長(zhǎng)度設(shè)置為200以下即可抓到所有網(wǎng)絡(luò)層次的頭信息。另外,也可以直接單擊任務(wù)欄里的快捷鍵,快速設(shè)置。

圖9-31

Wireshark捕獲設(shè)置

②只抓必要的包。

可以設(shè)置抓包的過(guò)濾器(Filter),只抓一些感興趣的包。

設(shè)置方法:Capture(捕獲)→Options(選項(xiàng))→CaptureFilter(捕獲過(guò)濾器)。在輸入框里輸入規(guī)則,然后單擊開始即可,如輸入“dsthost7”(捕獲目標(biāo)主機(jī)為7的數(shù)據(jù)包),7是pingwww.B的IP地址,不同地理位置ping的IP可能不一樣,最后用瀏覽器訪問(wèn)百度即可看到想要的捕獲結(jié)果。

③過(guò)濾。

使用過(guò)濾規(guī)則進(jìn)行數(shù)據(jù)包篩選是Wireshark強(qiáng)大的功能之一,如果知道問(wèn)題發(fā)生的具體協(xié)議就可以以協(xié)議名稱過(guò)濾。使用協(xié)議過(guò)濾時(shí)要注意協(xié)議之間的依賴性,如NFS共享掛載失敗,問(wèn)題可能發(fā)生在掛載所用的mount協(xié)議,也可能發(fā)生在mount之前的portmap協(xié)議。

IP+端口方式過(guò)濾是常見形式,除輸入過(guò)濾規(guī)則外,還有一個(gè)比較簡(jiǎn)單的方法,就是在感興趣的數(shù)據(jù)包上右擊,在彈出的快捷菜單中選擇“追蹤流”命令,即可看到與這對(duì)IP和端口的全部通信。

也可以在相應(yīng)的包上右擊,在彈出的快捷菜單中選擇“作為過(guò)濾器應(yīng)用”→“選中”命令,如圖9-32所示,Wireshark即可自動(dòng)生成相應(yīng)的過(guò)濾規(guī)則。

圖9-32作為過(guò)濾器應(yīng)用

④自動(dòng)分析。

Wireshark有強(qiáng)大的統(tǒng)計(jì)分析功能,可以幫助分析人員快速統(tǒng)計(jì)出一些基本信息。例如,選擇“Analyze(分析)”→“ExpertInfoComposite(專家信息)”,即可看到數(shù)據(jù)包中的一些不同級(jí)別的信息統(tǒng)計(jì),包含重傳次數(shù)、鏈接建立次數(shù)、網(wǎng)絡(luò)錯(cuò)誤等,如圖9-33所示。

再如,選擇“Statistics(統(tǒng)計(jì))”→“TCPStreamGraph(TCP流圖形)”,可以生成一些統(tǒng)計(jì)圖表。此外,還可以統(tǒng)計(jì)分層信息、網(wǎng)絡(luò)會(huì)話列表、網(wǎng)絡(luò)端點(diǎn)列表、IP地址統(tǒng)計(jì)列表、應(yīng)用層數(shù)據(jù)包信息等。

圖9-33專家信息

⑤搜索。

按Ctrl?+?F組合鍵,Wireshark即可進(jìn)行關(guān)鍵字搜索,選擇“分組詳情”后就可以搜索數(shù)據(jù)包中的內(nèi)容,這樣的搜索在CTF(CaptureTheFlag)中也許會(huì)有意外收獲。

(2)使用技巧。

下面結(jié)合例子對(duì)每一種操作進(jìn)行介紹。

①搜索??梢灾粚cap數(shù)據(jù)包當(dāng)作文本文件打開,如用一些notepad++?編輯器,然后直接搜索。建議使用Wireshark自帶的搜索功能嘗試查找一些關(guān)鍵詞(如key、shell、pass等),通過(guò)這些關(guān)鍵詞可以發(fā)現(xiàn)可疑的數(shù)據(jù)包,根據(jù)數(shù)據(jù)包特征能發(fā)現(xiàn)一些異常的網(wǎng)絡(luò)訪問(wèn),如利用菜刀連接一句話木馬的數(shù)據(jù)包,就能發(fā)現(xiàn)木馬入侵的痕跡。

②文件提取。假如需要分析是否有人偷偷下載了文件,很明顯可以聯(lián)想到數(shù)據(jù)包中可能存在文件傳輸??梢栽赪ireshark中選擇“File(文件)”→“ExportObjects(導(dǎo)出對(duì)象)”,然后可以看到一些協(xié)議,如選中HTTP就可以看到通過(guò)HTTP傳輸?shù)囊恍┪募?,在右下角有“?dǎo)出”按鈕,單擊它可以生成相應(yīng)的文件。

③信息提取。使用Tshark可以提取信息。Tshark是命令行版的Wireshark,相對(duì)于Wireshark有更好的靈活性,結(jié)合腳本程序可以發(fā)揮巨大的威力,在安裝Wireshark時(shí)就默認(rèn)安裝了Tshark。

5)

Wireshark錯(cuò)誤提示

很多新手在開始學(xué)習(xí)Wireshark時(shí)都會(huì)遇到提示的錯(cuò)誤信息。一般來(lái)說(shuō),提示信息比較有價(jià)值,對(duì)于初學(xué)者來(lái)說(shuō),如果能理解這些提示隱含的意義,學(xué)起來(lái)定能事半功倍。

(1)

Packetsizelimitedduringcapture。

當(dāng)用戶看到這個(gè)提示時(shí),說(shuō)明被標(biāo)記的那個(gè)包沒(méi)有被抓全。以圖9-34的4號(hào)包為例,它全長(zhǎng)有171字節(jié),但只有前96字節(jié)被抓到,因此Wireshark給了此提示。

圖9-34

Packetsizelimitedduringcapture提示

(2)?TCPPrevioussegmentnotcaptured。

在TCP傳輸過(guò)程中,同一臺(tái)主機(jī)發(fā)出的數(shù)據(jù)段應(yīng)該是連續(xù)的,即后一個(gè)包的Seq等于前一個(gè)包的Seq?+?Len(三次握手和四次揮手是例外)。如果Wireshark發(fā)現(xiàn)后一個(gè)包的Seq號(hào)大于前一個(gè)包的Seq?+?Len,就知道中間缺失了一段數(shù)據(jù)。假如缺失的那段數(shù)據(jù)在整個(gè)網(wǎng)絡(luò)包中都找不到(排除了亂序),就會(huì)提示TCPPrevioussegmentnotcaptured。例如,在圖9-35這個(gè)例子中,6號(hào)包的Seq。1449大于5號(hào)包的Seq?+?Len?=?1?+?0?=?1,說(shuō)明中間有一個(gè)攜帶1448字節(jié)的包沒(méi)被抓到,它就是“Seq=1,Len=1448”。

對(duì)圖9-35中的6號(hào)網(wǎng)絡(luò)包進(jìn)行分析可知,它是HTTPS傳輸異常時(shí)在客戶端抓的。因?yàn)椤癓en:667”的小包(6號(hào)包)可以送達(dá),但“Len:1448”的大包卻丟了,說(shuō)明路徑上可能有一個(gè)網(wǎng)絡(luò)設(shè)備的MTU比較小,會(huì)丟棄大包,只要使整個(gè)網(wǎng)絡(luò)路徑的MTU保持一致,問(wèn)題就會(huì)消失。

圖9-35

TCPPrevioussegmentnotcaptured提示

(3)?TCPACKedunseensegment。

當(dāng)Wireshark發(fā)現(xiàn)沒(méi)被ACK的那個(gè)包被抓到時(shí),就會(huì)提示TCPACKedunseensegment。這是非常常見的Wireshark提示,不過(guò)其永遠(yuǎn)可以被忽略。

(4)

TCPOut-of-Order。

在TCP傳輸過(guò)程中(不包括三次握手和四次揮手),同一臺(tái)主機(jī)發(fā)出的數(shù)據(jù)包應(yīng)該是連續(xù)的,即后一個(gè)包的Seq等于前一個(gè)包的Seq?+?Len,也可以說(shuō)后一個(gè)包的Seq會(huì)大于或等于前一個(gè)包的Seq。當(dāng)Wireshark發(fā)現(xiàn)后一個(gè)包的Seq小于前一個(gè)包的Seq?+?Len時(shí),就會(huì)認(rèn)為是亂序,因此提示TCPOut-of-Order。如圖9-36所示,3362號(hào)包的Seq?=?2685642,小于3360號(hào)包的Seq?=?2712622,所以就是亂序。

圖9-36

TCPOut-of-Order提示

(5)

TCPDupACK。

當(dāng)亂序或者丟包發(fā)生時(shí),接收方會(huì)收到一些Seq比期望值大的包。它每收到一個(gè)這種包就會(huì)確認(rèn)一次期望的Seq值,以此方式來(lái)提醒發(fā)送方,于是就產(chǎn)生了一些重復(fù)的確認(rèn)。Wireshark會(huì)在這種重復(fù)的確認(rèn)上標(biāo)記TCPDupACK。

(6)

TCPFastRetransmission。

當(dāng)發(fā)送方收到3個(gè)或以上TCPDupACK時(shí),就表明之前發(fā)的包可能丟了,于是快速重傳它(這是RFC的規(guī)定)。以圖9-37為例,客戶端收到了4個(gè)Ack?=?991851,于是在1177號(hào)包重傳了Seq?=?991851。

圖9-37

TCPFastRetransmission提示

(7)

TCPRetransmission。

如果一個(gè)包真的丟了,又沒(méi)有后續(xù)包可以在接收方觸發(fā)DupACK,那么就不會(huì)快速重傳。這種情況下發(fā)送方只好等到超時(shí)后再重傳,此類重傳包就會(huì)被Wireshark標(biāo)上TCPRetransmission。以圖9-38為例,客戶端發(fā)送原始包(包號(hào)1053)之后,一直等不到相應(yīng)的確認(rèn),于是只能在100多毫秒之后重傳(包號(hào)1225)。

圖9-38“TCPRetransmission”提示

(8)

TCPZerowindow。

TCP包中的“win=”代表接收窗口的大小,即表示該包的發(fā)送方當(dāng)前還有多少緩存區(qū)可以接收數(shù)據(jù)。當(dāng)Wireshark在一個(gè)包中發(fā)現(xiàn)win?=?0時(shí),就會(huì)給它打上TCPZerowindow的標(biāo)志,表示緩存區(qū)已滿,不能再接收數(shù)據(jù)。例如,圖9-39就是服務(wù)器的緩存區(qū)已滿的例子,所以通知客戶端不要再發(fā)數(shù)據(jù)了。甚至可以在3258~3263這幾個(gè)包中看出它的窗口逐漸減少的過(guò)程,即從win?=?15872減小到win?=?1472。

圖9-39

TCPZerowindow提示

(9)

TCPWindowFull。

當(dāng)Wireshark在一個(gè)包中打上TCPWindowFull標(biāo)志時(shí),就表示該包的發(fā)送方已經(jīng)把對(duì)方聲明的接收窗口耗盡。以圖9-40為例,Britain一直聲明它的接收窗口只有65?535,意味著MiddleEast最多能給它發(fā)送65?535字節(jié)的數(shù)據(jù)而無(wú)須確認(rèn),即在途字節(jié)數(shù)最多為65?535字節(jié)。當(dāng)Wireshark在包中計(jì)算出MiddleEast已經(jīng)有65?535字節(jié)未被確認(rèn)時(shí),就會(huì)發(fā)出此提示。

圖9-40

TCPWindowFull提示

(10)?TCPSegmentofaReassembledPDU。

當(dāng)收到該提示時(shí),說(shuō)明肯定已經(jīng)在“Edit”→“Preferences”→“Protocols”→“TCP”菜單里啟用了“AllowsubdissectortoreassembleTCPstreams”。它表示W(wǎng)ireshark可以把屬于同一個(gè)應(yīng)用層PDU(如SMB的ReadResponse和WriteRequest)的TCP包虛擬地集中起來(lái)。

(11)?Continuationto#。

當(dāng)收到該提示時(shí),說(shuō)明已經(jīng)在“Edit”→“Preferences”→“Protocols”→“TCP”菜單里關(guān)閉了“AllowsubdissectortoreassembleTCPstreams”。

(12)?Time-to-liveexceeded(Fragmentreassemblytimeexceeded)。

ICMP的報(bào)錯(cuò)方式有很多種,大都不難理解,所以只舉其中的一種為例進(jìn)行介紹。Fragmentreassemblytimeexceeded表示該包的發(fā)送方之前收到了一些分片,但是由于某些原因遲遲無(wú)法組裝起來(lái)。例如,在圖9-41中,由于上海發(fā)往北京的一些包被分片傳輸,且有一部分在路上丟失,因此北京方無(wú)法組裝起來(lái),便只好用該ICMP報(bào)錯(cuò)告知上海方。

圖9-41

Time-to-liveexceeded提示

2.

Fiddler

Fiddler是位于客戶端和服務(wù)器端的HTTP代理,是常用的數(shù)據(jù)包捕獲工具之一。它相比于瀏覽器自帶的調(diào)試工具具有更加豐富的功能,能夠更好地分析HTTP數(shù)據(jù)包。設(shè)置好Fiddler的端口后,所有的數(shù)據(jù)請(qǐng)求都先走到Fiddler代理,然后轉(zhuǎn)發(fā)到對(duì)應(yīng)的服務(wù)器;同時(shí)服務(wù)器的響應(yīng)也是先走到Fiddler代理,再轉(zhuǎn)發(fā)到客戶端。

Fiddler能夠記錄客戶端和服務(wù)器之間的所有HTTP請(qǐng)求,可以針對(duì)特定的HTTP請(qǐng)求分析請(qǐng)求數(shù)據(jù)、設(shè)置斷點(diǎn)、調(diào)試參數(shù)、修改數(shù)據(jù),甚至可以修改服務(wù)器返回的數(shù)據(jù),是Web調(diào)試的利器。

1)使用Fiddler進(jìn)行數(shù)據(jù)包獲取

打開Fiddler后,選擇“File”→“CaptureTraffic”命令,開啟抓包,即可對(duì)HTTP協(xié)議進(jìn)行抓包。

2)

Fiddler界面介紹

Fiddler界面主要分為以下幾部分:

(1)工具欄。

(2)會(huì)話列表。

(3)監(jiān)聽開關(guān)。

(4)監(jiān)聽類型選項(xiàng)。

(5)當(dāng)前會(huì)話地址欄。

(6)會(huì)話詳情區(qū)。

下面介紹幾個(gè)常用模塊。

①Inspectors模塊(圖9-42):上部分顯示請(qǐng)求的相關(guān)信息,下部分顯示服務(wù)器響應(yīng)的相關(guān)信息,支持用Headers、TextView、SyntaxView、WebForms、HexView、Auth、Cookies、Raw、JSON、XML等格式來(lái)查看信息。

圖9-42

Inspectors模塊

②Composer模塊:用于重復(fù)發(fā)包,可以重新構(gòu)造請(qǐng)求頭或者復(fù)制Raw進(jìn)行重發(fā)包。該模塊一般用于接口測(cè)試,類似于Postman。

③Log模塊:顯示Fiddler抓包的詳細(xì)日志信息。

④Filters模塊:實(shí)現(xiàn)過(guò)濾功能,可以對(duì)Host信息、抓包進(jìn)程、請(qǐng)求頭內(nèi)容、斷點(diǎn)信息、服務(wù)器響應(yīng)狀態(tài)碼、響應(yīng)內(nèi)容等設(shè)置過(guò)濾規(guī)則,排除大量無(wú)用的封包。

3)?Fiddler基本使用方法

(1)設(shè)置斷點(diǎn)重新構(gòu)造Request。選擇“Rules”→“AutomaticBreakpoints”→“BeforeRequests”命令,為設(shè)置斷點(diǎn)修改Request,表示客戶機(jī)發(fā)送給服務(wù)器的所有請(qǐng)求都進(jìn)行攔截,如圖9-43所示。

斷點(diǎn)設(shè)置完成后,每個(gè)會(huì)話的Request都被成功斷下來(lái)后會(huì)在會(huì)話的最前面打上紅色的符號(hào),選擇需要重點(diǎn)分析的會(huì)話,然后在Inspectors模塊中編輯需要變更的參數(shù),最后單擊“RuntoCompletion”按鈕完成會(huì)話。

圖9-43設(shè)置斷點(diǎn)

(2)設(shè)置斷點(diǎn)重新構(gòu)造Response。選擇“Rules”→“AutomaticBreakpoints”→“AfterResponses”命令,在服務(wù)器響應(yīng)客戶端請(qǐng)求后設(shè)置斷點(diǎn),此時(shí)服務(wù)器端已經(jīng)響應(yīng)了客戶端發(fā)起的請(qǐng)求并且將結(jié)果返回,然后切換到Response模塊中修改返回的內(nèi)容,最后單擊“RuntoCompletion”按鈕完成會(huì)話。

(3)

Fiddler設(shè)置解析HTTPS。選擇“Tools”→“Options”命令(圖9-44),彈出“Options”對(duì)話框,切換到HTTPS標(biāo)簽頁(yè)(圖9-45),勾選“CaptureHTTPSCONNECTs”復(fù)選框,并根據(jù)實(shí)際情況勾選“DecryptHTTPStraffic”等復(fù)選框進(jìn)行HTTPS解密,此時(shí)Fiddler端的設(shè)置已經(jīng)完成,但是如需解密還需要在各個(gè)平臺(tái)中進(jìn)行設(shè)置,下面將一一進(jìn)行介紹。

圖9-44

Fiddler的設(shè)置選項(xiàng)圖9-45

HTTPS標(biāo)簽頁(yè)

(4)跨平臺(tái)使用。選擇“Tools”→“Options”命令,彈出“Options”對(duì)話框,切換到Connections標(biāo)簽頁(yè),如圖9-46所示。在端口范圍內(nèi)設(shè)置一個(gè)未被占用的端口號(hào)作為Fiddler端口,并勾選“Allowremotecomputerstoconnect”復(fù)選框。

圖9-46

Connections標(biāo)簽頁(yè)

①計(jì)算機(jī)抓包。

以Windows操作系統(tǒng)為例,使用ipconfig獲取Fiddler服務(wù)所在IP地址,記錄下IPv4的地址,如圖9-47所示。

圖9-47使用ipconfig獲取Fiddler服務(wù)所在地址

打開任意瀏覽器,訪問(wèn)IPv4:Fiddler端口號(hào),如圖9-48所示。

圖9-48訪問(wèn)IPv4:Fiddler端口號(hào)

下載FiddlerRootcertificate,然后導(dǎo)入受信任的證書機(jī)構(gòu)中,如圖9-49所示。

圖9-49受信任的證書機(jī)構(gòu)

測(cè)試是否能夠獲取HTTPS數(shù)據(jù),訪問(wèn),然后找到對(duì)應(yīng)的會(huì)話,再切換到Response的WebView模塊,單擊“Responsebodyisencoded.Clicktodecode.”,如圖9-50所示。

圖9-50單擊“Responsebodyisencoded.Clicktodecode.”

可以看到成功對(duì)HTTPS進(jìn)行了抓包,如圖9-51所示。

圖9-51成功抓包

②?Android操作系統(tǒng)抓包。

Android操作系統(tǒng)為修改后的Linux操作系統(tǒng),如果要使用Fiddler對(duì)Android手機(jī)中的應(yīng)用進(jìn)行抓包,那么首先要保證Android終端設(shè)備與Fiddler服務(wù)在同一個(gè)局域網(wǎng)中,互相能夠ping通。Android手機(jī)可以連入運(yùn)行Fiddler服務(wù)計(jì)算機(jī)開啟的熱點(diǎn),這里將對(duì)Android模擬器進(jìn)行抓包分析。啟動(dòng)好模擬器后,打開瀏覽器訪問(wèn)IPv4:Fiddler端口號(hào),下載Fiddler證書,如圖9-52所示。

②?Android操作系統(tǒng)抓包。

Android操作系統(tǒng)為修改后的Linux操作系統(tǒng),如果要使用Fiddler對(duì)Android手機(jī)中的應(yīng)用進(jìn)行抓包,那么首先要保證Android終端設(shè)備與Fiddler服務(wù)在同一個(gè)局域網(wǎng)中,互相能夠ping通。Android手機(jī)可以連入運(yùn)行Fiddler服務(wù)計(jì)算機(jī)開啟的熱點(diǎn),這里將對(duì)Android模擬器進(jìn)行抓包分析。啟動(dòng)好模擬器后,打開瀏覽器訪問(wèn)IPv4:Fiddler端口號(hào),下載Fiddler證書,如圖9-52所示。圖9-52下載Fiddler證書

安裝完Fiddler證書之后進(jìn)行WLAN設(shè)置,手動(dòng)配置代理服務(wù)器的IP和端口后(圖9-53)便可開始抓包。圖9-53手動(dòng)配置代理服務(wù)器

③?iOS操作系統(tǒng)抓包。

首先將iOS設(shè)備連入局域網(wǎng),然后使用瀏覽器訪問(wèn)IPv4:Fiddler端口號(hào),下載Fiddler證書。在“通用”→“描述文件與設(shè)備管理”中安裝Fiddler證書文件,如圖9-54所示。

到“設(shè)置”→“無(wú)線局域網(wǎng)”中配置Fiddler的IP和端口后即可進(jìn)行抓包,如圖9-55所示。圖9-54安裝Fiddler證書文件圖9-55配置Fiddler的IP和端口

3.?BurpSuite等其他工具

BurpSuite是Web應(yīng)用程序滲透測(cè)試集成平臺(tái)。BurpSuite不單單是一款代理抓包工具,更是將網(wǎng)絡(luò)爬蟲、網(wǎng)站掃描、暴力破解、漏洞查找等一系列功能集合并支持不斷擴(kuò)展的Java工具。BurpSuite分為社區(qū)版和付費(fèi)版兩種,一般來(lái)說(shuō)社區(qū)版的功能已經(jīng)能夠滿足日常需求。

1)使用BurpSuite進(jìn)行抓包

打開BurpSuite軟件,選擇“Proxy”→“Options”命令,在代理監(jiān)聽中設(shè)置監(jiān)聽端口。如果是在本機(jī)上進(jìn)行抓包分析,則直接設(shè)置“:開放的端口號(hào)”即可,然后切換到“Proxy”→“Intercept”,開啟監(jiān)聽。同時(shí),還需要在本機(jī)的代理上設(shè)置相應(yīng)的IP和端口進(jìn)行監(jiān)聽,如圖9-56所示。圖9-56設(shè)置局域網(wǎng)

此時(shí),用瀏覽器訪問(wèn)任意網(wǎng)站,都會(huì)自動(dòng)設(shè)置斷點(diǎn)并在BurpSuite中顯示,如圖9-57所示。圖9-57?BurpSuite中顯示界面

利用該工具對(duì)該請(qǐng)求的參數(shù)和內(nèi)容進(jìn)行修改后,單擊“Forward”按鈕放行數(shù)據(jù)包,也可以單擊“Drop”按鈕放棄數(shù)據(jù)包,同時(shí)還可以將該請(qǐng)求發(fā)送到BurpSuite平臺(tái)中的任意工具模塊中進(jìn)行下一步的使用(圖9-58),所有的抓包記錄都會(huì)自動(dòng)被存儲(chǔ)在BurpSuite平臺(tái)中。圖9-58對(duì)數(shù)據(jù)包進(jìn)行操作

2)?BurpSuite界面介紹

BurpSuite界面主要包括菜單欄、模塊欄和詳細(xì)頁(yè)面欄(圖9-59)。其中工具欄顯示了當(dāng)前BurpSuite平臺(tái)所含的工具,簡(jiǎn)要介紹如下。

Target:通過(guò)BurpSuite掃描功能對(duì)各個(gè)網(wǎng)站進(jìn)行深度掃描,最后以站點(diǎn)地圖的形式顯示,包括站點(diǎn)內(nèi)容、請(qǐng)求列表、請(qǐng)求內(nèi)容、網(wǎng)站漏洞、解決方法等信息。

Proxy:使用最頻繁的模塊,在Options標(biāo)簽頁(yè)中可以設(shè)置代理的服務(wù)器IP和端口號(hào)(這里的服務(wù)器IP和端口號(hào)要與瀏覽器代理中的一致);在Intercept標(biāo)簽頁(yè)中開啟或關(guān)閉監(jiān)聽(圖9-60),就可以對(duì)每個(gè)請(qǐng)求做Forward、Drop等操作;在HTTPhistory標(biāo)簽頁(yè)中可以看到所有的HTTP歷史記錄,它支持過(guò)濾規(guī)則(圖9-61)。圖9-60?Intercept標(biāo)簽頁(yè)圖9-61?HTTPhistory標(biāo)簽頁(yè)

Spider:要使用該功能就要先通過(guò)Proxy功能抓包,然后右擊,在彈出的快捷菜單中選擇“sendtospider”命令,即可開始爬蟲功能。

Scanner:首先使用Proxy進(jìn)行抓包,然后右擊,在彈出的快捷菜單中選擇“doaactivescan”命令。

Intruder:設(shè)置字典實(shí)現(xiàn)爆破攻擊。

Repeater:數(shù)據(jù)包

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論