好员工的品质:WinDump--Windows 的tcpdump工具

来源:百度文库 编辑:中财网 时间:2024/04/30 18:11:56
    大家都知道,unix系统下有个tcpdump的抓包工具,非常好用,是做troubleshooting的好帮手。其实在windows下也有一个类似的工作,叫windump,可以方便的根据需要进行抓包。下面我举几个常用例子介绍一下这个工具的使用方法。

  安装和基本用途

  WinDump分两部分。第一部分是WinPcap一系列网络记录驱动,是WinDump用来获得计算机中信息包到网络界面的信息。第二部分是程序本身,windump,在安装WinPcap library后从命令列中调用。

  当你运行windump时你第一个想要使用的选项是-D,它会列出目前系统中所有可使用的网络界面。默认情况下程序听从第一可用界面,但是在Windows中,它是典型的软件拨号配置器,不是实体网络配置器。-D的结果通常如下:

  1.\Device\NPF_GenericDialupAdapter (Generic dialup adapter)

  2.\Device\NPF_ (Intel DC21140 PCI Fast Ethernet Adapter (Microsoft's Packet Scheduler) )

  要使用专门的配置器,用-i命令和配置器号运行程序。例如,如果你想使用上述Ethernet配置器,用windump -i 2。这要比通过GUID向配置器提交简单得多,但是要注意如果新硬件或软件配置器增加,那么配置器号不是保持固定不变的。

  Windump具有通过详细标准过滤已记录数据的能力――详细的网络协议,主机或端口――通常在命令列中有详细说明。其中的语法相当复杂。在程序文件中有详细解释,这有一些例子:

  windump -i 2 port 80

  通过端口80从界面#2记录所有流量

  windump -i 2 host im-chat.com

  记录所有从the host im-chat.com.或来或到界面#2的流量

  windump -i 1 net 127

  这些参数也可以自由组合。

  输出记录

  默认情况下,程序的输出记录存在控制台。除非,你使用程序仅仅是为了观察网络流量,你都想用-w 命令将结果记录到文件。默认情况下,程序用这个名字记录已存在的文件,所以注意不要用这种方式擦掉已记录的数据!

  如果你打算在程序运行时查看输出文件,用-U选项。它使得程序将每一已接收信息包写到输出文件中。默认情况下,程序为数据保留1MB的缓存空间。

  默认情况下,windump只记录每个信息包的标题,不是full payload。-s 0选项使程序为每个信息包堆积整个rawpayload。如果你和-A选项一起用,你可以以ASCII格式记录结果。例如,用这种方式记录网页,服务器会提供可读形式,不会以gzip/deflate形式发送记录。

  另一个有用的选项, -C ,将数据记录到multiplefiles,每一个文件的长度都不多过。每一个连续文件是递增编码的。是以MB校对;如果你用-C 5,每一个文件的长度都将是5,000,000字节。

  当你停止程序(通过点击Ctrl-Break)时,程序向控制台提交一份报告列出所记录、阻止、丢弃(由于缺少缓存空间)的信息包数。如果程序开始丢弃信息包,你可以向记录缓冲器增加分配空间,通过-B命令,其中是分配的千字节数。默认缓存大小是1MB。

  高端性能

  WinDump一个更强有力的用途就是它能通过IPsec将已加密的网络数据流解密。这不是简单的操作,她要求你有IPsec加密的ESP密匙,同时将tcpdump应用软件与密码使用法选项结合才能解密(一些本文以外的内容)。

  如果你想将有滤镜参数的外部文件列入清单,你可以用-F 选项。注意这会使程序忽略命令列中提供的任何滤镜参数。

  最后,如果你想使程序阅读、过滤之前已标记的数据而不是网络适配器上的现时数据,使用-r 选项。



Windump 应用实例

列出系统所有网络接口

C:\>windump -D

1.\Device\NPF_GenericDialupAdapter (Adapter for generic dialup and VPN capture)

2.\Device\NPF_{8D5BB2FE-D169-4D82-B250-7683EAA3982F} (Realtek RTL8139 Family Fast Ethernet Adapter (Microsoft's Packet Scheduler) )

3.\Device\NPF_{5801CA50-D431-4494-A3D6-27B22F7523E7} (VMware Virtual Ethernet Adapter)

监听端口

C:\>windump -i 2 -w cap icmp and ether dst host 00:14:78:ba:17:e8

windump: listening on \Device\NPF_{8D5BB2FE-D169-4D82-B250-7683EAA3982F}

8 packets captured

99 packets received by filter

0 packets dropped by kernel

注:-w  cap  表是当监听到数据保存为文件cap

//要抓数据为访问网关的ICMP包

C:\>arp -a

Interface: 192.168.1.100 --- 0x3

  Internet Address      Physical Address      Type

  192.168.1.1           00-14-78-ba-17-e8     dynamic

//测试

C:\>ping 192.168.1.1

Pinging 192.168.1.1 with 32 bytes of data:

Reply from 192.168.1.1: bytes=32 time<1ms TTL=64

Reply from 192.168.1.1: bytes=32 time<1ms TTL=64

Reply from 192.168.1.1: bytes=32 time<1ms TTL=64

Reply from 192.168.1.1: bytes=32 time<1ms TTL=64

显示抓取数据文件(两种格式显示)

C:\>windump -r cap

reading from file cap, link-type EN10MB (Ethernet)

01:21:42.218562 IP szguoyihong2.domain > 192.168.1.1: ICMP echo request, id 768, seq 16128, length 40

01:21:43.218977 IP szguoyihong2.domain > 192.168.1.1: ICMP echo request, id 768, seq 16384, length 40

01:21:44.219917 IP szguoyihong2.domain > 192.168.1.1: ICMP echo request, id 768, seq 16640, length 40

01:21:45.220886 IP szguoyihong2.domain > 192.168.1.1: ICMP echo request, id 768, seq 16896, length 40

01:21:46.815623 IP szguoyihong2.domain > 192.168.1.1: ICMP echo request, id 768, seq 17152, length 40

01:21:47.818539 IP szguoyihong2.domain > 192.168.1.1: ICMP echo request, id 768, seq 17408, length 40

01:21:48.824357 IP szguoyihong2.domain > 192.168.1.1: ICMP echo request, id 768, seq 17664, length 40

01:21:49.826508 IP szguoyihong2.domain > 192.168.1.1: ICMP echo request, id 768, seq 17920, length 40

第二次 十六进制

C:\>windump -r cap -x

reading from file cap, link-type EN10MB (Ethernet)

01:21:42.218562 IP szguoyihong2.domain > 192.168.1.1: ICMP echo request, id 768, seq 16128, length 40

        0x0000:  4500 003c 962a 0000 8001 20e1 c0a8 0164

        0x0010:  c0a8 0101 0800 0b5c 0300 3f00 6162 6364

        0x0020:  6566 6768 696a 6b6c 6d6e 6f70 7172 7374

        0x0030:  7576 7761 6263 6465 6667 6869

01:21:43.218977 IP szguoyihong2.domain > 192.168.1.1: ICMP echo request, id 768, seq 16384, length 40

        0x0000:  4500 003c 962e 0000 8001 20dd c0a8 0164

        0x0010:  c0a8 0101 0800 0a5c 0300 4000 6162 6364

        0x0020:  6566 6768 696a 6b6c 6d6e 6f70 7172 7374

        0x0030:  7576 7761 6263 6465 6667 6869

01:21:44.219917 IP szguoyihong2.domain > 192.168.1.1: ICMP echo request, id 768, seq 16640, length 40

        0x0000:  4500 003c 9631 0000 8001 20da c0a8 0164

        0x0010:  c0a8 0101 0800 095c 0300 4100 6162 6364

        0x0020:  6566 6768 696a 6b6c 6d6e 6f70 7172 7374

        0x0030:  7576 7761 6263 6465 6667 6869

01:21:45.220886 IP szguoyihong2.domain > 192.168.1.1: ICMP echo request, id 768, seq 16896, length 40

        0x0000:  4500 003c 9634 0000 8001 20d7 c0a8 0164

        0x0010:  c0a8 0101 0800 085c 0300 4200 6162 6364

        0x0020:  6566 6768 696a 6b6c 6d6e 6f70 7172 7374

        0x0030:  7576 7761 6263 6465 6667 6869

01:21:46.815623 IP szguoyihong2.domain > 192.168.1.1: ICMP echo request, id 768, seq 17152, length 40

        0x0000:  4500 003c 9637 0000 8001 20d4 c0a8 0164

        0x0010:  c0a8 0101 0800 075c 0300 4300 6162 6364

        0x0020:  6566 6768 696a 6b6c 6d6e 6f70 7172 7374

        0x0030:  7576 7761 6263 6465 6667 6869

01:21:47.818539 IP szguoyihong2.domain > 192.168.1.1: ICMP echo request, id 768, seq 17408, length 40

        0x0000:  4500 003c 963b 0000 8001 20d0 c0a8 0164

        0x0010:  c0a8 0101 0800 065c 0300 4400 6162 6364

        0x0020:  6566 6768 696a 6b6c 6d6e 6f70 7172 7374

        0x0030:  7576 7761 6263 6465 6667 6869

01:21:48.824357 IP szguoyihong2.domain > 192.168.1.1: ICMP echo request, id 768, seq 17664, length 40

        0x0000:  4500 003c 9641 0000 8001 20ca c0a8 0164

        0x0010:  c0a8 0101 0800 055c 0300 4500 6162 6364

        0x0020:  6566 6768 696a 6b6c 6d6e 6f70 7172 7374

        0x0030:  7576 7761 6263 6465 6667 6869

01:21:49.826508 IP szguoyihong2.domain > 192.168.1.1: ICMP echo request, id 768, seq 17920, length 40

        0x0000:  4500 003c 9646 0000 8001 20c5 c0a8 0164

        0x0010:  c0a8 0101 0800 045c 0300 4600 6162 6364

        0x0020:  6566 6768 696a 6b6c 6d6e 6f70 7172 7374

        0x0030:  7576 7761 6263 6465 6667 6869




    windump常用命令

1、windump –D 列出本机可供抓包的全部接口。

这个命令在本机有多个网卡时非常有用。比如,我的机器装有3块网卡,而我只抓第二块网卡上的包,那么我用windump –D列出机器上所有的网卡,再指定只抓第二块网卡的包,方法如下:

windump –D

windump –i 2(网卡序号)

2、windump –n 不解析主机名,直接显示抓包的主机IP地址。

3、windump –n host 192.168.1.2 只抓关于192.168.1.2主机的包(不管包的方向)。

4、windump –n host 192.168.1.2 and udp port 514 只抓关于主机192.168.1.2上udp协议端口为514的包。

同理,我也可以抓所有tcp协议23端口的包,命令如下:

windump –n host 192.168.1.2 and tcp port 23

或者,我只抓udp 514端口的包,不管ip是多少,命令如下:

windump –n udp port 514

5、windump –n net 133.160 抓133.160网段的包,不管包的方向。

同理,我也可以抓所有133.160网段的且tcp端口为3389的包,命令如下:

windump –n net 133.160 and tcp port 3389

6、windump –n host ! 133.191.1.1 抓所有非133.191.1.1有关的包。

同理,我要抓除了133.191.1.1之外的所有机器的tcp端口为3389的包,命令如下:

windump –n host ! 133.191.1.1 and tcp port 3389

7、windump –n dst host 133.191.1.1 抓所有发送到133.191.1.1的包。

同理,可以用and 或or参数,如:

windump –n dst host 133.191.1.1 ort src host 101.1.1.1