Windump是Windows环境下一款经典的网络协议分析软件,其Unix版本名称为Tcpdump。它可以捕捉网络上两台电脑之间所有的数据包,供网络管理员/入侵分析员做进一步流量分析和入侵检测。在这种监视状态下,任何两台电脑之间都没有秘密可言,所有的流量、所有的数据都逃不过你的眼睛(当然加密的数据不在讨论范畴之内,而且,对数据包分析的结果依赖于你的TCP/IP知识和经验,不同水平的人得出的结果可能会大相径庭)。如果你做过 DEBUG或者反汇编,你会发现二者是那么惊人的相似。在W.Richard Stevens的鼎鼎大作《TCP/IP详解》卷一中,通篇采用Tcpdump捕捉的数据包来向读者讲解TCP/IP;而当年美国最出色的电脑安全专家下村勉在追捕世界头号黑客米特尼克时,也使用了Tcpdump,Tcpdump/Windump的价值由此可见一斑。
    windump下载地址:http://www.hackbase.com/soft/2003-12-23/15431.html(还必须安装winpacap哦)
Windump的用法
1.下载解压缩后放入*盘,打开命令提示符,进入*盘,即可输入相应的命令使用。
2.运行windump -D 可列出目前系统中所有可使用的网络界面。
3.要使用专门的配置器,用-i命令和配置器号运行程序。



    windump手册
命令格式
windump [ -aBdDeflnNOpqRStvxX ] [ -c count ] [ -F file ]

[ -i interface ] [ -m module ] [ -r file ]

[ -s snaplen ] [ -T type ] [ -w file ]

[ -E algo:secret ] [ expression ]
描述
Tcpdump 输出网卡数据包中匹配布尔表达式的数据包头。
SunOS 系统下使用nit或bpf:要运行tcpdump,你必须有对dev/nit或/dev/bpf*的权利。Solaris系统下使用dlpi:你必须有对网络假设置的权利。HP-UX系统下使用dlpi:你应该以超级用户ROOT或安装SETUID到ROOT下。IRIX下使用SNOOP:你应该以超级用户ROOT或安装SETUID到ROOT下。LINUX下:你应该以超级用户ROOT或安装SETUID到ROOT下。在系统Ultrix和 Digital UNIX:
命令参数

-a
将网络和广播地址转化为名称

-c
接收指定数据包后退出

-d
接收人可读的包匹配编译代码到标准输出,然后停止

-dd
以C程序分段方式捕获包匹配代码

-ddd
以十进制数据形式捕获包匹配代码

-e
在每个捕获行打印链路层头标

-E
algo:secret为解密IPSE ESP包使用算法。算法可以是des-cbc, 3des-cbc, blowfish-cbc, rc3-cbc, cast128-cbc, 或none。默认值是desc-cbc。只有当TCPDUMP编译时使用激活加密选项时,才可以解密数据包。Secret是ESP密匙是ASCII码。当前还不能认为一定是二进制值。该选项是以RFC2406ESP为假设,而不是RFC1827 ESP。只用于调试,不鼓励用真正的密码作为选项。当你在PS或其他场合,把IPSEC密码写在命令行上时,会被他人看到。

-f
不用符号而用数字方式输出外部英特网地址

-F
使用文件作为过滤表达式的输入。命令行的其他部分会被忽略。

-i
在接口上监听。如果没有指定,TCPDUMP将搜索系统接口列表中最小,被配置激活的接口(LOOPBACK接口除外)。可用最先匹配替换这种关系。在WINDOWS中接口可以是网卡的名称,或是网卡的号码(-D参数可显示该号码)。内核为2。2或其后的LINUX系统,参数“ANY”可以获取所有接口的数据。应注意的是在混乱模式下不能使用“ANY”参数。

-l
标准输出行缓存。如果你想在捕获数据时查看的话,这个参数很有用。例如:“tcpdump -l │ tee dat or ``tcpdump -l > dat & tail -f dat.”

-n
不要将地址(如主机地址,端口号)转换为名称

-N
不要打印主机名称的域名限定。如:如果你使用该参数,TCPDUMP会输出“NIC”而不是“NIC。DDN。MIL”。

-m
从文件模块中载入SMI MIB 模块定义。这个选项可以为TCPDUMP载入多个MIB模块

-O
不要运行包匹配代码优化器。只有在你怀疑优化器有问题时可以使用这个参数。

-p
不要让接口处于“混乱”模式。注意接口可能由于其他原因处于“混乱”模式;因此“-p”不能用作以太网络主机或广播的缩写。

-q
快速(安静?)输出。打印较少的协议信息,因此输出行更短。

-r
从文件中读取包(与参数据-W一起使用)。如果文件是“-”就使用标准输入。

