Linux使用tcpdump抓取網路資料報示例

2021-09-01 16:04:38 字數 1553 閱讀 4270

tcpdump是linux命令列下常用的的乙個抓包工具,記錄一下平時常用的方式,測試機器系統是ubuntu 12.04。

tcpdump的命令格式

tcpdump的引數眾多,通過man tcpdump可以檢視tcpdump的詳細說明,這邊只列一些筆者自己常用的引數:

tcpdump [-i 網絡卡] -nnax '表示式'
各引數說明如下:

下面進行一些命令測試,如果沒有許可權,可以先切換成root使用者。

監聽網絡卡eth0

$ tcpdump -i eth0
這個方式最簡單了,但是用處不多,因為基本上只能看到資料報的資訊刷屏,壓根看不清,可以使用ctrl+c中斷退出,如果真有需求,可以將輸出內容重定向到乙個檔案,這樣也更方便檢視。

監聽指定協議的資料

$ tcpdump -i eth0 -nn 'icmp'
這個是用來監聽icmp協議的資料,就是ping命令使用的協議。類似的,如果要監聽tcp或者是udp協議,只需要修改上例的icmp就可以了。ping下監聽的機器,輸出如下:

linux使用tcpdump抓包示例

每一行的各個資料表示的含義:

抓到包的時間 ip 發包的主機和埠 > 接收的主機和埠 資料報內容
監聽指定的主機

$ tcpdump -i eth0 -nn 'host 192.168.1.231'
這樣的話,192.168.1.231這台主機接收到的包和傳送的包都會被抓取。

$ tcpdump -i eth0 -nn 'src host 192.168.1.231'
這樣只有192.168.1.231這台主機傳送的包才會被抓取。

$ tcpdump -i eth0 -nn 'dst host 192.168.1.231'
這樣只有192.168.1.231這台主機接收到的包才會被抓取。

監聽指定埠

$ tcpdump -i eth0 -nna 'port 80'
上例是用來監聽主機的80埠收到和傳送的所有資料報,結合-a引數,在web開發中,真是非常有用。

監聽指定主機和埠

$ tcpdump -i eth0 -nna 'port 80 and src host 192.168.1.231'
多個條件可以用and,or連線。上例表示監聽192.168.1.231主機通過80埠傳送的資料報。

監聽除某個埠外的其它埠

$ tcpdump -i eth0 -nna '!port 22'
如果需要排除某個埠或者主機,可以使用「!」符號,上例表示監聽非22埠的資料報。

小結:tcpdump這個功能引數很多,表示式的選項也非常多,非常強大,不過常用的功能確實不多。詳情可以通過man檢視系統手冊。

另外在抓取web包的時候,傳送網頁內容都是很奇怪的字元,發現是apache開啟了gzip壓縮的緣故,關閉掉gzip壓縮就可以了。在ubuntu 12.04下,編輯vim /etc/apache2/mods-enabled/deflate.load檔案,將載入模組deflate_module的語句注釋掉,然後重啟apache就ok了

Linux 抓包工具 tcpdump 使用

tcpdump d獲取網路介面卡列表,以下是在windows上獲取到的結果 device pssdkloopback pssdk loopback ethernet emulation adapter device intel r pro 100 ve network co nnection tcp...

Linux上tcpdump抓包工具使用

黑客實戰小技巧 內網滲透隔壁小姐姐 內網斷網攻擊實驗 tcpdump是linux子帶的乙個抓包工具,常見的用法 root kali tcpdump i eth0 nn icmp root kali tcpdump i eth0 nn arp i 是網絡卡名 nn 後面跟的是要抓包的協議 抓取192....

linux自帶抓包工具tcpdump使用說明

tcpdump是個強大的網路分析工具,有很多細緻的規則可以定義。參考 命令格式 tcpdump nn i 介面 w 儲存檔名 c 次數 ae qx 引數說明 a 將網路位址和廣播位址轉變成名字 d 將匹配資訊包的 以人們能夠理解的彙編格式給出 dd 將匹配資訊包的 以c語言程式段的格式給出 ddd ...