linux的抓包命令,linux 抓包命令

在linux命令行環(huán)境下如何抓取網絡數據包?

? 眾所周知,在Windows下開發(fā)運行環(huán)境下,在調試網絡環(huán)境時,可以可以很方便的借助wireshark等軟件進行抓包分析;并且在linux或者Ubuntu等桌面版里也可以進行安裝抓包工具進行抓包分析,但總有一些情況,無法直接運用工具(比如一些沒有界面的linux環(huán)境系統中),則此時我們就需要使用到最簡單的tcpdump命令進行網絡抓包。

成都創(chuàng)新互聯是一家集網站建設,阿魯科爾沁企業(yè)網站建設,阿魯科爾沁品牌網站建設,網站定制,阿魯科爾沁網站建設報價,網絡營銷,網絡優(yōu)化,阿魯科爾沁網站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網站。

? 一般的,linux下抓包時,抓取特定的網絡數據包到當前文件夾下的文件中,再把文件拷貝出來利用Windows下的wireshark軟件進行分析。

tcpdump命令詳解:(簡單舉例)

? 1、抓取到的文件為filename.cap,然后將此文件拷貝到Windows下,使用wireshar打開后,即可對此文件進行分析。

? 2、eth0 是主機的網絡適配器名稱,具體的參數值可以在linux命令行窗口中通過 ifconfig 指令查詢。

Linux命令抓包如何分包

使用tcpdump可以。

tcpdump是一個功能強大的命令行數據包分析器,它是通過監(jiān)聽服務器的網卡來獲取數據包,所有通過網絡訪問的數據包都能獲取到。

它也提供了過濾器的功能,可以獲取指定的網絡、端口或協議的數據包程序員日常排查問題,最常用的是使用過濾器功能獲取指定端口的數據包,用來分析服務器是否收到請求、請求數據是否完整。

Linux下如何抓指定IP的包

用tcpdum命令可以抓指定IP的包,具體命令為:

tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port 22 and src net 192.168.1.1 -w ./target.cap

參數解析:

tcp: ip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第一個參數的位置,用來過濾數據報的類型。

-i eth1 : 只抓經過接口eth1的包

-t : 不顯示時間戳

-s 0 : 抓取數據包時默認抓取長度為68字節(jié)。加上-S 0 后可以抓到完整的數據包

-c 100 : 只抓取100個數據包

dst port? 22 : 抓取目標端口是22的數據包

src net 192.168.1.0/24 : 數據包的源網絡地址為192.168.1.1

-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

擴展資料

tcpdump語法格式:

tcpdump [-adeflnNOpqStvx][-c數據包數目][-dd][-ddd][-F表達文件][-i網絡界面][-r數據包文件][-s數據包大小][-tt][-T數據包類型][-vv][-w數據包文件][輸出數據欄位]

tcpdump主要參數說明:

1、-a 嘗試將網絡和廣播地址轉換成名稱。

2、-c數據包數目 收到指定的數據包數目后,就停止進行傾倒操作。

3、-d 把編譯過的數據包編碼轉換成可閱讀的格式,并傾倒到標準輸出。

4、-dd 把編譯過的數據包編碼轉換成C語言的格式,并傾倒到標準輸出。

5、-ddd 把編譯過的數據包編碼轉換成十進制數字的格式,并傾倒到標準輸出。

6、-e 在每列傾倒資料上顯示連接層級的文件頭。

7、-f 用數字顯示網際網絡地址。

8、-F表達文件 指定內含表達方式的文件。

9、-i網絡界面 使用指定的網絡截面送出數據包。

10、-l 使用標準輸出列的緩沖區(qū)。

11、-n 不把主機的網絡地址轉換成名字。

12、-N 不列出域名。

Linux 系統掃描nmap與tcpdump抓包

NMAP掃描

一款強大的網絡探測利器工具

支持多種探測技術

--ping掃描

--多端口掃描

-- TCP/IP指紋校驗

為什么需要掃描?

以獲取一些公開/非公開信息為目的

--檢測潛在風險

--查找可攻擊目標

--收集設備/主機/系統/軟件信息

--發(fā)現可利用的安全漏洞

基本用法

nmap [掃描類型] [選項] 掃描目標...

常用的掃描類型

常用選項

-sS TCP SYN掃描(半開) 該方式發(fā)送SYN到目標端口,如果收到SYN/ACK回復,那么判斷端口是開放的;如果收到RST包,說明該端口是關閉的。簡單理解就是3次握手只完成一半就可以判斷端口是否打開,提高掃描速度

-sT TCP 連接掃描(全開)

-sU UDP掃描

-sP ICMP掃描

-sV 探測打開的端口對應的服務版本信息

-A 目標系統全面分析 (可能會比較慢)

