應(yīng)用)
1. 從零到一Wireshark在CTF流量分析中的核心定位如果你剛接觸CTFCapture The Flag比賽尤其是像BUUCTF這樣的國內(nèi)知名賽事面對一個動輒幾十兆甚至上百兆的.pcap或.pcapng流量包文件第一感覺很可能是無從下手。密密麻麻的數(shù)據(jù)包列表各種陌生的協(xié)議縮寫感覺像在看天書。別慌這正是每個新手必經(jīng)之路。Wireshark本質(zhì)上是一個網(wǎng)絡(luò)協(xié)議分析器它的強大之處在于能將網(wǎng)絡(luò)上流動的二進制“比特流”翻譯成我們能看懂的應(yīng)用層數(shù)據(jù)。在CTF的Misc雜項或Web類題目中流量分析是高頻考點其核心定位就是從海量的、看似無序的網(wǎng)絡(luò)通信記錄中找到出題人故意隱藏或泄露的關(guān)鍵信息Flag。為什么流量包能藏Flag因為網(wǎng)絡(luò)是透明的。一次完整的HTTP訪問、一次FTP文件傳輸、一次DNS查詢、甚至是一次可疑的ICMP“ping”請求所有數(shù)據(jù)交換的“元數(shù)據(jù)”和“載荷”都可能被記錄在案。出題人可能會把Flag藏在某個圖片文件的傳輸里HTTP流量編碼后放在DNS查詢的域名中DNS流量甚至是通過TCP流量的特定字段順序來隱寫。你的任務(wù)就是扮演一個“網(wǎng)絡(luò)偵探”使用Wireshark這個“顯微鏡”從這些記錄中還原出完整的犯罪現(xiàn)場找到被竊取的“寶藏”Flag。對于新手而言直接上手分析復(fù)雜流量容易勸退。我的建議是先建立信心CTF流量分析題目的答案Flag一定在流量包里并且一定有相對高效的路徑可以抵達(dá)。出題人不是為了難倒你而難倒你而是希望你掌握某種特定的分析技巧。接下來我將結(jié)合在BUUCTF等平臺實戰(zhàn)中提煉出的5個核心技巧帶你一步步拆解流量包你會發(fā)現(xiàn)這一切都有跡可循。2. 實戰(zhàn)前夜Wireshark高效配置與過濾語法精要工欲善其事必先利其器。直接打開Wireshark載入大流量包就開干效率極低。正確的姿勢是先做好配置并熟練掌握過濾語法這能幫你瞬間過濾掉99%的無用噪音。2.1 關(guān)鍵界面配置與首選項優(yōu)化安裝完Wireshark后別急著抓包。首先進入編輯 - 首選項。外觀 - 列默認(rèn)的列可能不夠用。我強烈建議添加兩列tcp.stream這是TCP流追蹤的命門。添加后每個TCP數(shù)據(jù)包都會顯示其所屬的“流”編號。同一會話比如一次完整的HTTP請求響應(yīng)的數(shù)據(jù)包會有相同的流編號。http.request.uri或http.file_data針對HTTP分析非常有用能直接在列表里看到請求的URI或文件數(shù)據(jù)片段。 添加方法點擊“”號字段名稱填入上述字段點擊確定即可。協(xié)議 - HTTP確?!敖鈮篏Zip內(nèi)容”是勾選的。很多Web服務(wù)器會返回GZip壓縮的數(shù)據(jù)不打開這個選項你看到的就是亂碼。布局選擇你喜歡的布局我個人習(xí)慣“數(shù)據(jù)包列表”在上“數(shù)據(jù)包詳情”在中“數(shù)據(jù)包字節(jié)”在下這樣瀏覽效率最高。2.2 過濾表達(dá)式你的“手術(shù)刀”Wireshark的過濾欄是你最強大的武器。掌握它你就能從數(shù)據(jù)包海洋中撈出你想要的那根針?;A(chǔ)過濾基于協(xié)議/地址http只看HTTP協(xié)議流量。dns只看DNS協(xié)議流量。ip.addr 192.168.1.100只看與這個IP地址相關(guān)的所有流量源或目標(biāo)。ip.src 192.168.1.1或ip.dst 10.0.0.1只看源IP或目標(biāo)IP。tcp.port 80或udp.port 53只看特定端口的流量。進階過濾基于包內(nèi)容http.request.method GET只顯示HTTP GET請求。http contains “flag”或http contains “FLAG”在HTTP協(xié)議中搜索包含“flag”關(guān)鍵字的數(shù)據(jù)包。這是最常用的技巧之一但出題人不會這么直白。tcp contains “password”在TCP載荷中搜索“password”。dns.qry.name contains “secret”在DNS查詢的域名中搜索“secret”。組合過濾使用and與、or或、not非進行組合。例如http and ip.addr 192.168.1.100只看該IP的HTTP流量。例如tcp.port 80 or udp.port 53只看Web和DNS流量。注意過濾表達(dá)式對大小寫敏感且字段名中的點號.是固定格式。當(dāng)你輸入時Wireshark會有自動補全提示善用這個功能可以避免拼寫錯誤。實操心得面對一個新流量包我習(xí)慣先敲一個http看看Web流量是否活躍再敲dns看看有沒有奇怪的域名查詢。如果流量很大先用ip.addr過濾出疑似目標(biāo)題目描述可能給出IP線索或內(nèi)網(wǎng)IP如192.168.x.x,10.x.x.x的流量能極大縮小范圍。3. 核心技巧一Follow TCP/UDP/SSL Stream還原完整會話這是最重要、最核心、使用頻率最高的技巧沒有之一。單個數(shù)據(jù)包就像一封信的一頁紙而Follow Stream功能能把屬于同一次對話的所有“紙”按順序裝訂成冊讓你看到完整的“信件”。如何操作在數(shù)據(jù)包列表區(qū)右鍵任意一個TCP、UDP或SSL/TLS數(shù)據(jù)包 - 選擇追蹤流-TCP流/UDP流/SSL流。一個包含完整ASCII或EBCDIC碼表示的文本窗口會彈出。實戰(zhàn)解析以BUUCTF常見題型為例HTTP流這是最常見的。你可能會看到一個完整的HTTP交互GET /index.php?filesecret.txt HTTP/1.1 Host: target.com ...往下翻緊接著就是服務(wù)器的響應(yīng)HTTP/1.1 200 OK ... html... flag{this_is_a_secret} .../htmlFlag可能就直接在響應(yīng)的HTML、JSON數(shù)據(jù)里也可能在響應(yīng)頭如Flag: xxx中。TCP流非HTTP可能是一個自定義協(xié)議的通信。比如客戶端發(fā)送一串字符服務(wù)器返回一串字符。Flag可能就藏在其中一方的發(fā)送內(nèi)容里。關(guān)鍵點注意看流的內(nèi)容是否像Base64編碼末尾常有、十六進制、或是有規(guī)律的偏移可能是凱撒密碼、異或等。Wireshark的流窗口默認(rèn)以ASCII顯示對于非打印字符會顯示為點.此時要留意右下角的“顯示數(shù)據(jù)為”選項可以切換為“原始數(shù)據(jù)”、“C數(shù)組”等格式進行復(fù)制。UDP流常見于DNS、TFTP等協(xié)議。DNS流里可能包含flag.badguy.com這樣的子域名查詢其Flag可能就編碼在子域名中如ZmxhZ3tleGFtcGxlfQ.badguy.com其中ZmxhZ3tleGFtcGxlfQ是flag{example}的Base64編碼。避坑指南Follow出來的流窗口默認(rèn)只顯示從A到B或從B到A的單向流。窗口左下角有“整個會話”、“客戶端到服務(wù)器”等選項。一定要選擇“整個會話”才能看到完整的來回對話避免遺漏關(guān)鍵信息。另外流內(nèi)容可以直接全選復(fù)制出來粘貼到文本編輯器或解碼工具中進行下一步分析。4. 核心技巧二文件導(dǎo)出與協(xié)議深度挖掘流量包里經(jīng)常傳輸文件圖片、壓縮包、文檔等。Wireshark可以像“時光機”一樣把這些文件從網(wǎng)絡(luò)流量中提取出來。4.1 通用文件導(dǎo)出方法文件 - 導(dǎo)出對象 - HTTP...或DICOM、SMB等。這會列出所有通過該協(xié)議傳輸?shù)奈募?。你可以看到文件名、?nèi)容類型如image/png、大小等。直接選中文件保存即可。這是找回被傳輸?shù)膱D片、文檔的最快方式。4.2 手動提取原始數(shù)據(jù)對于非標(biāo)準(zhǔn)協(xié)議傳輸?shù)奈募蛘吣阆胩崛∧骋欢翁囟ǖ腡CP/UDP載荷需要使用“導(dǎo)出分組字節(jié)流”。首先使用Follow Stream功能找到包含文件數(shù)據(jù)的流。確認(rèn)文件的開始和結(jié)束。在流窗口的“原始數(shù)據(jù)”或“十六進制轉(zhuǎn)儲”視圖下精確選擇從文件頭開始到文件尾結(jié)束的十六進制數(shù)據(jù)注意不是ASCII文本。例如一個PNG圖片的頭是89 50 4E 47JPG是FF D8 FF E0。復(fù)制選中的十六進制文本。使用外部工具如xxd、010 Editor、CyberChef將十六進制文本還原為二進制文件。Linux/Macecho -n “89504E47...” | xxd -r -p output.png使用CyberChef將復(fù)制的十六進制文本粘貼到輸入?yún)^(qū)使用From Hex配方然后使用Save to file。4.3 協(xié)議深度挖掘以FTP為例有些協(xié)議本身就攜帶了文件操作指令。例如FTP協(xié)議。過濾ftp你可以看到USER、PASS登錄命令以及RETR下載、STOR上傳命令。如果看到RETR flag.txt或STOR secret.zip那么緊接著的數(shù)據(jù)包連接通常是另一個TCP端口里就包含了這個文件的內(nèi)容。你需要找到對應(yīng)的數(shù)據(jù)連接可能通過FTP的PORT或PASV命令建立的端口然后對這個數(shù)據(jù)連接進行Follow TCP Stream就能看到文件的原始內(nèi)容。實操心得導(dǎo)出HTTP對象是最簡單的優(yōu)先嘗試。如果沒找到再考慮手動提取。手動提取的關(guān)鍵是準(zhǔn)確識別文件頭尾。多積累常見文件的魔術(shù)字Magic Bytes這對CTF和逆向都很有幫助。另外Wireshark的“導(dǎo)出分組字節(jié)流”功能在數(shù)據(jù)包列表右鍵-“導(dǎo)出分組字節(jié)流”有時更方便它允許你直接導(dǎo)出選中數(shù)據(jù)包的原始字節(jié)但需要你事先通過過濾精準(zhǔn)定位到文件傳輸?shù)臄?shù)據(jù)包范圍。5. 核心技巧三字符串搜索與編碼識別當(dāng)Flag沒有明文出現(xiàn)或者會話流太多無從下手時全局搜索是“地毯式轟炸”的好方法。5.1 全局字符串搜索編輯 - 查找分組。搜索范圍選擇“分組字節(jié)流”字符串類型選擇“字符串”或“十六進制值”。搜索常見Flag格式flag{、FLAG{、ctf{、key{。這是最直接的。搜索提示性詞匯題目描述可能暗示了關(guān)鍵詞如secret、password、hint、findme。搜索特殊字符有時Flag可能被編碼但包含特殊字符如Base64填充、%URL編碼、\uUnicode轉(zhuǎn)義。5.2 編碼識別與初步判斷在Follow Stream或搜索出的數(shù)據(jù)中如果看到一段奇怪的字符串如何判斷其編碼Base64字符集為A-Za-z0-9/長度通常是4的倍數(shù)末尾可能有填充。例如ZmxhZw解碼后是flag。Hex十六進制僅包含0-9a-fA-F長度通常為偶數(shù)。例如666c6167解碼后是flag。URL編碼包含大量%符號如%66%6c%61%67解碼后是flag。HTML實體編碼如#102;#108;#97;#103;解碼后是flag。莫爾斯電碼、培根密碼等這需要觀察字符模式點/劃A/B分組??焖俳獯a工具我強烈推薦使用CyberChef這個在線工具。它集成了上百種編解碼、加密、壓縮操作可以像搭積木一樣把操作連起來比如 Base64解碼 - 十六進制解碼 - ROT13解密。把可疑字符串丟進去用常見的解碼配方From Base64, From Hex, URL Decode等試一下往往有奇效。注意事項全局搜索非常消耗資源對于超大流量包可能會卡頓甚至崩潰。建議先通過協(xié)議過濾如http縮小范圍后再搜索。另外搜索時注意大小寫可以分別嘗試。有時出題人會把Flag進行多層嵌套編碼比如Base64編碼后再進行Hex編碼這就需要你在CyberChef里進行多次解碼嘗試。6. 核心技巧四統(tǒng)計與端點分析發(fā)現(xiàn)異常行為當(dāng)流量中沒有明顯的文件傳輸或Flag字符串時攻擊者的異常行為模式可能就是突破口。Wireshark的統(tǒng)計功能提供了宏觀視角。6.1 會話統(tǒng)計Conversations統(tǒng)計 - 會話。這個視圖列出了所有通信對IP A - IP B的流量統(tǒng)計包括數(shù)據(jù)包數(shù)、字節(jié)數(shù)。找“話癆”查看哪個IP地址發(fā)送或接收的數(shù)據(jù)包/字節(jié)數(shù)異常多它可能就是攻擊源或受害目標(biāo)。找“異常連接”一個內(nèi)網(wǎng)IP與大量外部IP進行短暫通信可能是端口掃描行為?;蛘咭粋€客戶端與服務(wù)器在非常用端口非80、443上有大量通信這可能是一個后門或自定義服務(wù)。6.2 端點統(tǒng)計Endpoints統(tǒng)計 - 端點。這個視圖按單個IP或MAC地址統(tǒng)計流量。功能與會話統(tǒng)計類似但視角更集中于單個主機。識別掃描行為如果某個IP向目標(biāo)網(wǎng)段的大量不同端口發(fā)送了SYN包TCP連接請求但在會話統(tǒng)計中這些連接大多沒有后續(xù)數(shù)據(jù)交換即未完成三次握手這很可能是端口掃描。6.3 協(xié)議分級統(tǒng)計Protocol Hierarchy統(tǒng)計 - 協(xié)議分級。以樹狀圖顯示各層協(xié)議的流量占比。發(fā)現(xiàn)非常用協(xié)議如果在一個看似普通的Web訪問流量中出現(xiàn)了占比異常的協(xié)議比如ICMP、TELNET、IRC或者有大量的DNS查詢遠(yuǎn)超正常網(wǎng)頁瀏覽所需這些協(xié)議就值得深入調(diào)查。例如Flag可能通過ICMP的ping數(shù)據(jù)包載荷Data字段進行外傳ICMP隧道。實戰(zhàn)應(yīng)用在BUUCTF的一道題目中我打開協(xié)議分級發(fā)現(xiàn)除了HTTP還有相當(dāng)比例的TELNET流量。這極不正常因為TELNET是明文傳輸?shù)墓爬蠀f(xié)議。我立刻過濾telnetFollow TCP Stream果然在登錄后的交互命令中發(fā)現(xiàn)了操作系統(tǒng)的命令執(zhí)行記錄并最終在其中找到了Flag。統(tǒng)計功能幫你從“大海”定位到“可疑海域”然后再用過濾和Follow Stream這些“潛水工具”去海底撈針。7. 核心技巧五高級過濾與顯示字段技巧掌握了基礎(chǔ)過濾后一些高級過濾和顯示技巧能讓你如虎添翼。7.1 過濾特定長度的數(shù)據(jù)包攻擊者有時會把數(shù)據(jù)藏在特定大小的數(shù)據(jù)包里。tcp.len 100過濾TCP載荷長度恰好為100字節(jié)的數(shù)據(jù)包。udp.length 50過濾UDP載荷長度恰好為50字節(jié)的數(shù)據(jù)包。frame.len 64過濾整個幀包括鏈路層頭長度為64字節(jié)的數(shù)據(jù)包可能是特殊的控制幀或心跳包。7.2 過濾包含特定字節(jié)模式的數(shù)據(jù)包這比字符串搜索更底層可以找到非打印字符的模式。tcp.payload matches “\\x89PNG”過濾TCP載荷中包含PNG文件頭十六進制89 50 4E 47的數(shù)據(jù)包。注意\x后面跟兩個十六進制數(shù)字。udp.payload[0:2] “\\xff\\xd8”過濾UDP載荷的前兩個字節(jié)是JPG文件頭FF D8的數(shù)據(jù)包。[0:2]表示從偏移0開始取2個字節(jié)。7.3 自定義列與著色規(guī)則自定義列如前所述添加tcp.stream列至關(guān)重要。你還可以添加http.content_type來快速識別文件類型。著色規(guī)則視圖 - 著色規(guī)則。你可以創(chuàng)建自己的規(guī)則比如將所有包含字符串flag的數(shù)據(jù)包標(biāo)記為亮綠色這樣它們在列表中會非常醒目?;蛘邔NS流量染成淺藍(lán)色HTTP流量染成黃色便于視覺區(qū)分。實操心得高級過濾通常用于解決“奇葩”題目。比如一道題Flag被分割成很多份放在一系列長度固定的ICMP Echo Request包里。用icmp and frame.len 98過濾后一下子就得到了所有相關(guān)數(shù)據(jù)包再導(dǎo)出其Data字段拼接即可。自定義著色規(guī)則在長期分析中能極大提升效率讓你的眼睛快速聚焦到關(guān)鍵信息上。8. BUUCTF真題實戰(zhàn)解析從流量到Flag的完整推演讓我們用一個虛構(gòu)但融合了BUUCTF常見考點的綜合案例來串聯(lián)運用上述技巧。假設(shè)我們拿到一個名為mystery.pcapng的流量包。第一步初步偵察與協(xié)議概覽打開文件先看協(xié)議分級。發(fā)現(xiàn)主要流量是HTTP和DNS有少量ICMP。總數(shù)據(jù)包數(shù)約5000個不算大。第二步優(yōu)先檢查HTTP流量過濾http。瀏覽列表發(fā)現(xiàn)有幾個對/upload.php的POST請求和一個對/flag.zip的GET請求。后者立刻引起注意。右鍵這個GET請求的數(shù)據(jù)包 -追蹤流-TCP流。在服務(wù)器響應(yīng)中看到了HTTP/1.1 200 OK和Content-Type: application/zip。太好了有一個zip文件被下載了。文件 - 導(dǎo)出對象 - HTTP...果然在列表里看到了flag.zip保存它。第三步處理導(dǎo)出的文件嘗試解壓flag.zip發(fā)現(xiàn)需要密碼。密碼很可能在流量包里。 回到Wireshark在剛才的HTTP流窗口顯示整個會話仔細(xì)看客戶端下載者之前的請求。在GET/flag.zip之前有一個POST請求到/login.php表單數(shù)據(jù)是usernameadminpassword7c6a180b36896a0a8c02787eeafb0e4c。這串7c6a...看起來像MD5哈希值。使用CyberChef或在線MD5解密網(wǎng)站嘗試破解。運氣好這是一個常見密碼的MD5比如password1。用這個密碼成功解壓flag.zip里面是一個flag.txt打開一看只有一行The final flag is not here. Look into the DNS.第四步轉(zhuǎn)向DNS流量過濾dns。發(fā)現(xiàn)大量對類似s3cr3t1.badguy.com、s3cr3t2.badguy.com... 的A記錄查詢。子域名部分是連續(xù)的s3cr3t加數(shù)字。右鍵任意一個DNS查詢包 -追蹤流-UDP流。在流內(nèi)容中可以看到查詢的完整域名。將所有查詢的域名子部分s3cr3t1,s3cr3t2...按順序提取出來。發(fā)現(xiàn)它們看起來像Base64czNjcgczNjcg... 但似乎不完整??紤]到DNS標(biāo)簽長度限制63字節(jié)可能Flag被分片了。將所有這些子域名字符串拼接起來czNjcgczNjcg...。但直接Base64解碼是亂碼。嘗試每段單獨解碼czNjcg-s3cr。將所有解碼結(jié)果拼接s3cr3ts3cr3t...。這看起來像重復(fù)的單詞。靈光一現(xiàn)會不會是每個子域名對應(yīng)一個字符的編碼仔細(xì)看s3cr3t1解碼后是s3cr這不對。換個思路也許子域名本身就是編碼后的字符串。s3cr3t1去掉數(shù)字1得到s3cr3t這像是“secret”的變體leet語。數(shù)字可能是索引。提取所有子域名的核心部分和數(shù)字(s3cr3t,1),(s3cr3t,2)... 這沒有幫助?;氐阶畛醯乃悸穝3cr3t1.badguy.com 嘗試把s3cr3t1整體進行Base32、Base58、Base91解碼或者會不會是十六進制s3cr3t1包含字母和數(shù)字但g,u,y等超出了0-9a-f范圍不是純Hex。使用高級過濾dns.qry.name contains “badguy.com”過濾出所有相關(guān)查詢。然后使用tsharkWireshark的命令行版本快速提取字段tshark -r mystery.pcapng -Y “dns.qry.name contains badguy.com” -T fields -e dns.qry.name。將輸出保存到文件再用腳本處理。寫一個簡單的Python腳本提取每個域名的子部分去掉.badguy.com和末尾的數(shù)字然后拼接。假設(shè)提取到s3cr3tpasswordis3cr3tpasswordi... 這看起來像“s3cr3tpasswords3cr3tpassword”的循環(huán)不對。換個角度題目提示“Look into the DNS” 會不會是DNS隧道一種常見的DNS隧道工具如iodine會將數(shù)據(jù)編碼到子域名中。其編碼模式可能是Base32。將子域名部分如s3cr3t1嘗試進行Base32解碼。標(biāo)準(zhǔn)Base32字符集是A-Z2-7而s3cr3t1包含小寫字母和數(shù)字需要先轉(zhuǎn)大寫。S3CR3T1進行Base32解碼... 得到亂碼??赡懿皇?。最終發(fā)現(xiàn)在反復(fù)查看DNS流時注意到除了A記錄查詢還有大量的TXT記錄查詢過濾dns and dns.qry.type 16TXT類型。果然有一系列對chunk1.badguy.com、chunk2.badguy.com... 的TXT查詢。追蹤這些TXT查詢的響應(yīng)包。在響應(yīng)中TXT記錄字段包含了一段段Base64編碼的字符串。將所有TXT記錄里的Base64字符串按chunk后的數(shù)字順序拼接然后解碼最終得到了完整的Flagflag{dns_txt_exfil_is_cool}。復(fù)盤這道題綜合考察了HTTP文件導(dǎo)出、密碼破解、DNS協(xié)議分析、多種編碼識別以及數(shù)據(jù)提取和拼接的能力。關(guān)鍵轉(zhuǎn)折點在于從HTTP的假Flag提示轉(zhuǎn)向DNS并且沒有局限于常見的A記錄而是發(fā)現(xiàn)了更隱蔽的TXT記錄傳輸。這要求分析者不僅會工具操作還要有攻擊者思維了解數(shù)據(jù)外泄Exfiltration的多種渠道。9. 常見問題排查與獨家避坑技巧在實際操作中你會遇到各種奇怪的問題。這里記錄了一些我踩過的坑和總結(jié)的技巧。Q1Follow TCP Stream窗口里顯示的都是亂碼/十六進制看不到文字A1這通常發(fā)生在非HTTP的TCP連接上比如加密流量SSL/TLS或純二進制協(xié)議。首先檢查左下角是否誤選了“十六進制轉(zhuǎn)儲”視圖切換回“ASCII”。如果還是亂碼那說明傳輸?shù)木褪欠俏谋緮?shù)據(jù)。此時“十六進制轉(zhuǎn)儲”視圖反而是有用的你可以在這里復(fù)制原始的十六進制值進行下一步分析如圖片提取、自定義解碼。對于SSL/TLS流量除非你有私鑰否則無法解密但題目通常不會給加密流量讓你解密除非特別說明。Q2過濾表達(dá)式輸入正確但提示語法錯誤A2最常見的原因字段名拼寫錯誤。善用自動補全。比較的值類型不匹配。比如tcp.port “80”字符串和tcp.port 80整數(shù)在舊版本W(wǎng)ireshark中可能表現(xiàn)不同建議用整數(shù)。包含空格或特殊字符的字符串值需要用雙引號括起來如http.request.uri contains “/admin/login”。Q3導(dǎo)出的文件如圖片損壞打不開A3這通常是因為提取的數(shù)據(jù)范圍不準(zhǔn)確。對于HTTP導(dǎo)出確保導(dǎo)出的是完整的響應(yīng)體。Wireshark的導(dǎo)出對象功能通常是可靠的。對于手動提取務(wù)必確認(rèn)你復(fù)制的十六進制數(shù)據(jù)完整且精確地包含了文件的所有字節(jié)從文件頭魔術(shù)字開始到文件結(jié)束標(biāo)記為止。多一個或少一個字節(jié)都會導(dǎo)致文件損壞。對于PNG、ZIP等有明確結(jié)構(gòu)的文件可以使用binwalk或foremost工具嘗試從你保存的原始二進制文件中自動掃描并提取嵌入的文件有時能救回來。Q4流量包太大Wireshark卡死怎么辦A4先過濾后分析不要在全量數(shù)據(jù)包上做任何耗資源的操作如全局搜索、統(tǒng)計圖表。先用ip.addr、tcp.port、http等過濾條件大幅縮小范圍。使用tshark命令行工具對于簡單的提取、統(tǒng)計任務(wù)tshark比GUI更高效。例如提取所有HTTP請求的URLtshark -r huge.pcap -Y http -T fields -e http.request.full_uri urls.txt。分割流量文件文件 - 導(dǎo)出特定分組可以按時間或過濾器結(jié)果保存一個小范圍的數(shù)據(jù)包然后分析這個小文件。獨家避坑技巧養(yǎng)成“標(biāo)記”習(xí)慣在分析過程中對重要的數(shù)據(jù)包如發(fā)現(xiàn)可疑請求、關(guān)鍵響應(yīng)右鍵點擊“標(biāo)記/取消標(biāo)記分組”快捷鍵CtrlM。被標(biāo)記的數(shù)據(jù)包會高亮顯示。這樣在來回翻閱時能快速定位。善用“復(fù)制”功能在數(shù)據(jù)包詳情面板右鍵任意字段可以選擇“復(fù)制” - “值”、“As Filter”、“描述”等。其中“As Filter”非常有用它能自動生成一個過濾表達(dá)式精確匹配當(dāng)前字段。例如在一個HTTP數(shù)據(jù)包詳情里右鍵Hypertext Transfer Protocol下的Host字段的值選擇“作為過濾器應(yīng)用” - “選中”就會自動生成http.host “target.com”的過濾表達(dá)式并應(yīng)用。時間就是線索關(guān)注數(shù)據(jù)包的時間戳?xí)r間列。一次完整的攻擊鏈其數(shù)據(jù)包在時間上往往是連續(xù)的。如果發(fā)現(xiàn)某個時間點突然出現(xiàn)大量密集的ICMP或DNS請求這可能就是數(shù)據(jù)外傳開始的信號。你可以通過frame.time “某時某分”這樣的過濾表達(dá)式來聚焦特定時間段。最后也是最重要的心得保持耐心和好奇心。CTF流量分析就像解謎有時需要嘗試多種思路。當(dāng)一條路走不通時回到起點重新審視協(xié)議分級、端點統(tǒng)計看看有沒有遺漏的“異常點”。每一次成功的分析都會讓你對網(wǎng)絡(luò)協(xié)議和攻擊手法有更深的理解。這份理解遠(yuǎn)比拿到一個Flag更有價值。