您好,登錄后才能下訂單哦!
引言
wireshark是一款非常不錯的抓包軟件,在圖形化界面占絕對統治地位;盡管其在字符界面下有些許選項可供使用,但終究不太方便,下面我再介紹一款NB的終端抓包工具 tcpdump
1、混雜模式
linux的網卡有混雜模式一說,當開啟混雜模式后,網卡可以抓取所有的數據包,不管這個包是不是發給自己或自己發出的。由于隨意截取別人的數據包存在一定安全問題,因此linux對于網卡默認是關閉混雜模式的,切只有root用戶能夠開啟網卡混雜模式,開啟方式:
ifconfig ethX promisc
2、常用選項
參數 | 參數說明 | 樣例 |
-D | 查看可通過哪些網卡抓包 | |
-i name | 指定通過該name網卡抓包 | tcpdump -i eth0 tcpdump -i any |
-w file | 將抓取的包存入file文件中(該文件可被wireshark使用),默認打印到終端 | tcpdump -i eth0 -w packet.pcap |
-r file | 讀取前面抓取的包,將其作為輸入 | tcpdump -r file |
-s length | 抓取數據包的長度,默認68個字節;設置為0,表示抓取全部數據 | |
-c count | 抓取的數據包個數 | |
-t | 不顯示時間戳 | |
-S | 打印絕對的sequence number | |
-x/-xx | 按HEX打印每個包的頭信息/包含鏈路信息 | |
-n | 不要將ip轉換為主機名 | |
-nn | 不要轉換ip與端口為對應的名字 | tcpdump -nnSs 0 tcp port ! 22 |
-e | 顯示鏈路層信息,默認不顯示 | |
-F file | 過濾條件從file文件內容獲取,命令行內容忽略 | |
-X/-XX | 按HEX與ASCII打印每個包的頭部信息/包含鏈路信息 | |
-C file_size | 指定每個文件最大長度為30M,與 -W一起使用 | tcpdump -i eth0 -C 30 -W 50 -w /tmp/net.pcap |
-W filecount | 指定最多生成50個文件,與-C一起使用 | tcpdump -i eth0 -C 30 -W 50 -w /tmp/net.pcap |
3、過濾器
3.1、host
指定主機或網絡抓取,可用ip或域名或網段
tcpdump host 192.168.12.1 tcpdump net 192.168.12.0/24
也可以設置源或則目的端
tcpdump [src|dst] host 192.168.12.1
指定抓取多個ip的包,不能加方向,如src或dst
tcpdump host 10.27.82.223 and \(10.27.82.222 or 10.27.82.221\)
排除方式指定目標
tcpdump ip net 192.168.12.0/24 and ! 192.168.12.3
3.2、port / portrange
指定端口/端口范圍(0-1024)與主機,可同時指定方向
tcpdump tcp [src|dst] port 23 and [src|dst] host 192.168.12.1
排除某個端口的數據包
tcpdump tcp port ! 22
3.3、循環覆蓋抓取網絡包,存儲到30個文件中,每個文件最大50M
tcpdump -i eth0 -C 30 -W 50 -w /tmp/net.pcap
4、高級特性
4.1、指定數據包標志位
tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0' #獲取開始或則結束的數據包 tcpdump 'tcp[tcpflags] & (tcp-fin) != 0' #獲取連接結束的數據包 tcpdump 'tcp[tcpflags] & (tcp-syn) != 0' #獲取連接開始的數據包 tcpdump -AXtnni eth0 'src host 192.168.12.1 and dst port 9876 and tcp[((tcp[12:1] & 0xf0) >> 2):4]=0x47455420' #獲取GET請求數據
5、輸出結果
打印格式:
系統時間 來源主機.端口 > 目標主機.端口 數據包參數
eg:20:09:53.584715 IP 100.109.225.128.30207 > 10.27.82.228.443: Flags [R.], seq 241841040, ack 631822021, win 58, options [nop,nop,TS val 144058912 ecr 3829113521], length 0
6、問題
加上-C選項后提示“Permission denied”
解決辦法是,加上 "-Z root"
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。