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