1、tcpdump安裝:yum install tcpdump
2、關鍵字介紹
類型關鍵字:
指定主機 host 192.168.1.111
指定網絡地址 net 202.0.0.0
指定端口 port 8080
方向關鍵字
src:src 192.168.1.111,ip包源地址是192.168.1.111
dst:det 192.168.1.112,ip包目標地址是192.168.1.112
src or dst
src and dst
協議關鍵字
fddi、tcp、udp、rarp、arp、http等
其他關鍵字
gateway(抓取指定網關的數據包)、broadcast、less、greater(非運算 'not ' '! ', 與運算'and','&&';或運算 'or' ,'||';)
3、混雜模式
混雜模式就是接收所有經過網卡的數據包,包括不是發給本機的包。默認情況下網卡只把發給本機的包(包括廣播包)傳遞給上層程序,其它的包一律丟棄。簡單的講,混雜模式就是指網卡能接受所有通過它的數據流,不管是什麼格式,什麼地址的。事實上,計算機收到數據包後,由網絡層進行判斷,確定是遞交上層(傳輸層),還是丟棄,還是遞交下層(數據鏈路層、MAC子層)轉發
查看當前網卡是否爲混雜模式:#Ifconfig eth0
開啓: # ifconfig eth0 promisc
關閉: # ifconfig eth0 -promisc
4、相關選項:
-c:指定要抓取的包數量。
-i interface:指定tcpdump需要監聽的接口。
-n:對地址以數字方式顯式,否則顯式爲主機名,也就是說-n選項不做主機名解析。
-C:用於判斷用 -w 選項將報文寫入文件的大小是否超過這個值,超過了就新建文件(文件名後綴是1、2、3依次增加)。
-p:不讓網絡界面進入混雜模式。
-f:將外部的Internet地址以數字的形式打印出來。
-nn:除了-n的作用外,還把端口顯示爲數值,否則顯示端口服務名。
-N:不打印出host的域名部分。例如tcpdump將會打印'nic'而不是'nic.ddn.mil'。
-P:指定要抓取的包是流入還是流出的包。可以給定的值爲"in"、"out"和"inout",默認爲"inout"。
-e:輸出的每行中都將包括數據鏈路層頭部信息,例如源MAC和目標MAC。
-q:快速打印輸出。即打印很少的協議相關信息,從而輸出行都比較簡短。
-X:輸出包的頭部數據,會以16進制和ASCII兩種方式同時輸出。
-XX:輸出包的頭部數據,會以16進制和ASCII兩種方式同時輸出,更詳細。
-vvv:當分析和打印的時候,產生詳細的輸出。
-D:列出可用於抓包的接口。將會列出接口的數值編號和接口名,它們都可以用於"-i"後。
-w:將抓包數據輸出到文件中。可以同時配合"-G time"選項使得輸出文件每time秒就自動切換到另一個文件。可通過"-r"選項載入這些文件以進行分析和打印。
-s:指定要監聽數據包的長度
-tttt:加入時間戳
5、實例:
1、tcpdump -i ens33 -c 100 -vvv -tttt -s 0 -w 1.cap host 192.168.1.111 and tcp port 8080
抓取從ens33網口出去源地址爲192.168.1.111,端口爲8080的tcp協議的100個包,具有詳細信息、時間戳、不限長度寫入1.cap文件
2、tcpdump -i eth33 src host 192.168.1.111 and dst port 8080
抓取從ens33流向源地址爲192.168.1.111的包以及接收8080端口的包
6、wireshark界面
7、封包協議
Frame:物理層的數據幀概況。
EthernetII:數據鏈路層以太網幀頭部信息。
InternetProtocol Version 4:互聯網層IP包頭部信息。
TransmissionControl Protocol:傳輸層的數據段頭部信息。
HypertextTransfer Protocol:應用層的信息。
8、響應詳細數據
9、http字段簡介
Host:主機地址
Connection:是否需要持久連
Content-Length:HTTP消息實體的傳輸長度
Cache-Control:指定請求和響應遵循的緩存機制
Accept:指定客戶端能夠接收的內容類型,內容類型中的先後次序表示客戶端接收的先後次序
Origin:最初請求是從哪裏發起的( origin只用於Post請求)
User-Agent:告訴服務器,Browser內核
Content-Type:表示具體請求中的媒體類型信息
Referer:讓服務器判斷來源頁面, 即用戶是從哪個頁面來的
Accept-Encoding:指定瀏覽器可以支持的web服務器返回內容壓縮編碼類型
Accept-Language:指定HTTP客戶端瀏覽器用來展示返回信息所優先選擇的語言。
使用 tcpdump監聽某一端口數據
備註:監聽某一端口的數據
tcpdump -i eth1 -nnn udp port 21001
-i 表示指定網卡
-nnn 指定通信協議
port 指定端口號
可以不指定網卡參數