抓包工具tcpdump的用法說明

tcpdump採用命令行方式對接口的數據包進行篩選抓取,其豐富特性表現在靈活的表達式上。
不帶任何選項的tcpdump,默認會抓取第一個網絡接口,且只有將tcpdump進程終止纔會停止抓包。ctrl+c

tcpdump常用選項

格式:tcpdump [ -DenNqvX ] [ -c count ] [ -F file ] [ -i interface ] [ -r file ] [ -s snaplen ] [ -w file ] [ expression ]

抓包選項:

-c:指定要抓取的包數量。注意,是最終要獲取這麼多個包。例如,指定”-c 10”將獲取10個包,但可能已經處理了100個包,只不過只有10個包是滿足條件的包。
-i interface:指定tcpdump需要監聽的接口。若未指定該選項,將從系統接口列表中搜尋編號最小的已配置好的接口(不包括loopback接口,要抓取loopback接口使用tcpdump -i lo)
-n:對地址以數字方式顯示,否則顯示爲主機名,也就是說-n選項不做主機名解析。
-nn:除了-n的作用外,還把端口顯示爲數值,否則顯示端口服務名。
-N:不打印出host的域名部分。例如tcpdump將會打印’nic’而不是’nic.ddn.mil’。
-P:指定要抓取的包是流入還是流出的包。可以給定的值爲”in”、”out”和”inout”,默認爲”inout”。

輸出選項:

-e:輸出的每行中都將包括數據鏈路層頭部信息,例如源MAC和目標MAC。
-q:快速打印輸出。即打印很少的協議相關信息,從而輸出行都比較簡短。
-X:輸出包的頭部數據,會以16進制和ASCII兩種方式同時輸出。
-XX:輸出包的頭部數據,會以16進制和ASCII兩種方式同時輸出,更詳細。
-v:當分析和打印的時候,產生詳細的輸出。 -vv,-vvv

其他功能性選項:

-D:列出可用於抓包的接口。將會列出接口的數值編號和接口名,它們都可以用於”-i”後。
-r:從給定的數據包文件中讀取數據。使用”-“表示從標準輸入中讀取。

tcpdump示例:

(1) 默認啓動
tcpdump

默認情況下,直接啓動tcpdump將監視第一個網絡接口(非lo口)上所有流通的數據包。這樣抓取的結果會非常多,滾動非常快。

(2) 監視指定網絡接口的數據包
tcpdump -i eth1

如果不指定網卡,默認tcpdump只會監視第一個網絡接口,如eth0。

(3) 截獲主機hostname發送的所有數據
tcpdump src host hostname
(4).監視所有發送到主機hostname的數據包
tcpdump dst host hostname
(5).監視指定主機和端口的數據包
tcpdump tcp port 22 and host hostname
(6).對本機的udp 123端口進行監視(123爲ntp的服務端口)
tcpdump udp port 123
(7).監視指定網絡的數據包,如本機與192.168網段通信的數據包,”-c 10”表示只抓取10個包
tcpdump -c 10 net 192.168
(8).打印所有通過網關snup的ftp數據包(注意,表達式被單引號括起來了,這可以防止shell對其中的括號進行錯誤解析)
shell> tcpdump 'gateway snup and (port ftp or ftp-data)'
(9).抓取ping包
[root@server2 ~]# tcpdump -c 5 -nn -i eth0 icmp 

如果明確要抓取主機爲192.168.100.70對本機的ping,則使用and操作符。

[root@server2 ~]# tcpdump -c 5 -nn -i eth0 icmp and src 192.168.100.62

注意不能直接寫icmp src 192.168.100.70,因爲icmp協議不支持直接應用host這個type。

(10).抓取到本機22端口包
[root@server2 ~]# tcpdump -c 10 -nn -i eth0 tcp dst port 22  
(11).解析包數據
[root@server2 ~]# tcpdump -c 2 -q -XX -vvv -nn -i eth0 tcp dst port 22

轉載:https://www.cnblogs.com/f-ck-need-u/p/7064286.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章