以下內(nèi)容主要是引用自合天網(wǎng)安中的一個實驗案例:***A通過ARP欺騙,使用Wireshark獲取了整個局域網(wǎng)內(nèi)的網(wǎng)絡流量信息。無意之中,他發(fā)現(xiàn)有人在某個網(wǎng)站上上傳了一份文件。但是他不知道怎么樣通過Wireshark去還原這份文件,沒辦法,他將監(jiān)聽到的數(shù)據(jù)包保存為了一份Wireshark的監(jiān)聽記錄,打算去向你請教。你能幫助他找到那份上傳的文件嗎?
創(chuàng)新互聯(lián)主要業(yè)務有網(wǎng)站營銷策劃、網(wǎng)站建設、成都網(wǎng)站建設、微信公眾號開發(fā)、小程序開發(fā)、H5頁面制作、程序開發(fā)等業(yè)務。一次合作終身朋友,是我們奉行的宗旨;我們不僅僅把客戶當客戶,還把客戶視為我們的合作伙伴,在開展業(yè)務的過程中,公司還積累了豐富的行業(yè)經(jīng)驗、全網(wǎng)整合營銷推廣資源和合作伙伴關系資源,并逐漸建立起規(guī)范的客戶服務和保障體系。
我們可以自己準備一張圖片test.jpg,并隨便找一個允許上傳的網(wǎng)站,然后用Wireshark將上傳的過程抓包,這里我已經(jīng)將自己的抓包結果保存成文件catchme.pcapng,并在附件里提供下載。
打開抓包文件之后,會發(fā)現(xiàn)數(shù)據(jù)記錄一共有344條。如果單純的從開始到結尾去一條一條的審計,是非常費力的事情。
這里我們使用顯示過濾器進行過濾,由于上傳文件采用的是HTTP協(xié)議,因而使用過濾規(guī)則“http”,過濾之后發(fā)現(xiàn)數(shù)據(jù)包由原來的344個變成了137個,這樣就很容易幫我們分析了。仔細分析,我們會在第209條數(shù)據(jù)包的info中看到upload這個詞,我們懷疑這條就是涉及到上傳的數(shù)據(jù)包。
由于上傳文件都是采用POST方法,因而我們也可以使用過濾規(guī)則“http.request.method==POST”進行更精確的過濾,這時就只有47個數(shù)據(jù)包了。因而掌握數(shù)據(jù)包過濾,是熟練掌握Wireshark的必備技能之一。
雖然我們看到了有upload關鍵字,有POST方法,但是我們不能確定是不是真的就是上傳文件的那個請求。雙擊第209號數(shù)據(jù)包進行專門分析,在應用層數(shù)據(jù)中可以看到確實是上傳了文件,而且文件名是test.jpg。
在傳輸層部分可以看到,由于文件比較大,TCP協(xié)議將其分成了16個數(shù)據(jù)段Segment,每個數(shù)據(jù)段都是一個獨立的數(shù)據(jù)包,點擊各個Frame,就可以看到數(shù)據(jù)包中的內(nèi)容。
但問題是每個數(shù)據(jù)包中都只包含了上傳文件的一部分,要想還原上傳的文件,就必須將這些被分片的數(shù)據(jù)包重新組合成一個整體。在Wireshark中提供了一項“數(shù)據(jù)流追蹤”功能,就可以來完成這項任務。
回到Wireshark的主界面,在209號數(shù)據(jù)包上點擊右鍵,選擇“追蹤流/TCP流”,
這時整個TCP流就會在一個單獨的窗口中顯示出來,我們注意到這個窗口中的文件以兩種顏色顯示,其中紅色用來標明從源地址前往目的地址的流量,而藍色用來區(qū)分出相反方向也就是從目的地址到源地址的流量。這里顏色的標記以哪方先開始通信為準,一般情況下都是由客戶端主動發(fā)起與服務器的連接,所以大都是將客戶端的通信顯示為紅色。
由于上傳的文件都是在客戶端發(fā)出的數(shù)據(jù)部分提交的,因而我們可以過濾掉服務器發(fā)回的響應信息。在下方的數(shù)據(jù)流向中選擇從客戶端到服務器的流向,這時候就沒有響應部分出現(xiàn)了。
將數(shù)據(jù)流保存成原始文件,以便下一步處理。需要注意的是,在保存之前一定要將數(shù)據(jù)的顯示格式設置為“原始數(shù)據(jù)”。
這里將文件的擴展名指定為.bin,以使用二進制形式保存文件。
在下篇博文中我們將利用WinHex從這個原始文件中將上傳的圖片還原出來。