最近工作遇到非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權限。