-p 掃描指定端口

1 ) 檢查目標主機是否能ping通

2)檢查目標主機所開啟的TCP服務

3 ) 檢查192.168.4.0/24網段內哪些主機開啟了FTP、SSH服務

4)檢查目標主機所開啟的UDP服務

5 ) 探測打開的端口對應的服務版本信息

6)全面分析目標主機192.168.4.100的操作系統信息

tcpdump

命令行抓取數據包工具

基本用法

tcpdump [選項] [過濾條件]

常見監(jiān)控選項

-i,指定監(jiān)控的網絡接口(默認監(jiān)聽第一個網卡)

-A,轉換為 ACSII 碼,以方便閱讀

-w,將數據包信息保存到指定文件

-r,從指定文件讀取數據包信息

常用的過濾條件:

類型:host、net、port、portrange

方向:src、dst

協議:tcp、udp、ip、wlan、arp、……

多個條件組合:and、or、not

案例1

案例2:使用tcpdump分析FTP訪問中的明文交換信息

1 ) 安裝部署vsftpd服務

2 ) 并啟動tcpdump等待抓包

執(zhí)行tcpdump命令行,添加適當的過濾條件,只抓取訪問主機192.168.4.100的21端口的數據通信 ,并轉換為ASCII碼格式的易讀文本。

3 ) case100作為客戶端訪問case254服務端

4 ) 查看tcpdump抓包

5 ) 再次使用tcpdump抓包,使用-w選項可以將抓取的數據包另存為文件,方便后期慢慢分析。

6 ) tcpdump命令的-r選項,可以去讀之前抓取的歷史數據文件

tcpdump 命令使用簡介

tcpdump 是一款強大的網絡抓包工具,運行在 linux 平臺上。熟悉 tcpdump 的使用能夠幫助你分析、調試網絡數據。

要想使用很好地掌握 tcpdump, 必須對網絡報文( TCP/IP 協議)有一定的了解。不過對于簡單的使用來說,只要有網絡基礎概念就行了。

tcpdump 是一個很復雜的命令,想了解它的方方面面非常不易,也不值得推薦,能夠使用它解決日常工作中的問題才是關鍵。

tcpdump 的選項也很多,要想知道所有選項的話,請參考 man tcpdump ,下面只記錄 tcpdump 最常用的選項。

完整的英文文檔:

需要注意的是,tcpdump 默認只會截取前 96 字節(jié)的內容,要想截取所有的報文內容,可以使用 -s number , number 就是你要截取的報文字節(jié)數,如果是 0 的話,表示截取報文全部內容。

Frame = Ethernet Header + IP Header + TCP Header + TCP Segment Data

Ethernet Header 以下的IP數據報最大傳輸單位為 MTU (Maximum Transmission Unit,Effect of short board),對于大多數使用以太網的局域網來說, MTU=1500 。

TCP數據包每次能夠傳輸的最大數據分段為MSS,為了達到最佳的傳輸效能,在建立TCP連接時雙方將協商MSS值——雙方提供的MSS值中的最小值為這次連接的最大MSS值。MSS往往基于MTU計算出來,通常 MSS =MTU-sizeof(IP Header)-sizeof(TCP Header)=1500-20-20=1460。

這樣,數據經過本地TCP層分段后,交給本地IP層,在本地IP層就不需要分片了。但是在下一跳路由(Next Hop)的鄰居路由器上可能發(fā)生IP分片!因為路由器的網卡的MTU可能小于需要轉發(fā)的IP數據報的大小。

這時候,在路由器上可能發(fā)生兩種情況:

(1)如果源發(fā)送端設置了這個IP數據包可以分片(May Fragment,DF=0),路由器將IP數據報分片后轉發(fā)。

(2)如果源發(fā)送端設置了這個IP數據報不可以分片(Don’t Fragment,DF=1),路由器將IP數據報丟棄,并發(fā)送ICMP分片錯誤消息給源發(fā)送端。

默認啟動,普通情況下,直接啟動tcpdump將監(jiān)視第一個網絡接口上所有流過的數據包

監(jiān)聽所有端口,直接顯示 ip 地址。

顯示更詳細的數據報文,包括 tos, ttl, checksum 等。

顯示數據報的全部數據信息,用 hex 和 ascii 兩列對比輸出。

下面是抓取 ping 命令的請求和返回的兩個報文,可以看到全部的數據。

機器上的網絡報文數量異常的多,很多時候我們只關系和具體問題有關的數據報(比如訪問某個網站的數據,或者 icmp 超時的報文等等),而這些數據只占到很小的一部分。把所有的數據截取下來,從里面找到想要的信息無疑是一件很費時費力的工作。而 tcpdump 提供了靈活的語法可以精確地截取關心的數據報,簡化分析的工作量。這些選擇數據包的語句就是過濾器(filter)!

