-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
tcp抓包命令(tcp 抓包)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于tcp抓包命令的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com
本文目錄:
一、網(wǎng)絡(luò)抓包原理
本文以App作為例子,實(shí)際應(yīng)用不限于App范圍。
大部分場(chǎng)合都可以通過程序調(diào)試來定位問題,但有些場(chǎng)景使用抓包來定位接口問題更準(zhǔn)確、更方便,如以下場(chǎng)景:
要實(shí)現(xiàn)對(duì)App的網(wǎng)絡(luò)數(shù)據(jù)抓包,需要監(jiān)控App與服務(wù)器交互之間的網(wǎng)絡(luò)節(jié)點(diǎn),監(jiān)控其中任意一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)(網(wǎng)卡),獲取所有經(jīng)過網(wǎng)卡中的數(shù)據(jù),對(duì)這些數(shù)據(jù)按照網(wǎng)絡(luò)協(xié)議進(jìn)行解析,這就是抓包的基本原理。
但是中間網(wǎng)絡(luò)節(jié)點(diǎn),不受我們控制,所以基本無法實(shí)現(xiàn)抓包的,只能在客戶端和服務(wù)端進(jìn)行抓包。
通常我們監(jiān)控本地網(wǎng)卡數(shù)據(jù),如下圖:
本地網(wǎng)絡(luò) 指的是WIFI的路由,如果直接抓路由器的包還是比較麻煩的,因此我們會(huì)在 手機(jī) 和 本地路由 之間加一層 代理服務(wù) ,這樣只要抓代理服務(wù)的網(wǎng)絡(luò)數(shù)據(jù)即可:
雖然在 手機(jī) 側(cè)也可實(shí)現(xiàn)抓包,但和 本地路由 一樣,抓包比較麻煩,如果不是沒有辦法,盡量還是不在手機(jī)側(cè)抓包。但是有一種情況必須在手機(jī)端抓包,那就是在4G網(wǎng)絡(luò)情況下:
4G網(wǎng)絡(luò)狀態(tài)下如何抓包,以及它的劣勢(shì),我們后面章節(jié)再細(xì)講。
抓包實(shí)際上是分析網(wǎng)絡(luò)協(xié)議的一種過程,盡管繁瑣的細(xì)節(jié)勞動(dòng)都讓抓包工具做了,但我們還是需要了解下基礎(chǔ)的網(wǎng)絡(luò)協(xié)議,好幫助我們更好的分析問題。
首先需要了解下經(jīng)典的OSI七層網(wǎng)絡(luò)模型,以及每層的作用,其次對(duì)TCP、HTTP協(xié)議簡(jiǎn)單了解。
HTTPS是基于HTTP協(xié)議的一種改進(jìn),在 TCP之上 的會(huì)話層增加安全處理。對(duì)于應(yīng)用層來說,HTTPS和HTTP沒有什么不同,也就是說,HTTPS是保證網(wǎng)絡(luò)傳輸?shù)陌踩裕瑢?duì)業(yè)務(wù)數(shù)據(jù)無侵入。
簡(jiǎn)化理解大概是這個(gè)樣子:
SSL和TLS是保證安全傳輸?shù)膮f(xié)議,包括證書認(rèn)證、加解密和數(shù)字簽名。
項(xiàng)目中HTTPS的鏈路:
因此,客戶端與后臺(tái),編寫網(wǎng)絡(luò)接口時(shí),不需要關(guān)心SSL或TLS,按照HTTP協(xié)議處理即可。
既然HTTPS在網(wǎng)絡(luò)傳輸是經(jīng)過加密的,那么抓包抓到的數(shù)據(jù)就是密文,不經(jīng)過解密是無法看到報(bào)文的。針對(duì)這個(gè)問題,如上圖WIFI環(huán)境下設(shè)置代理的方式可以解決,具體思路是:
所以整個(gè)網(wǎng)絡(luò)鏈路依然是HTTPS在傳輸,但代理服務(wù)自己可以獲取到明文數(shù)據(jù)。
比較常用的抓包工具大概有4個(gè),主要用作互補(bǔ),配合使用基本所有平臺(tái)、所有抓包需求都能滿足:
需要說明的是,tcpdump可將數(shù)據(jù)保存成文件,直接用wireShark打開分析,針對(duì)后臺(tái)或手機(jī)抓包使用起來十分方便。
幾個(gè)工具間的使用關(guān)系:
為什么要真機(jī)抓包?必定是沒有辦法設(shè)置代理服務(wù)了,如4G網(wǎng)絡(luò)情況下直接和移動(dòng)基站鏈接,沒法設(shè)置代理服務(wù)。凡是非4G網(wǎng)絡(luò)狀態(tài)下,都不建議真機(jī)抓包。
iOS 5后,apple引入了RVI remote virtual interface的特性,它只需要將iOS設(shè)備使用USB數(shù)據(jù)線連接到mac上,然后使用rvictl工具以iOS設(shè)備的UDID為參數(shù)在Mac中建立一個(gè)虛擬網(wǎng)絡(luò)接口rvi,就可以在mac設(shè)備上使用tcpdump,wireshark等工具對(duì)創(chuàng)建的接口進(jìn)行抓包分析。
具體步驟:
android是linux系統(tǒng),和后臺(tái)一樣可以使用tcpdump命令來抓包,但是需要root權(quán)限,因?yàn)橐话闶謾C(jī)系統(tǒng)不帶有抓包命令 tcpdump ,需要自行安裝。
安裝tcpdump:
使用tcpdump:
這是就已經(jīng)進(jìn)入抓包狀態(tài),手機(jī)所有的網(wǎng)絡(luò)請(qǐng)求都會(huì)被捕獲,并保存到capture文件中。
導(dǎo)出capture文件:
原文: 網(wǎng)絡(luò)抓包
二、應(yīng)用抓包之Fiddler抓包
tcpdump抓包: 應(yīng)用抓包之tcpdump命令抓包
1.抓包工具Fiddler(Windows版)
2.真機(jī)一個(gè)
3.預(yù)抓包的App一個(gè)(我們以app抓包為例)
Fiddler是位于客戶端和服務(wù)器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能夠記錄客戶端和服務(wù)器之間的所有 HTTP請(qǐng)求,可以針對(duì)特定的HTTP請(qǐng)求,分析請(qǐng)求數(shù)據(jù)、設(shè)置斷點(diǎn)、調(diào)試web應(yīng)用、修改請(qǐng)求的數(shù)據(jù),甚至可以修改服務(wù)器返回的數(shù)據(jù),功能非常強(qiáng)大,是web調(diào)試的利器。
1.打開Fiddler
2.設(shè)置端口(Tools->Fiddler Options)使用默認(rèn)就行
使用1024之后的,0-1023周知端口,一般都是系統(tǒng)和一些與設(shè)置的端口,端口1024到49151為注冊(cè)端口,分配給用戶進(jìn)程或應(yīng)用程序
既然是代理,客戶端的所有請(qǐng)求都要先經(jīng)過Fiddler
3.讓手機(jī)和PC處于同一網(wǎng)絡(luò)下(連同一WiFi或同一網(wǎng)段即可)
查看PC的IP地址
4.到開手機(jī)WiFi設(shè)置
進(jìn)入WiFi詳細(xì)信息(不同手機(jī)選項(xiàng)可能不同)
手動(dòng)設(shè)置代理(用的手機(jī)在高級(jí)設(shè)置里)
主機(jī)名就是PC的IP
端口就是在Fiddler設(shè)置的端口
5.刷新一下app要抓數(shù)據(jù)的頁面
不小心抓了個(gè)用WebView的app,尷尬兩秒鐘
發(fā)現(xiàn)這個(gè)app會(huì)獲取手機(jī)歸屬地,位置信息等
成功抓到數(shù)據(jù)
瀏覽器請(qǐng)求一下
6.新建個(gè)文本文件,保存抓到的接口。例如:
7.一個(gè)個(gè)界面去抓,分析出接口
抓完記得把手動(dòng)設(shè)置代理關(guān)了,不然有可能上網(wǎng)很慢。
三、組播v3 怎么tcpdump抓包
你好,我使用的是ubuntu 14.04(虛擬機(jī)),可以打開終端輸入tcpdump命令抓包。我經(jīng)常使用的命令是tcpdump -i eth0 -w web.pcap。i參數(shù)表示網(wǎng)卡,w參數(shù)表示將抓包結(jié)果保存到pcap文件中,這樣接下來可以使用wireshark查看。如果還想明白別的參數(shù)的意義的話,可以輸入tcpdump -h,就顯示幫助信息了。還有,要使用tcpdump,最好切換到root用戶(sudo命令)。
再復(fù)制一部分別的的用法,也可以自己再搜索一下:
-A 以ASCII碼方式顯示每一個(gè)數(shù)據(jù)包(不會(huì)顯示數(shù)據(jù)包中鏈路層頭部信息). 在抓取包含網(wǎng)頁數(shù)據(jù)的數(shù)據(jù)包時(shí), 可方便查看數(shù)據(jù)(nt: 即Handy for capturing web pages).
-c count
tcpdump將在接受到count個(gè)數(shù)據(jù)包后退出.
-C file-size (nt: 此選項(xiàng)用于配合-w file 選項(xiàng)使用)
該選項(xiàng)使得tcpdump 在把原始數(shù)據(jù)包直接保存到文件中之前, 檢查此文件大小是否超過file-size. 如果超過了, 將關(guān)閉此文件,另創(chuàng)一個(gè)文件繼續(xù)用于原始數(shù)據(jù)包的記錄. 新創(chuàng)建的文件名與-w 選項(xiàng)指定的文件名一致, 但文件名后多了一個(gè)數(shù)字.該數(shù)字會(huì)從1開始隨著新創(chuàng)建文件的增多而增加. file-size的單位是百萬字節(jié)(nt: 這里指1,000,000個(gè)字節(jié),并非1,048,576個(gè)字節(jié), 后者是以1024字節(jié)為1k, 1024k字節(jié)為1M計(jì)算所得, 即1M=1024 * 1024 = 1,048,576)
-d 以容易閱讀的形式,在標(biāo)準(zhǔn)輸出上打印出編排過的包匹配碼, 隨后tcpdump停止.(nt | rt: human readable, 容易閱讀的,通常是指以ascii碼來打印一些信息. compiled, 編排過的. packet-matching code, 包匹配碼,含義未知, 需補(bǔ)充)
-dd 以C語言的形式打印出包匹配碼.
-ddd 以十進(jìn)制數(shù)的形式打印出包匹配碼(會(huì)在包匹配碼之前有一個(gè)附加的'count'前綴).
-D 打印系統(tǒng)中所有tcpdump可以在其上進(jìn)行抓包的網(wǎng)絡(luò)接口. 每一個(gè)接口會(huì)打印出數(shù)字編號(hào), 相應(yīng)的接口名字, 以及可能的一個(gè)網(wǎng)絡(luò)接口描述. 其中網(wǎng)絡(luò)接口名字和數(shù)字編號(hào)可以用在tcpdump 的-i flag 選項(xiàng)(nt: 把名字或數(shù)字代替flag), 來指定要在其上抓包的網(wǎng)絡(luò)接口.
此選項(xiàng)在不支持接口列表命令的系統(tǒng)上很有用(nt: 比如, Windows 系統(tǒng), 或缺乏 ifconfig -a 的UNIX系統(tǒng)); 接口的數(shù)字編號(hào)在windows 2000 或其后的系統(tǒng)中很有用, 因?yàn)檫@些系統(tǒng)上的接口名字比較復(fù)雜, 而不易使用.
如果tcpdump編譯時(shí)所依賴的libpcap庫太老,-D 選項(xiàng)不會(huì)被支持, 因?yàn)槠渲腥狈?pcap_findalldevs()函數(shù).
-e 每行的打印輸出中將包括數(shù)據(jù)包的數(shù)據(jù)鏈路層頭部信息
四、tcpdump 抓包命令 參數(shù)求解釋
方法/步驟
默認(rèn)系統(tǒng)里邊沒有安裝有tcpdump的,無法直接使用
這里我們可以使用yum來直接安裝它
yum install -y tcpdump
如果忘記了這個(gè)軟件的用法,我們可以使用 tcpdump --help 來查看一下使用方法
一般我們的服務(wù)器里邊只有一個(gè)網(wǎng)卡,使用tcpdump可以直接抓取數(shù)據(jù)包,但是這樣查看太麻煩了,所以都會(huì)添加參數(shù)來進(jìn)行獲取的。
例如我截取本機(jī)(192.168.31.147)和主機(jī)114.114.114.114之間的數(shù)據(jù)
tcpdump -n -i eth0 host 192.168.31.147 and 114.114.114.114
還有截取全部進(jìn)入服務(wù)器的數(shù)據(jù)可以使用以下的格式
tcpdump -n -i eth0 dst 192.168.31.147
或者服務(wù)器有多個(gè)IP 可以使用參數(shù)
tcpdump -n -i eth0 dst 192.168.31.147 or 192.168.31.157
我們抓取全部進(jìn)入服務(wù)器的TCP數(shù)據(jù)包使用以下的格式,大家可以參考下
tcpdump -n -i eth0 dst 192.168.31.147 or 192.168.31.157 and tcp
從本機(jī)出去的數(shù)據(jù)包
tcpdump -n -i eth0 src 192.168.31.147 or 192.168.31.157
tcpdump -n -i eth0 src 192.168.31.147 or 192.168.31.157 and port ! 22 and tcp
或者可以條件可以是or 和 and 配合使用即可篩選出更好的結(jié)果。
以上就是關(guān)于tcp抓包命令相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
ChatGPT國內(nèi)需要梯子嗎(國內(nèi)看twitch用啥梯子)
itchat無法登錄(無法用itchat登錄網(wǎng)頁微信)