WinDump使用方法

标签: windump 方法 | 发表时间:2016-05-13 03:39 | 作者:starbhhc
出处:http://www.iteye.com

Windump是Windows环境下一款经典的网络协议分析软件,其Unix版本名称为Tcpdump。它可以捕捉网络上两台电脑之间所有的数据包,供网络管理员/入侵分析员做进一步流量分析和入侵检测。在这种监视状态下,任何两台电脑之间都没有秘密可言,所有的流量、所有的数据都逃不过你的眼睛(当然加密的数据不在讨论范畴之内,而且,对数据包分析的结果依赖于你的TCP/IP知识和经验,不同水平的人得出的结果可能会大相径庭)。

 

先下载安装WinPcap_4_1_3。再下载WinDump安装。不然会报错.

在命令行下启动windump.exe

 

参数列表:

-a               将网络地址解析为名字

-B size        设置网络数据接收缓冲区大小

-c count      只抓取count数目个包

-D               显示当前系统中所有可用的网卡

-e                输出链路层信息

-F file          从file文件中读取过滤的限制条件

-i interface  监视指定网卡

-n               不将网络地址解析为名字

-N               不打印全称域名信息

-q               Print quick(less) packet infomation

-r file          从file文件中读取数据

-S               Prints absolute TCP sequence numbers

s snaplen   Captures snaplen bytes from the packet; the default value is 68

-t                不打印时间戳

-w file         将输出写入file文件

-X               用十六进制和ASCII码输出捕获的包

-x               用十六进制输出捕获的数据

使用示例如下:

C:/monitor>windump -s 200 -x -w testcap

此句表示捕获每个包的前200个字节,用十六进制输出,并将其写入testcap文件中

 

使用过滤器

查看网络上所有IP: windump ip

查看与指定ip交流的所有数据:  windump ip host 192.168.1.6(指定ip)

查看所有从指定ip发到本机来的所有数据:   windump ip src 192.168.1.6(指定ip)

捕获从指定网段发到本机的所有数据:   windump ip host 192.168.1(指定ip网段)

 

 

