Linux及AIX下的抓包工具及使用注意事項

最近工作遇到非Web、CS端的系統,無從下手,後查閱資料使用後在此記錄:

Linux(RedHat,Centos)

一般系統自帶tcpdump ,若未安裝使用 yum install tcpdump 進行安裝。

常用用法如下:

tcpdump -i lo 

抓取本地數據

tcpdump -i eth1 host  192.168.0.1
抓取指定經過eth0網卡,IP爲192.168.0.1的數據 

過濾端口: 
tcpdump -i eth0 src port 80
抓取所有經過網卡0,源端口爲80的網絡數據 

過濾端口: 
tcpdump -i eth0 dst port 80
抓取所有經過網卡0,目的端口爲80的網絡數據 

過濾特定協議: 
tcpdump -i eth0 tcp
抓取所有經過網卡0,協議類型爲tcp的網絡數據 

抓包存取: 
tcpdump -i eth0 host 192.168.0.1 and port 80 -w  test.pcap
抓取所有經過網卡0,目的主機爲192.168.0.1的且端口80的數據並保存爲wireshark可識別的數據包格式

具體參數說明

  • -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<數據包文件> 把數據包數據寫入指定的文件。

 

AIX 

AIX也可以使用tcpdump來進行抓包使用,使用方法如上所述,但有些老舊版本的AIX不能使用,故使用iptrace,用法個別不同。

iptrace:

iptrace 抓包:

格式:

iptrace [ -a ] [ -b ][ -e ] [ -u ] [ -PProtocol_list ] [ -iInterface ] [ -pPort_list ] [ -sHost [ -b ] ] [ -dHost ] [ -L Log_size ] LogFile

實例:

iptrace -i en0   test.cap

抓取指定經過eth0網卡,保存在test.cap中,與tcpdump不同的是不用-w存儲

iptrace -a -b -d 10.1.1.1 -p 23  test.cap

抓取目的ip爲10.1.1.1,端口爲23的數據包 

結束抓包:
ps -ef | grep iptrace

查詢進程


kill -9 iptrace進程ID 

結束進程

詳細參數:

-a

抑制 ARP 包。

-b

把標誌 -d 或 -s 變換成雙向方式。

-d Host

記錄以由 Host 變量指定的目的地主機指定爲報頭的信息包。Host 變量 能夠作爲一個主機名或由點隔開的十進制格式因特網地址。

如果使用 -b 標誌,-d 標誌 記錄由 Host 變量指定的主機進出的信息包。

-e

啓用支持混合模式的網絡適配器的混合模式功能。

-i Interface

記錄在由 Interface 變量指定的接口上接收的信息包。

-L Log_size

此選擇會導致 iptrace 記錄日誌數據 ,這樣 LogFile 在開始時及每當接近 Log_size 字節大小時,就複製到 LogFile.old。

-P Protocol_list

記錄使用由 Protocol_list 變量指定的協議的信息包,此變量是一個由逗號分隔的協議列表。 此協議可以是來自 /etc/protocols 文件中的十進制數字或名稱。

-p Port_list

記錄使用由 Port_list 變量指定的端口號的信息包,此變量是一個逗號分隔的端口列表。 Port_list 變量可以是 /etc/services 文件中的一個十進制數或名字。

-s Host

記錄來自由 Host 變量指定的源主機的信息包。Host 變量 可以是一個主機名字或一個由點隔開的十進制格式的因特網地址。

如果使用標誌 -b,-s 標誌記錄進出由 Host 變量指定的主機的信息包。

-u

卸裝在啓動時由 iptrace 守護進程裝入的內核擴展。

 

 

             注意事項: (1)抓包完成時一定要kill掉iptrace的進程,使用ctrl+c,否則會一直抓包,佔用硬盤資源。

                                (2)使用 iptrace後,有時需要發出 iptrace -u 以便卸裝 bpf 內核擴展名(重啓也可),由於 iptrace 使用的內核擴展名有可能忙於處理包。

                                (3) 儘量使用root權限。

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