Ethereal用法
[ 2009-12-24 16:25:00 | By: 紫yu ]
如同Tcpdump一樣Ethereal,支持非常豐富的過濾器。
過濾器分為兩類,一類是抓包過濾器(capture filter),當網(wǎng)絡流量很大時,可以非常有效地過濾噪音數(shù)據(jù);另外一類是顯示過濾器(display filter), 可以從你抓到的所有數(shù)據(jù)包中過濾噪音數(shù)據(jù)。事實上,由于好的過濾器需要非常好的網(wǎng)絡知識,所以除非非常需要,一半可以不作過濾;
順便說一句,ethereal的capture filter和display filter語法不相同,capture filter的語法可以參照tcpdump的語法。
事實上,Ethereal本身并不能抓包,它只能用來解析數(shù)據(jù)包;要抓取數(shù)據(jù)包,它需要借助于PCap。Pcap在windows下面的實現(xiàn)稱作Winpcap.在Linux下面,Pcap一般都已經(jīng)被默認安裝;
常用的Capture Filter
常用的Display Filter
1. 操作符:
eq, == Equal
ne, != Not Equal
gt, > Greater Than
lt, < Less Than
ge, >= Greater than or Equal to
le, <= Less than or Equal to
舉例:
Udp.port == 10002
sip.Method == INVITE
2. 搜索操作
contains 協(xié)議,包,包含指定內容
matches Perl標準表達式
舉例:
sip contains INVITE 這個將列出所有SIP包中含有INVITE字符的包;
wsp.user_agent matches "(?i)cldc" 查找wsp.user_agent中含有cldc字符的包,并且不區(qū)分大小寫。(?option)這個表達式是PERL表達式,不是所有的ethereal版本都支持的,使用前檢查自己的版本是否包含“with the PCRE library”;
3.常見關鍵詞
ip
eth
udp
tcp
http
舉例:
.pkt_len > 100 包的數(shù)據(jù)長度大于100的包
ip.src == 192.168.214.12 源地址是192.168.214.12
ip.dst ==
www.yahoo.com 目標地址是
www.yahoo.com的包
ip.addr == 129.111.0.0/16 地址范圍在129.111.*.*子網(wǎng)的包,類似于capture filter的host
http.request.method == "HEAD" 在HTTP包中查找request命令含HEAD的包
http.request.method == "\x48EAD" 和上面的一樣,只是使用\x48來表示‘H’
4. 數(shù)組操作
[i:j] i = 起點, j = 長度
[i-j] i = 起點, j = 末點, 包含.
[i] i = 起點, 長度1
[:j] 起點等于 0, 長度= j
[i:] 起點 = i, 至最后
還是直接舉例吧:
eth.src[0:3] == 00:00:83 以太網(wǎng)地址的前3位
http.content_type[0:4] == "text" content_type的前四位
[-4:4] == 0.1.2.3 起點為負表示終點-4 長度4位,就是末四位啦,怎么樣夠靈活吧~
5.邏輯操作
and, && Logical AND
or, || Logical OR
not, ! Logical NOT
6.位操作
bitwise_and, & Bitwise AND
舉例:
tcp.flags & 0x02 過濾所有的TCP SYN包
更多的關于filter的解釋還是看幫助吧:ethereal-filter.html
至于Capture的Filter我就不多說啦,可以到linux下面去man tcpdump
需要說明的是,Ethereal是基于圖形界面的,所以如果你是通過SSH或者Telnet使用Unix工作站,你可能會感覺麻煩。而如果你打算使用Tcpdump,只要你打開一下tcpdump的手冊頁,你肯定就會望而卻步了;更糟糕的是,Tcpdump的手冊頁只是提供了最基本的幫助。我常用的一個方法是,在遠程終端運行tcpdump,加以最少的參數(shù)。比如: tcpdump -i eth0 -s 1500 -w a.dmp 這個語句機會可以在任何情況下使用。簡單解釋一下,-i eth0是在eth0接口上監(jiān)聽, -s 1500是一個很重要的參數(shù),它指抓取的數(shù)據(jù)包的前1500個字節(jié),否則你可能只能看到數(shù)據(jù)包的前68個字節(jié),因為tcpdump的默認抓取長度是68,-w a.dmp是表示把抓取的數(shù)據(jù)寫入a.dmp中。抓取介紹后,Ctl+C,你可以看到a.dmp已經(jīng)生成。然后用sftp傳到本機使用Ethereal解析。
過濾規(guī)則:
一、IP過濾:ip.addr==192.168.100.25 或者 !(192.168.100.25)
IP過濾有ip.src="/=192.168.100.25",表示源地址為192.168.100.25
ip.dst==192.168.100.25,表示目標地址為192.168.100.25
二、端口過濾:tcp.port==80
三、協(xié)議過濾:arp
四、包長度過濾:udp.length=30
五、連接符 and / or
六、表達式:!(arp.src="/=192.168.1.1") and !(arp.dst.proto_ipv4==192
.168.1.243)