-s
不使用默认的68个字节,更改从每个包中获取数据的字节数量( SunOS系统实际最小为96)。对于IP,ICMP,TCP和UDP包68个字节已足够,但是对命名服务和NFS包,他们的协议会被截断(见下面)。包被截断是因为在使用参数``[│proto]输出时指定受限制的快照,proto是被截断协议层的名称。注意如果使用大的快照会增加处理包的时间,并且明显地减少包的缓存数量。也许会导致包的丢失。你应该将snaplen 设置成你感兴趣协议的最小数。当snaplen 为0时接收整个包。

-T
根据表达式将选中的数据包表达成指定的类型。当前已有的类型有CNFP(Cisco的网络流量协议),rpc(远端程序调用),rtp(实时程序协议),rtcp(实时程序控制协议),snmp(简单网络管理协议),vat(可视单频工具),和wb(分布式白板)。

-R
假设ESP/AH包遵守旧的说明(RFC1825到RFC1829)。如果该参数被指定,TCPDUMP不打输出域。因为在ESP/AH说明中没有协议版本,TCPDUMP就无法推断出其版本号。

-S
输出绝对TCP序列号,而不是相对号。

-t
每个捕获行不要显示时间戳。

-tt
每个捕获行显示非格式化的时间时间戳。

-v
详细输出。例如,显示生存时间TTL,标识符,总长度和IP数据包的选项。也进行额外的包完整性较验,如验证IP和ICMP的头标较验值。

-vv
更为详细的输出。例如,显示NFS中继包中的其他域。

-vvv
很详细的输出。如,完全输出TELNET SB… SE选项。带-X参数的TELNET,打印并以十六进制输出。

-w
不对原始数据包解析打印而是转到文件中去。以后可用-r选项打印。当文件名为“-”表示标准输出。

-x
以十六进制(去除链路层头标)输出每个数据包。输出整个包的小部分或snaplen 个字节。

-X
输出十六进制同时,输出ASCII码。如果-x也被设置,数据包会以十六制/ASCII码显示。这对于分析新协议非常方便。如果-x也没有设置,一些数据包的部分会以十六制/ASCII码显示。
Win32特殊扩展

-B
以千字节为单位设置驱动缓存。默认缓存为1M(即1000)。如果在获取数据包时有数据丢失,建议使用该参数增大核心缓存大小,因为驱动缓存大小对数据捕获性能有很大影响。

-D
显示系统上可用的网卡列表。该参数将返回每块网卡的号码,名称和描述。用户可以输入“WinDump –i 网卡名称”或“WinDump –i 网卡号码”。如果机器有多块网卡,不带参数的WINDUMP命令会从系统的第一块可用网卡开始。


表达式

选择哪些包被捕获。如果没有指定表达式,会捕获所有在网络中的数据包。否则只获捕表达式为真的数据包。
表达式由一个或多个原语组成。原语通常由一个ID(名称或号码)前面加一个或多个限定词组成。有三种不同的限定词。
类型
限定词指出id,名称或号码属于哪种类型。可能的类型包括:host,net和port。如’host foo’, `net 128.3', `port 20'. 如果没有指定类型,假设为host。

方向
限定词指出特定的传输方向,是从id传来还是传到id。可能方向是src, dst, src or dst 和 src and dst。例如`src foo', `dst net 128.3', `src or dst port ftp-data'。如果没有方向限定词将指定src or dst。对于‘空’链路层(像SLIP这样的点到点协议),可以用inbound和outbound 限定词指明需要的方向。

协议
限定词限定匹配某类特定的协议。可能的协议有:ether, fddi, tr, ip, ip6, arp, rarp, decnet, tcp和udp。如`ether src foo', `arp net 128.3', `tcp port 21'。如没指定协议,则假设匹配所有协议。如`src foo' 指 `(ip or arp or rarp) src foo' (但后面的表达式不合法法)(except the latter is not legal syntax), `net bar' 指 `(ip or arp or rarp) net bar' 和 `port 53' 指 `(tcp or udp) port 53'。
`fddi' 实际上是’ether’的别名;解析器会认为两者都是指“指定接口中使用的数据链路层”FDDI头标包括类似以太网的源和目的地址,经常包含类似以太网的包类型,所以你可像对以太网字段一样过滤FDDI域。FDDI头标也包括其他域,但你不能在表达式中直接使用他们。
同样’tr’也是’ether’的别名;前一段FDDI头标的情况也适用于令牌环网头标。
除了以上所讲的,还有一些特殊的原语关键字不使用这种方式:gateway, broadcast, less, greater 和算术表达式,都描述如下:
通过使用and, or和 not 结合原语,构成更复杂的过滤表达式。如`host foo and not port ftp and not port ftp-data'。为了减少输入,可以忽略相同的限定词列表。如`tcp dst port ftp or ftp-data or domain' 实际等同于 `tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain'.