過濾器也可以簡單地分為三類: type , dir 和 proto 。

Type 讓你區(qū)分報文的類型,主要由 host (主機), net (網絡) 和 port (端口) 組成。 src 和 dst 也可以用來過濾報文的源地址和目的地址。

此外還有指定端口和數據報文范圍的過濾器:

過于過濾器的更多詳細信息,請訪問 tcpdump 官方 map page 的 PCAP-FILTER 部分

使用 tcpdump 截取數據報文的時候,默認會打印到屏幕的默認輸出,你會看到按照順序和格式,很多的數據一行行快速閃過,根本來不及看清楚所有的內容。不過,tcpdump 提供了把截取的數據保存到文件的功能,以便后面使用其他圖形工具(比如 wireshark,Snort)來分析。

-w 選項用來把數據報文輸出到文件,比如下面的命令就是把所有 80 端口的數據導入到文件

-r 可以讀取文件里的數據報文,顯示到屏幕上。

NOTE:保存到文件的數據不是屏幕上看到的文件信息,而是包含了額外信息的固定格式 pcap,需要特殊的軟件(如: Wireshark )來查看,使用 vim 或者 cat 命令會出現亂碼。

過濾的真正強大之處在于你可以隨意組合它們,而連接它們的邏輯就是常用的 與/AND/ 、 或/OR/|| 和 非/not/! 。

從上面的例子就可以看出,你可以隨意地組合之前的過濾器來截取自己期望的數據報,最重要的就是知道自己要精確匹配的數據室怎樣的!

對于比較復雜的過濾器表達式,為了邏輯的清晰,可以使用括號。不過默認情況下,tcpdump 把 () 當做特殊的字符,所以必須使用單引號 ' 來消除歧義:

抓取所有經過eth1,目的地址是192.168.1.254或192.168.1.200端口是80的TCP數

抓取所有經過eth1,目標MAC地址是00:01:02:03:04:05的ICMP數據

抓取所有經過eth1,目的網絡是192.168,但目的主機不是192.168.1.200的TCP數據

截取數據只是第一步,第二步就是理解這些數據,下面就解釋一下 tcpdump 命令輸出各部分的意義。

最基本也是最重要的信息就是數據報的源地址/端口和目的地址/端口,上面的例子第一條數據報中,源地址 ip 是 192.168.1.106 ,源端口是 56166 ,目的地址是 124.192.132.54 ,目的端口是 80 。 符號代表數據的方向。

此外,上面的三條數據還是 tcp 協議的三次握手過程,第一條就是 SYN 報文,這個可以通過 Flags [S] 看出。下面是常見的 TCP 報文的 Flags:

而第二條數據的 [S.] 表示 SYN-ACK ,就是 SYN 報文的應答報文。

如果是為了查看數據內容,建議用 tcpdump -s 0 -w filename 把數據包都保存下來,然后用wireshark的Follow TCP Stream/Follow UDP Stream來查看整個會話的內容。 -s 0 是抓取完整數據包,否則默認只抓68字節(jié)。用tcpflow也可以方便的獲取TCP會話內容,支持tcpdump的各種表達式。

-c 參數對于運維人員來說也比較常用,因為流量比較大的服務器,靠人工CTRL+C還是抓的太多,甚至導致服務器宕機,于是可以用 -c 參數指定抓多少個包。

上面的命令計算抓10000個SYN包花費多少時間,可以判斷訪問量大概是多少。

Wireshark(以前是ethereal)是Windows下非常簡單易用的抓包工具。但在Linux下很難找到一個好用的圖形化抓包工具。

還好有Tcpdump。我們可以用Tcpdump + Wireshark 的完美組合實現:在 Linux 里抓包,然后在Windows 里分析包。

0x4745 為"GET"前兩個字母"GE"

0x4854 為"HTTP"前兩個字母"HT"

tcpdump 對截獲的數據并沒有進行徹底解碼,數據包內的大部分內容是使用十六進制的形式直接打印輸出的。顯然這不利于分析網絡故障,通常的解決辦法是先使用帶 -w 參數的tcpdump 截獲數據并保存到文件中,然后再使用其他程序(如 Wireshark )進行解碼分析。當然也應該定義過濾規(guī)則,以避免捕獲的數據包填滿整個硬盤。

基本上tcpdump總的的輸出格式為: 系統時間 來源主機.端口 目標主機.端口 數據包參數

本文題目:linux的抓包命令,linux 抓包命令
轉載源于:http://muchs.cn/article40/hcidho.html

成都網站建設公司_創(chuàng)新互聯,為您提供營銷型網站建設手機網站建設、網站建設、App設計網站內鏈、網站策劃

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

小程序開發(fā)