WinDump中文使手册.docx
- 文档编号:16214224
- 上传时间:2023-07-11
- 格式:DOCX
- 页数:22
- 大小:32.02KB
WinDump中文使手册.docx
《WinDump中文使手册.docx》由会员分享,可在线阅读,更多相关《WinDump中文使手册.docx(22页珍藏版)》请在冰点文库上搜索。
WinDump中文使手册
WinDump使用提示
基本用法:
windump[-aBdDeflnNOpqRStvxX][-ccount][-Ffile][-iinterface][-mmodule][-rfile][-ssnaplen][-Ttype][-wfile][-Ealgo:
secret][expression]
主要参数有选项和表达式两类。
下面说明几个必要的选项和表达式:
-i指定要监听的网络接口,可以使用windump-D列出当前系统中所有的网络设备接口,不指定的话是设备列表中找得的第一个。
例如:
./WinDump.exe-D
1."Device"NPF_GenericNdisWanAdapter(GenericNdisWanadapter)
2."Device"NPF_{6AA36CF4-E4FD-49BF-93E5-DC29AB8A3AA5}(SiSNICSISNIC(Microsoft'sPacketScheduler))
则
./WinDump.exe
./WinDump.exe-i1
./WinDump.exe-i""Device""NPF_GenericNdisWanAdapter
都是监听第一个网络接口设备GenericNdisWanadapter。
./WinDump.exe-i2
./WinDump.exe-i""Device""NPF_{6AA36CF4-E4FD-49BF-93E5-DC29AB8A3AA5}
都是监听第二个网络接口设备SiSNICSISNIC(Microsoft'sPacketScheduler)。
如果不指定表达式,所有通过指定接口的packet都输出,否则只把表达式expression为真的输出。
最基本的表达式是这样的:
[proto][dir][type][id]
proto协议,可以是ether,fddi,tr,ip,ip6,arp,rarp,decnet,tcp,udp中任一个或它们的表达式组合,如果不指定,所有和后面的type一致的都考虑在内。
dirpacket传输的方向,可以是src,dst中的任一个或它们的表达式组合。
不指定的话,相当于srcordst。
type指定后面的id是网络地址、主机地址还是端口号,可以是host,net,port中任一个,如果不指定,默认为host。
id就是希望监听的网络或主机或端口地址。
一个覆盖所有元素的表达式如下:
ethersrchost00:
11:
D8:
6A:
33:
22
./WinDump.exe-i2ethersrchost00:
11:
D8:
6A:
33:
22
监听所有从本地网卡向外发的packet,其中00:
11:
D8:
6A:
33:
22是本地网卡的mac地址。
./WinDump.exe-i2udpdstport135
监听所有发给本地135udp端口的packet。
更复杂的表达式是以上基本的表达式的逻辑组合,可用于组合的关键字有and,or,not,同时构成基本表达式的四类运算都是可选,不是必须的,比如:
“hostfooandnotportftpandnotportftp-data”,其中foo代表主机名,其他都是关键字。
此外,有gateway,broadcast,multicast,mask,protochain,proto,less,greate55.255.0”。
protochain跟在ip、ip6后面说明更上层的协议字,比如“ipprotochain6”。
proto跟在ether或者ip、ip6后面表示更上层的协议,跟在“etherproto”之后的可以是ip,ip6,arp,rarp,atalk,aarp,decnet,sca,lat,mopdl,moprc,iso,跟在“ipproto”或“ip6proto”之后的可以是icmp,icmp6,igmp,igrp,pim,ah,esp,udp,tcp,注意对于有些本身就是关键字的要加“"”转义,比如“etherproto"ip”。
其他表达式是这样的格式:
exprrelopexpr
其中,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包的FragmentOffset,所以匹配所有不分段的ip包或所有分段ip包中的第一段。
其它操作法有!
(相当于not)、&&(相当于and)、||(相当于or)。
使用举例:
./WinDump.exe-i2notarpandetherhostnot02:
01:
00:
00:
00:
00
抓取所有非arp协议、且源或目的主机的ether地址都不是02:
01:
00:
00:
00:
00的packet。
windump.exe-i2-wcapetherhost00:
11:
D8:
6A:
33:
22
抓取所有源或目的主机的ether地址是00:
11:
D8:
6A:
33:
22(本地网卡的mac地址)的packet,但不知道屏幕上输出,而是把所有抓获的rawpacket写入文件cap中。
windump.exe-rcap
读取刚才的输出文件cap,对抓获的所有packet进行解析输出。
经粗略分析,windump输出的rawpacket文件格式如下:
文件头24个字节:
“D4C3B2A10200040000000000000000006000000001000000”,具体含义不明确。
接下来是所有rawpacket连续存放的数据,对于每个rawpacket依次有:
8个字节的timestamp(时间戳)
etherframeheader(7bytesPreamble,1byteSOF,6bytesDA,6bytesSA,2byteslength/type)
etherframepayload(更上层协议PDU)
windump.exe-rcap只是在屏幕上依次输出每个packet对应的时间戳、etherframepayload中PDU协议类型,再是与该协议相关的简单信息。
windump.exe-rcap-x除了输出基本的信息之外,还把etherframepayload以十六进制输出。
WinDump手册
命令格式
windump[-aBdDeflnNOpqRStvxX][-ccount][-Ffile][-iinterface][-mmodule][-rfile][-ssnaplen][-Ttype][-wfile][-Ealgo:
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和DigitalUNIX:
命令参数
-a将网络和广播地址转化为名称
-c接收指定数据包后退出
-d接收人可读的包匹配编译代码到标准输出,然后停止
-dd以C程序分段方式捕获包匹配代码
-ddd以十进制数据形式捕获包匹配代码
-e在每个捕获行打印链路层头标
-Ealgo:
secret为解密IPSEESP包使用算法。
算法可以是des-cbc,3des-cbc,blowfish-cbc,rc3-cbc,cast128-cbc,或none。
默认值是desc-cbc。
只有当TCPDUMP编译时使用激活加密选项时,才可以解密数据包。
Secret是ESP密匙是ASCII码。
当前还不能认为一定是二进制值。
该选项是以RFC2406ESP为假设,而不是RFC1827ESP。
只用于调试,不鼓励用真正的密码作为选项。
当你在PS或其他场合,把IPSEC密码写在命令行上时,会被他人看到。
-f不用符号而用数字方式输出外部英特网地址-F使用文件作为过滤表达式的输入。
命令行的其他部分会被忽略。
-i在接口上监听。
如果没有指定,TCPDUMP将搜索系统接口列表中最小,被配置激活的接口(LOOPBACK接口除外)。
可用最先匹配替换这种关系。
在WINDOWS中接口可以是网卡的名称,或是网卡的号码(-D参数可显示该号码)。
内核为2。
2或其后的LINUX系统,参数“ANY”可以获取所有接口的数据。
应注意的是在混乱模式下不能使用“ANY”参数。
-l标准输出行缓存。
如果你想在捕获数据时查看的话,这个参数很有用。
例如:
“tcpdump-l│teedat”or“tcpdump-l>dat&tail-fdat”.”n不要将地址(如主机地址,端口号)转换为名称-N不要打印主机名称的域名限定。
如:
如果你使用该参数,TCPDUMP会输出“NIC”而不是“NIC。
DDN。
MIL”。
-m从文件模块中载入SMIMIB模块定义。
这个选项可以为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很详细的输出。
如,完全输出TELNETSB…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。
如’hostfoo’,`net128.3′,`port20′.如果没有指定类型,假设为host。
方向限定词指出特定的传输方向,是从id传来还是传到id。
可能方向是src,dst,srcordst和srcanddst。
例如`srcfoo’,`dstnet128.3′,`srcordstportftp-data’。
如果没有方向限定词将指定srcordst。
对于‘空’链路层(像SLIP这样的点到点协议),可以用inbound和outbound限定词指明需要的方向。
协议限定词限定匹配某类特定的协议。
可能的协议有:
ether,fddi,tr,ip,ip6,arp,rarp,decnet,tcp和udp。
如`ethersrcfoo’,`arpnet128.3′,`tcpport21′。
如没指定协议,则假设匹配所有协议。
如`srcfoo’指`(iporarporrarp)srcfoo’(但后面的表达式不合法法)(exceptthelatterisnotlegalsyntax),`netbar’指`(iporarporrarp)netbar’和`port53′指`(tcporudp)port53′。
`fddi’实际上是’ether’的别名;解析器会认为两者都是指“指定接口中使用的数据链路层”FDDI头标包括类似以太网的源和目的地址,经常包含类似以太网的包类型,所以你可像对以太网字段一样过滤FDDI域。
FDDI头标也包括其他域,但你不能在表达式中直接使用他们。
同样’tr’也是’ether’的别名;前一段FDDI头标的情况也适用于令牌环网头标。
除了以上所讲的,还有一些特殊的原语关键字不使用这种方式:
gateway,broadcast,less,greater和算术表达式,都描述如下:
通过使用and,or和not结合原语,构成更复杂的过滤表达式。
如`hostfooandnotportftpandnotportftp-data’。
为了减少输入,可以忽略相同的限定词列表。
如`tcpdstportftporftp-dataordomain’实际等同于`tcpdstportftportcpdstportftp-dataortcpdstportdomain’.
-------------
WinPcap过滤表达式语法
注:
该文档从tcpdump的主页上获得,在www.tcpdump.org能够找到它的原始版本。
Wpcap过滤器基于已公开的断言语法。
一个过滤器是一串包括过滤表达式的ASCII字符串。
Pcap_compile()接受表达式并利用一个程序将之转化为核心层的包过滤器。
表达式选择将要接受的数据包。
若未给出表达式,网络上的所有数据包将被核心层的过滤驱动所接受。
否则,只有满足表达式为”ture”的数据包会被接受。
表达式可以包括一个或多个原子式。
原子式通常由一个带前置限定词的id(名称或数字)所组成。
有三种不同的前置限定词:
Type限定词指定名称或数字所指向的类别。
可能的类别有host、net和port。
例如:
’hostfoo’、’net128.3’、’port20’。
若未指定类别限定词,默认为host。
Dir限定词指定一个到和/或从id的特定的传输方向。
可能的方向有src、dst、srcordst和srcanddst。
例如:
’srcfoo’、’dstnet128.3’、’srcordstportftp-data’。
若没有该限定词,默认为srcordst。
对于’null’链路层(例如像slip这种点对点的协议)inbound和outbound这两上限定词能够指定想要的方向。
Proto限定词限定一个特殊的协议。
可能的协议有:
ether、fddi、tr、ip、ip6、arp、rarp、decnet、tcp和udp。
例如:
’ethersrcfoo’、’arpnet128.3’、’tcpport21’。
若没有协议限定词,则默认为所有与类别相一致的协议。
例如:
’srcfoo’的意思是’(iporarporrarp)srcfoo’(除非后面的语法不合法),’netbar’的意思是’(iporarporrarp)netbar’,’port53’的意思’(tcporudp)port53’。
[‘fddi’实际上是’ether’的一个别名;解析器将它们的意思处理为“在指定网络接口下使用数据链路层。
”FDDI首部包括类以太网的源和目的地址,并且通常包括类以太网的包类型,因此你能够像对以太网一样在这些部分对FDDI进行过滤。
FDDI首部还包括其他部分,但你无法在过滤表达式中精确命名它们。
类似的,’tr’是’ether’的一个别名;之前对FDDI首部的解释也适用于令牌环网的首部。
]
做为对以上的补充,还有一些特殊的‘原子式’的关键字并不遵循这种模式:
gateway、broadcast、less、greater和算术表达式。
所有这些将在后面讲到。
更复杂的过滤表达式由and、or和not将原子式组合而成。
例如:
’hostfooandnotportftpandnotportftp-data’。
简略起见,样同的限定试列表可以省略。
例如:
’tcpdstportftporftp-dataordomain’与’tcpdstportftportcpdstportftp-dataortcpdstportdomain'完全一样。
合法的原子式有:
dsthosthost
如果IPv4/v6数据包的目的地址是host则表达式值为true,host可以是IP地址或主机名。
srchosthost
如果IPv4/v6数据包的源地址是host则表达式值为true。
hosthost
如果IPv4/v6数据包的源或目的地址是host则表达式值为true。
以上的任一主机表达式都能够用关键字如ip、arp、rarp或ip6预先指定,就像以下所示:
Iphosthost
等价于:
Etherproto"ipandhosthost
如果host是多个IP地址,每个地址都会被做匹配检查。
etherdstehost
若以太网目的地址是ehost则值为true。
ehost可以是/etc/ethers中的一个名称或一个数字(请见ethers(3N)的数字格式)。
ethersrcehost
若以太网源地址是ehost则值为true。
etherhostehost
若以太网源或目的地址是ehost则值为true。
gatewayhost
若数据包以host为网关则值为true。
例如:
以太网的源或目的地址是host但无论是IP地址的源还是目的地址都不是host。
Host必须是一个名称并且能够在机器的host-name-to-IP-address机制(如主机名文件、DNS、NIS)和host-name-to-Ethernet-address机制(如/ect/ethers)中找到。
(一个等价的表达式是:
etherhostehostandnothosthost
它能够使用名称或数字表示host/ehost。
)目前来说,这种语法无法在能够运行IPv6的结构下工作。
dstnetnet
若IPv4/v6的目的地址的网络号是net,则值为true。
Net可以是/etc/networks中的一个名称或是一个网络号(详细内容请见networks(4))。
srcnetnet
若IPv4/v6的源地址的网络号是net,则值为true。
netnet
若IPv4/v6的源地址或目的地址的网络号是net,则值为true。
netnetmasknetmask
若IP地址根据指定的子网掩码netmask能与net匹配。
可以用限定词src或dst限定。
注意:
这个语法在IPv6中是不合法的。
netnet/len
若IPv4/v6地址根据指定的子网掩码长度能与net匹配。
可以用限定词src或dst限定。
dstportport
若数据包是ip/tcp、ip/udp、ip6/tcp或ip6/udp并且目的端口为port,则值为true。
端口可以是一个数字或一个在/etc/services(详见tcp(4P)和udp(4P))中的名称。
若使用名称,则端口和协议都将被指定。
若使用数字或不明确的名称,则只有端口地址被指定(例如:
dstport513将显示tcp/login和udp/who的数据流,portdomain将显示tcp/domain和udp/domain的数据流)。
srcportport
若数据包的源端口的值是port,则值为true。
portport
若数据包的源或目的端口地址的值是port,则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- WinDump 中文 手册