簡單的tcpdump抓包使用總結(jié):抓取指定ip、指定網(wǎng)卡、指定端口的包
1.今天由于需要抓包研究網(wǎng)絡(luò)問題,所以研究了一下抓取指定ip、指定網(wǎng)卡、指定端口的包并且輸入到文件中
2 tcpdump與Wireshark介紹
在網(wǎng)絡(luò)問題的調(diào)試中,tcpdump應(yīng)該說是一個(gè)必不可少的工具,和大部分linux下優(yōu)秀工具一樣,它的特點(diǎn)就是簡單而強(qiáng)大。它是基于Unix系統(tǒng)的命令行式的數(shù)據(jù)包****工具,可以抓取流動(dòng)在網(wǎng)卡上的數(shù)據(jù)包。
默認(rèn)情況下,tcpdump不會(huì)抓取本機(jī)內(nèi)部通訊的報(bào)文。根據(jù)網(wǎng)絡(luò)協(xié)議棧的規(guī)定,對于報(bào)文,即使是目的地是本機(jī),也需要經(jīng)過本機(jī)的網(wǎng)絡(luò)協(xié)議層,所以本機(jī)通訊肯定是通過API進(jìn)入了內(nèi)核,并且完成了路由選擇。【比如本機(jī)的TCP通信,也必須要socket通信的基本要素:src ip port dst ip port】
如果要使用tcpdump抓取其他主機(jī)MAC地址的數(shù)據(jù)包,必須開啟網(wǎng)卡混雜模式,所謂混雜模式,用最簡單的語言就是讓網(wǎng)卡抓取任何經(jīng)過它的數(shù)據(jù)包,不管這個(gè)數(shù)據(jù)包是不是發(fā)給它或者是它發(fā)出的。一般而言,Unix不會(huì)讓普通用戶設(shè)置混雜模式,因?yàn)檫@樣可以看到別人的信息,比如telnet的用戶名和密碼,這樣會(huì)引起一些安全上的問題,所以只有root用戶可以開啟混雜模式,開啟混雜模式的命令是:ifconfig en0 promisc, en0是你要打開混雜模式的網(wǎng)卡。
Linux抓包原理:
Linux抓包是通過注冊一種虛擬的底層網(wǎng)絡(luò)協(xié)議來完成對網(wǎng)絡(luò)報(bào)文(準(zhǔn)確的說是網(wǎng)絡(luò)設(shè)備)消息的處理權(quán)。當(dāng)網(wǎng)卡接收到一個(gè)網(wǎng)絡(luò)報(bào)文之后,它會(huì)遍歷系統(tǒng)中所有已經(jīng)注冊的網(wǎng)絡(luò)協(xié)議,例如以太網(wǎng)協(xié)議、x25協(xié)議處理模塊來嘗試進(jìn)行報(bào)文的解析處理,這一點(diǎn)和一些文件系統(tǒng)的掛載相似,就是讓系統(tǒng)中所有的已經(jīng)注冊的文件系統(tǒng)來進(jìn)行嘗試掛載,如果哪一個(gè)認(rèn)為自己可以處理,那么就完成掛載。
當(dāng)抓包模塊把自己偽裝成一個(gè)網(wǎng)絡(luò)協(xié)議的時(shí)候,系統(tǒng)在收到報(bào)文的時(shí)候就會(huì)給這個(gè)偽協(xié)議一次機(jī)會(huì),讓它來對網(wǎng)卡收到的報(bào)文進(jìn)行一次處理,此時(shí)該模塊就會(huì)趁機(jī)對報(bào)文進(jìn)行窺探,也就是把這個(gè)報(bào)文完完整整的復(fù)制一份,假裝是自己接收到的報(bào)文,匯報(bào)給抓包模塊。
Wireshark是一個(gè)網(wǎng)絡(luò)協(xié)議檢測工具,支持Windows平臺、Unix平臺、Mac平臺,一般只在圖形界面平臺下使用Wireshark,如果是Linux的話,直接使用tcpdump了,因?yàn)橐话愣訪inux都自帶的tcpdump,或者用tcpdump抓包以后用Wireshark打開分析。
在Mac平臺下,Wireshark通過WinPcap進(jìn)行抓包,封裝的很好,使用起來很方便,可以很容易的制定抓包過濾器或者顯示過濾器,具體簡單使用下面會(huì)介紹。Wireshark是一個(gè)免費(fèi)的工具,只要google一下就能很容易找到下載的地方。
所以,tcpdump是用來抓取數(shù)據(jù)非常方便,Wireshark則是用于分析抓取到的數(shù)據(jù)比較方便。
3 tcpdump使用
3.1 語法
類型的關(guān)鍵字
host(缺省類型): 指明一臺主機(jī),如:host 210.27.48.2
net: 指明一個(gè)網(wǎng)絡(luò)地址,如:net 202.0.0.0
port: 指明端口號,如:port 23
確定方向的關(guān)鍵字
src: src 210.27.48.2, IP包源地址是210.27.48.2
dst: dst net 202.0.0.0, 目標(biāo)網(wǎng)絡(luò)地址是202.0.0.0
dst or src(缺省值)
dst and src
協(xié)議的關(guān)鍵字:缺省值是監(jiān)聽所有協(xié)議的信息包
fddi
ip
arp
rarp
tcp
udp
其他關(guān)鍵字
gateway
broadcast
less
greater
常用表達(dá)式:多條件時(shí)可以用括號,但是要用轉(zhuǎn)義
非 : ! or “not” (去掉雙引號)
且 : && or “and”
或 : || or “or”
例如我本次抓取指定ip、指定網(wǎng)卡、指定端口的包。語句如下:
tcpdump -i eth3 tcp port 5236 and host 172.16.24.13 -w dm.cap
tcpdump命令:
-i 指定網(wǎng)卡,本次指定eth3
port指定端口
host指定ip
-w dm.cap抓取到dm.cap文件中。
————————————————
原文鏈接:https://blog.csdn.net/DHCliaozheng/article/details/105969016
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。