tcpdump
一款sniffer工具,是Linux上的抓包工具,嗅探器。
補充說明
tcpdump指令 是一款抓包,嗅探器工具,它可以列印所有經過網絡接口的資料包的頭資訊,也可以使用-w選項将資料包儲存到檔案中,友善以後分析。
文法tcpdump(選項)
選項-a:嘗試将網絡和廣播位址轉換成名稱;
-c:收到指定的資料包數目後,就停止進行傾倒操作;
-d:把編譯過的資料包編碼轉換成可閱讀的格式,并傾倒到标準輸出;
-dd:把編譯過的資料包編碼轉換成C語言的格式,并傾倒到标準輸出;
-ddd:把編譯過的資料包編碼轉換成十進制數字的格式,并傾倒到标準輸出;
-e:在每列傾倒資料上顯示連接配接層級的檔案頭;
-f:用數字顯示網際網絡位址;
-F:指定内含表達方式的檔案;
-i:使用指定的網絡截面送出資料包;
-l:使用标準輸出列的緩沖區;
-n:不把主機的網絡位址轉換成名字;
-N:不列出域名;
-O:不将資料包編碼最佳化;
-p:不讓網絡界面進入混雜模式;
-q:快速輸出,僅列出少數的傳輸協定資訊;
-r:從指定的檔案讀取資料包資料;
-s:設定每個資料包的大小;
-S:用絕對而非相對數值列出TCP關聯數;
-t:在每列傾倒資料上不顯示時間戳記;
-tt:在每列傾倒資料上顯示未經格式化的時間戳記;
-T:強制将表達方式所指定的資料包轉譯成設定的資料包類型;
-v:詳細顯示指令執行過程;
-vv:更詳細顯示指令執行過程;
-x:用十六進制字碼列出資料包資料;
-w:把資料包資料寫入指定的檔案。
執行個體
直接啟動tcpdump将監視第一個網絡接口上所有流過的資料包tcpdump
監視指定網絡接口的資料包tcpdump-i eth1
如果不指定網卡,預設tcpdump隻會監視第一個網絡接口,一般是eth0,下面的例子都沒有指定網絡接口。
監視指定主機的資料包
列印所有進入或離開sundown的資料包。tcpdump host sundown
也可以指定ip,例如截獲所有210.27.48.1 的主機收到的和發出的所有的資料包tcpdump host210.27.48.1
列印helios 與 hot 或者與 ace 之間通信的資料包tcpdump host heliosand\( hotorace \)
截獲主機210.27.48.1 和主機210.27.48.2 或210.27.48.3的通信tcpdump host210.27.48.1and\(210.27.48.2or210.27.48.3\)
列印ace與任何其他主機之間通信的IP 資料包, 但不包括與helios之間的資料包.tcpdump ip host aceandnothelios
如果想要擷取主機210.27.48.1除了和主機210.27.48.2之外所有主機通信的ip包,使用指令:tcpdump ip host210.27.48.1and!210.27.48.2
抓取eth0網卡上的包,使用:sudo tcpdump-i eth0
截獲主機hostname發送的所有資料tcpdump-i eth0 src host hostname
監視所有送到主機hostname的資料包tcpdump-i eth0 dst host hostname
監視指定主機和端口的資料包
如果想要擷取主機210.27.48.1接收或發出的telnet包,使用如下指令tcpdump tcp port23host210.27.48.1
對本機的udp 123 端口進行監視 123 為ntp的服務端口tcpdump udp port123
監視指定網絡的資料包
列印本地主機與Berkeley網絡上的主機之間的所有通信資料包tcpdump net ucb-ether
ucb-ether此處可了解為“Berkeley網絡”的網絡位址,此表達式最原始的含義可表達為:列印網絡位址為ucb-ether的所有資料包
列印所有通過網關snup的ftp資料包tcpdump'gateway snup and (port ftp or ftp-data)'
注意:表達式被單引号括起來了,這可以防止shell對其中的括号進行錯誤解析
列印所有源位址或目标位址是本地主機的IP資料包tcpdump ipandnotnet localnet
如果本地網絡通過網關連到了另一網絡,則另一網絡并不能算作本地網絡。
抓取80端口的HTTP封包,以文本形式展示:sudo tcpdump-i any port80-A