Windows

命令行下的抓包工具WinDump

  Tcpdump是一款众人皆知和受人喜欢的基于命令行的网络数据包分析和嗅探工具。它能把匹配规则的数据包的包头给显示出来。你能使用这个工具去查找网络问题或者去监视网络上的状况。Windump 是 Tcpdump 在 Windows 平台上的移植版。

  1、魅力所在

  Windump是Windows环境下一款经典的网络协议分析软件,其Unix版本名称为Tcpdump.它可以捕捉网络上两台电脑之间所有的数据包,供网络管理员/人侵分析员做进一步流童分析和人侵检测。在这种监视状态下,任何两台电脑之间都没有秘密可言,所有的流童、所有的数搪都逃不过你的眼睛(当然加密的数搪不在讨论范畴之内,而且,对数据包分析的结果依赖于你的TCP/IP知识和经验,不同水平的人得出的结果可能会大相径庭)。如果你做过DEBUG或者反汇编,你会发现二者是那么惊人的相似。在W.Richarri Stevens的鼎鼎大作《TCP/IP详解》卷一中,通篇采用Tcpduinp捕捉的数据包来向读者讲解TCP/IP; 而当年美国最出色的电脑安全专家下村勉在追捕 世界头号黑客米特尼克时,也使用了Tcpdump, Tcp。

  0K,我们正式开始介绍windump。该软件 是免费软件,命令行下面使用,需要WinPcap 驱动,该驱动可以在相关网站下载。

  2、应用实战

  现在我们打开一个命令提示符,运行 windump 后会出现 “windump: listening on DeviceNPF_{3B4C19BE-6A7E-4A20-9518-F7CA659886F3}M 的信息,这表示 win-riumr>正在监听当前网卡,网卡的设备名称 是:DeviceNPF」3BA C19BE-6A7E-4 A20-9518-F7CA659886F3},如果你看见屏幕上显示 出这个信息,说明你的winpcap驱动已经正常安装。如图所示:

  命令行下的网络数据包嗅探器WinDump

  Windump的参数很多,运行windump -h 可以看到:

  命令行下的网络数据包嗅探器WinDump

  命令行下的网络数据包嗅探器WinDump

  下面结合TCP的三步握手来介绍Windump 的使用,清接着往下看:

  命令行下的网络数据包嗅探器WinDump

  先看第一行。其中09:32:30.977290表 示时间,192.168.0.226为源IP地址,端 口 3295,其实就是我自己的那台电脑;

  192.168.0.10是目的地址,端口 80,我们可 以判断这是连接在远程主机的WEB服务上 面,S 9121 44276:912144276(0)表示我的电脑 主动发起了一个SYN请求,这是第一步握手; 912144276是请求端的初始序列号,win 64240 表示发端通告的窗口大小;mss 1460表示由发 端指明的最大报文段长度。这一行所表示的含 义是IP地址为192.168.0.226的电脑向IP地 址为61.133.136.34的电脑发起一个TCP的连 接请求。

  接下来我们看第二行,时间不说了;源 IP地址为192.168.0.10,而目的IP地址变为

  192.168.0.226,后面是 S 2733950406:2733 950406(0) ack 912144277,这是第二步握手, 2733950406是服务器端所给的初始序列号,ack 912144277是确认序号,是对第一行中客户端发 起请求的初始序列号加I。该行表示服务器端接 受客户端发起的TCP连接清求,并发出自己的 初始序列号。

  再看第三行,这是三步握手的最后一步,客户端发送ack 1,表示三步握手已经正常结束, 下面就可以传送数据了。如图所示:

  命令行下的网络数据包嗅探器WinDump

  在这个例子里面,我们使用了-n的参数,表示源地址和目的地址不采用主机名的形式显示而用IP地址的形式。

  下面跟系统之家再来看看如果三步握手不成功会是怎么样。我先telnet到一台没有开telnet服务的 计算机上面:

  命令行下的网络数据包嗅探器WinDump

  反馈的信息是“正在连接到192.168.0. 10...不能打开到主机的连接,在端口 23,由于目标机器积极拒绝,无法连接”,这个时候我们再看windump所抓获的数据包:

  命令行下的网络数据包嗅探器WinDump

  命令行下的网络数据包嗅探器WinDump

  从第三行中,我们可以看见192.168.0.226 因为不知道192.168.0.10的MAC地址,所以 首先发送ARP广播包。

  在第四行中,192.168.0.10回应192.168. 0.226 的请求,告诉 192.168.0.226 它的 MAC 地址是 0:60:8:92:e2:ci。

  第五行中,192.168.0.226 向 192.168.0.10

  发起SYN清求,但在第六行中,我们可以看见,因为目标主机拒绝了这一清求,故发送R 0:0(0) 的响应,表示不接受;192.168.0.226的请求。在 接下来的几行中我们看见192.168.0.226连续向 192.168.0.10发送SYN请求,但都被目标主机拒绝。

  Winciumr>的参数很多,功能也非常强大, 以上所介绍的仅仅是它冰山的一角,希望能起到 砖引玉的作用。也希望有更多的网络管理员能 关注协议分析,只有这样,我们才能在日常的网 络管理和应急时期的人侵分析中立于不败之地, 为我们的网络安全做出贡献。