tcpdump 抓包工具
(很容易的,别有壓力,朋友)
1.首先看一下它的作用:tcpdump可以将網絡中傳送的資料包的“頭”完全截獲下來提供分析。它支援針對網絡層、協定、主機、網絡或端口的過濾,
并提供and、or、not等邏輯語句來幫助你去掉無用的資訊。
2.舉個例子
jason@jason-inspiron-3542:~$ sudo tcpdump -i wlan0 -a host 192.168.0.140 and port 8080
(1) (2) (3) (4) (5)
(1)sudo :因為tcpdump的使用需要root權限,是以sudo一下,或者直接 sudo -s 後輸入root密碼,切換到root使用者--> root@jason-inspiron-3542:~$
(2)-i : -i (i 代表 interface) 指定tcpdump 需要監聽的接口. 如果沒有指定, tcpdump 會從系統接口清單中搜尋編号最小的已配置好的接口
(不包括 loopback 接口).一但找到第一個符合條件的接口, 搜尋馬上結束.
-i eth0 : 隻抓經過接口eth0的包
-i wlan0 : 隻抓取經過接口wlan0的包
(這裡-i 後面接什麼要看具體情況,終端下輸入ifconfig顯示如下:
root@jason-inspiron-3542:~# ifconfig
eth0 link encap:以太網 硬體位址 74:e6:e2:08:89:32
up broadcast multicast mtu:1500 躍點數:1
......
lo link encap:本地環回
inet 位址:127.0.0.1 掩碼:255.0.0.0
inet6 位址: ::1/128 scope:host
......
wlan0 link encap:以太網 硬體位址 4c:bb:58:1d:43:cf
inet 位址:192.168.0.140 廣播:192.168.0.255 掩碼:255.255.255.0
inet6 位址: fe80::4ebb:58ff:fe1d:43cf/64 scope:link
一共有三個eth0、lo、wlan0
-i lo :不可用
-i wlan0 :以太網,必須wlan0端口選項inet位址才是可用的,這裡wlan0中是有inet位址的,是以可用
-i eth0 : 以太網,必須eth0端口選項inet位址才是可用的,這裡eth0中是沒有inet位址的,(是以我這裡是不可用)
(3)-a 表示以ascii碼方式顯示每一個資料包(不會顯示資料包中鍊路層頭部資訊). 在抓取包含網頁資料的資料包時,
可友善檢視資料(nt: 即handy for capturing web pages).
(4)host 可以是一個ip位址, 也可以是一個主機名.
(5)port 8080:監聽8080端口的資料傳輸包
監聽主機192.168.0.140資料傳輸包
sudo tcpdump -i wlan0 -t -a -s 0 host 192.168.0.140
sudo tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第一個參數的位置,用來過濾資料報的類型
(2)-i :指定監聽的網絡接口。
-i eth1 : 隻抓經過接口eth1的包
-i wlan0 : 隻抓取經過接口wlan0的包
(3)-t : 不顯示時間戳
(4)-s 0 : 抓取資料包時預設抓取長度為68位元組。加上-s 0 後可以抓到完整的資料包
(5)-c 100 : count
隻抓取100個資料包
(6)dst port ! 22 : 不抓取目标端口是22的資料包
(7)src net 192.168.1.0/24 : 資料包的源網絡位址為192.168.1.0/24
(8)-w ./target.cap : 儲存成cap檔案,友善用ethereal(即wireshark)分析
異常:
1.tcpdump: warning: eth0: no ipv4 address assigned
沒有給 eth0 配置設定 ipv4 位址,輸入ifconfig 檢視 eth0 端口 ipv4的inet位址為空,
則使用不了eth0端口,具體檢視上文。
2.tcpdump: wlan0: you don't have permission to capture on that device
說明你不是root使用者操作,沒有權限,切換到root使用者就ok了