Ngrep:方便的數據包匹配和顯示工具
ngrep 是grep(在文本中搜索字符串的工具)的網絡版,他力求更多的grep特征,用于搜尋指定的數據包。正由于安裝ngrep需用到libpcap庫,所以支持大量的操作系統和網絡協議。能識別TCP、UDP和ICMP包,理解bpf的過濾機制。
下載鏈接:http://down.51cto.com/data/149233
應用如下(以下的例子中本機地址是"10.178.41.31"):
- iron_gavel$ngrep -qd rl0 (同時在另一控制臺$mazilla http://www.google.com)
- U 10.178.41.31:1054 ->; 211.98.2.4:53
- .............www.google.com.....
- T 216.239.57.104:80 ->; 10.178.41.31:1029 [AFP]
- HTTP/1.0 302 Found..Location: http://www.google.com/intl/zh-CN/..Set-Cookie
- Type: text/html..Server: GWS/2.1..Content-length: 163..Date: Sat, 08 May 20
- 04 13:29:26 GMT..Connection: Keep-Alive....<HTML>;<BODY>;...BODY>;HTML>;..
該命令的輸出說明本機和Google交互的數據
- iron_gavel$ngrep -iw 'lynx'
- interface: rl0 (10.178.41.0/255.255.255.0)
- match: ((^lynx\W)|(\Wlynx$)|(\Wlynx\W))
- T 10.178.41.31:1050 ->; 64.233.161.99:80 [AP]
- GET / HTTP/1.0 Accept-Language: en..User-Agent: Lynx/2.8.4rel.1 l
- ibwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.7c....
- 匹配進出數據包中包括lynx(參數"i"忽略大小寫)的信息。
- iron_gavel$ngrep host 10.178.41.5/*看看對面的同事在干嘛*/
- interface: rl0 (10.178.0.0/255.255.0.0)
- filter: ip and ( host 10.178.41.5 )
- T 10.178.41.5:2035 ->; 61.153.48.247:80 [AP]
- GET /show.asp HTTP/1.1..Host: www.music9999.com.
- .Connection: Keep-Alive..Referer: http://www.music9999.com/....
- T 219.133.40.79:7204 ->; 10.178.41.5:1115 [AP]
- .(OICQ_2280***30.OICQ_33****314.1.0..5m...........
他在瀏覽music9999.com,同時用QQ和朋友聊天。
做為sinffer的用法:
可以用ngrep來匹配特定的數據包:
- iron_gavel$ngrep '' udp /*匹配udp包*/
- iron_gavel$ngrep '' icmp/*匹配icmp包*/
- iron_gavel$ngrep '' port 53 /*顯示所有的dns請求*/
- iron_gavel$ngrep '../'/*監聽遠程主機的'../'請求*/
- iron_gavel$ngrep -d rl0 port 80/*服務器端http數據*/
- iron_gavel$ngrep -d rl0 'error' port syslog/**/
- iron_gavel$ngrep -wi -d rl0 'user|pass' port 21/*關注端口21上的user和pass*/
下面是一些常用的參數:
ngrep -v '' port 23
顯示除telnet的數據包,-v意為反轉。
ngrep -d eth0 ''
在redhat上顯示所有的數據包,-d 指定硬件接口。