主要参数有选项和表达式两类。下面说明几个必要的选项和表达式:
-i 指定要监听的网络接口,可以使用windump -D 列出当前系统中所有的网络设备接口,不指定的话是设备列表中找得的第一个。例如:
./WinDump.exe -D
1.\Device\NPF_GenericNdisWanAdapter (Generic NdisWan adapter)
2.\Device\NPF_{6AA36CF4-E4FD-49BF-93E5-DC29AB8A3AA5} (SiS NIC SISNIC (Microsoft' s Packet Scheduler) )

./WinDump.exe
./WinDump.exe -i 1
./WinDump.exe -i  \\Device\\NPF_GenericNdisWanAdapter 
都是监听第一个网络接口设备Generic NdisWan adapter。
./WinDump.exe -i 2
./WinDump.exe -i  \\Device\\NPF_{6AA36CF4-E4FD-49BF-93E5-DC29AB8A3AA5 }
都是监听第二个网络接口设备SiS NIC SISNIC (Microsoft' s Packet Scheduler)。

如果不指定表达式,所有通过指定接口的packet都输出,否则只把表达式expression为真的输出。
最基本的表达式是这样的:
[proto] [dir] [type] [id]

proto 协议,可以是ether, fddi, tr, ip, ip6, arp, rarp, decnet, tcp , udp中任一个或它们的表达式组合,如果不指定,所有和后面的type一致的都考虑在内。 
dir packet传输的方向,可以是src, dst中的任一个或它们的表达式组合。不指定的话,相当于src or dst 。
type 指定后面的id是网络地址、主机地址还是端口号,可以是host, net ,port中任一个,如果不指定,默认为host。
id 就是希望监听的网络或主机或端口地址。

一个覆盖所有元素的表达式如下:
ether src host 00:11:D8:6A:33:22
./WinDump.exe -i 2 ether src host 00:11:D8:6A:33:22
监听所有从本地网卡向外发的packet,其中00:11:D8:6A:33:22是本地网卡的mac地址。
./WinDump.exe -i 2 udp dst port 135
监听所有发给本地135 udp端口的packet。

更复杂的表达式是以上基本的表达式的逻辑组合,可用于组合的关键字有and, or, not,同时构成基本表达式的四类运算都是可选,不是必须的,比如:“host foo and not port ftp and not port ftp-data”,其中foo代表主机名,其他都是关键字。

此外,有gateway, broadcast , multicast , mask , protochain , proto , less , greater 四个关键字和一些算术表达式、逻辑符合等。
gateway foo 其中,foo是主机名,如果某个packet以foo为gateway,表达式为真,也就是该packet的ether源或目的地址是foo,而ip源和目的地址都不是foo。
broadcast,multicast 跟在ether或者ip、ip6后面表示某个packet是广播包、多播包,比如“ether broadcast”,“ip multicast”。
mask 和net一起说明网络地址,例如“net 192.168.0 mask 255.255.255.0”。
protochain 跟在ip、ip6后面说明更上层的协议字,比如“ip protochain 6”。
proto 跟在ether或者ip、ip6后面表示更上层的协议,跟在“ether proto”之后的可以是ip, ip6, arp, rarp, atalk, aarp, decnet, sca, lat, mopdl, moprc, iso,跟在“ip proto”或“ip6 proto”之后的可以是icmp, icmp6, igmp, igrp, pim, ah, esp, udp, tcp,注意对于有些本身就是关键字的要加“\”转义,比如“ether proto \ip”。

其他表达式是这样的格式:
expr relop expr
其中,relop 可以是 >, <, >=, <=, =, !=, 中任一个,expr是由C语言规范描述的整数常量、二进制运算符(+, -, *, /, &, |)、len(取长度的关键字)、包数据构成,包数据这样访问:
proto [ offset : size ] proto是ether, fddi, tr, ip, arp, rarp, tcp, udp, icmp , ip6中任一个,表示要取的数据是该协议头范围内的,相对于PDU开始处的偏移由offset指定,size可选、说明要取数据的字节数,可以是1~4, 默认是1。例如,
“ether[0] & 1 != 0”匹配所有multicast数据包,因为01:00:5e:00:00:00到 01:00:5e:7f:ff:ff都是多播地址。
“ip[0] & 0xf != 5”匹配所有带选项的ip包,根据ip协议,“ip[0] & 0xf”取到的是IP协议头长度,而不带选项的ip协议头长度刚好是5。
“ip[6:2] & 0x1fff = 0”,“ip[6:2] & 0x1fff”取到该ip包的Fragment Offset,所以匹配所有不分段的ip包或所有分段ip包中的第一段。

其它操作法有!(相当于not )、&&(相当于and )、||(相当于or)。

使用举例:
./WinDump.exe -i 2 not arp and ether host not 02:01:00:00:00:00
抓取所有非arp协议、且源或目的主机的ether地址都不是02:01:00:00:00:00的packet。

windump.exe -i 2 -w cap ether host 00:11:D8:6A:33:22
抓取所有源或目的主机的ether地址是00:11:D8:6A:33:22(本地网卡的mac地址)的packet,但不知道屏幕上输出,而是把所有抓获的raw packet写入文件cap中。
windump.exe -r cap
读取刚才的输出文件cap,对抓获的所有packet进行解析输出。
经粗略分析,windump输出的raw packet文件格式如下:
文件头24个字节:“D4 C3 B2 A1 02 00 04 00 00 00 00 00 00 00 00 00 60 00 00 00 01 00 00 00 ”,具体含义不明确。
接下来是所有raw packet连续存放的数据,对于每个raw packet依次有:
8个字节的timestamp(时间戳)
ether frame header(7 bytes Preamble,1 byte SOF,6 bytes DA, 6 bytes SA,2bytes length/type)
ether frame payload(更上层协议PDU)

windump.exe -r cap 只是在屏幕上依次输出每个packet对应的时间戳、ether frame payload 中PDU协议类型,再是与该协议相关的简单信息。
windump.exe -r cap -x 除了输出基本的信息之外,还把ether frame payload以十六进制输出。

 

 

 

 

 

 

windump是一个开源软件,可以进行各种协议的网络数据包探测,是一个不错的免费、开源Net Sniffer软件,当前最新版本是3.9.5,官方下载网址: http://www.winpcap.org/windump/install/
详细的帮助文件官方网址是: http://www.winpcap.org/windump/docs/manual.htm

常用的参数:
-w write的缩写,写入文件,供后期分析。
-D 打印系统可用的网络接口列表。
-i[n] interface的缩写,选择要监测的网络接口。
host 指定要监测的主机,可以是域名或IP地址。
port 指定要监测的端口。
src/dst source/Destination的缩写,该参数配合host和port参数一起使用,指定要监测的主机或端口为源/终点的数据包。
-s size的缩写,指定抓取的每个数据包的大小,缺省是68,如果该值太小,可能会丢失数据。如果设置为0,则表示捕获整个包。
-t 不显示时间。
-tttt 以缺省ISO格式显示时间。
tcp, udp, icmp 指定使用的协议

使用范例:
监测某个网站的访问数据包,如mail.163.com:
1 运行命令行

例如:

windump    -w pc.dump -s 0 host   mawi.wide.ad.jp

windump    -w pc.dump -s 0 src host   mawi.wide.ad.jp

windump    -w pc.dump -s 0 dst host   mawi.wide.ad.jp


windump  -i2(看自己的网卡,可以不需要) -w pc.dump -s 0 host mail.163.com
2 用浏览器访问mail.163.com的某个网页。
3 用Ultraedit或其他16进制编辑器打开pc.dump文件,你就可以看到你对网页操作的“Request->Response”数据包了。

如果你只对服务器返回的消息感兴趣,如下修改上面的命令:
windump  -i2(看自己的网卡,可以不需要)  -w pc.dump -s 0 src host mail.163.com

反之:
windump  -i2(看自己的网卡,可以不需要)  -w pc.dump -s 0 dst host mail.163.com

windump的确是个不可多得的优秀Sniffer软件,值得收藏使用。

 

 

 

 

 

 





已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [windump 方法] 推荐:

WinDump使用方法

- - 研发管理 - ITeye博客
Windump是Windows环境下一款经典的网络协议分析软件,其Unix版本名称为Tcpdump. 它可以捕捉网络上两台电脑之间所有的数据包,供网络管理员/入侵分析员做进一步流量分析和入侵检测. 在这种监视状态下,任何两台电脑之间都没有秘密可言,所有的流量、所有的数据都逃不过你的眼睛(当然加密的数据不在讨论范畴之内,而且,对数据包分析的结果依赖于你的TCP/IP知识和经验,不同水平的人得出的结果可能会大相径庭).

模板方法

- - 博客园_首页
由于前两天刚好用到模板方法这个模式,而且这个模式相对来 比较简单实用,就写写个人的一些认知吧. 大家对宋丹丹和赵本山的小品里有一个很经典的台词一定不会陌生,而且还日常中经常引用:. 《钟点工》中宋丹丹问要把大象装冰箱,总共分几步. 赵本山就懵了,大象那么大,冰箱那么小,怎么才能把大象装冰箱里呢. 答案也很经典:三步:第1步,把冰箱门打开;第2步,把大象装进去;第3步,把冰箱门带上.

详解 equals() 方法和 hashCode() 方法

- - ImportNew
Java的基类Object提供了一些方法,其中equals()方法用于判断两个对象是否相等,hashCode()方法用于计算对象的哈希码. equals()和hashCode()都不是final方法,都可以被重写(overwrite). 本文介绍了2种方法在使用和重写时,一些需要注意的问题. Object类中equals()方法实现如下:.

mysql优化方法

- - 数据库 - ITeye博客
通过show status和应用特点了解各种SQL的执行频率. 通过SHOW STATUS可以提供服务器状态信息,也可以使用mysqladmin extended-status命令获得. SHOW STATUS可以根据需要显示session级别的统计结果和global级别的统计结果. 以下几个参数对Myisam和Innodb存储引擎都计数:.

下载Flickr图片方法

- wind - 让PPT设计NEW一NEW
        众所周知,Flickr是全球最大的在线图片分享网站,也是最早涉足web2.0的网站之一. 网站上面有很多非常漂亮的图片,这为那些“图片控”、“下载控”提供了一个非常好的途径. 可惜啊可惜,可惜的是,Flickr网站并非允许所有图片可以下载.         前几天,有个网友发微博私信给我,问我如何下载Flickr图片.

放手的7种方法

- imacee - 译言-每日精品译文推荐
来源Seven Ways to Let Go. 前言:学会放手是一门人生哲学,无端的执着总是给生活带来不快乐. 当人们总是在抱怨放下太难的时候,是不是可以从自身上寻找一些可以改进的地方呢. 下面让我们来探讨几条小建议吧,仅供参考. 一、拓宽自己的世界观并舍弃一些习惯. 学会放开,就要拒绝执行要求自己事事完美的命令,不要总是要求自己达到某个目标,取悦他人.

止咳的天然方法

- Jerrfey - 译言-每日精品译文推荐
来源Natural Ways to Suppress a Cough. 在你伸手拿咳嗽糖浆之前,试试这些天然疗法的其中之一吧. To make a tea, mix 2 teaspoons crushed leaves in 1 cup boiling water, cover, then steep for 10 minutes and strain..

雷军的方法论

- Leo - 《商业价值》杂志
雷军做小米的过程,实际上就是将他从金山和做天使投资人时所积累的方法论,付诸实践的过程. 1992年,雷军加入金山软件,任北京开发部总经理;1998年,雷军担任金山软件CEO;1999年,金山软件筹备上市;2007年,金山软件上市; 2个月后,雷军宣布离职. 这是雷军从23岁到38岁最重要的人生一页.

Doclist压缩方法简介

- flychen50 - 搜索技术博客-淘宝
本文是作者在学习doclist压缩时的一点总结,希望以尽可能简单明了的方式描述各个算法的思想和适用场景,帮助同学们理解和比较. 本文并不涉及具体的算法实现,代码请大家自行google. 这里需要强调的是“所谓的改进顺序”只是作者yy出来方便理解记忆,并不反应真实的压缩方法发展历程. 倒排表的基本组成部分,看例子:.

IPv6地址规划方法

- Power - cnBeta.COM
今年初ICANN和APNIC的IPv4地址池全部耗尽,亚太地区成为全球首个无法满足IPv4需求的地区. 伴随着我国互联网产业的高速增长以及未来三网 融合和物联网的发展,当前我国掌握的IPv4地址资源远无法满足高速增长的用户需求,我国将成为全球最早受地址匮乏影响的国家之一.