Windump

 
Windump是Windows环境下一款经典的网络协议分析软件,其Unix版本名称为Tcpdump。它可以捕捉网络上两台电脑之间所有的数据包,供网络管理员/入侵分析员做进一步流量分析和入侵检测。在这种监视状态下,任何两台电脑之间都没有秘密可言,所有的流量、所有的数据都逃不过你的眼睛(当然加密的数据不在讨论范畴之内,而且,对数据包分析的结果依赖于你的TCP/IP知识和经验,不同水平的人得出的结果可能会大相径庭)。如果你做过DEBUG或者反汇编,你会发现二者是那么惊人的相似。在W.Richard Stevens的鼎鼎大作《TCP/IP详解》卷一中,通篇采用Tcpdump捕捉的数据包来向读者讲解TCP/IP;而当年美国最出色的电脑安全专家下村勉在追捕世界头号黑客米特尼克时,也使用了Tcpdump,Tcpdump/Windump的价值由此可见一斑。 
Windump的用法
我们正式开始介绍Windump。该软件是免费软件,命令行下面使用,需要WinPcap驱动,该驱动可以在[url]http://winpcap.polito.it/install/default.htm[/url]下载。因为Windump的下载非常方便,很多站点都有,在这里我就不提供了,请大家去网上搜索一下。   
    现在我们打开一个命令提示符,运行windump后出现:   
    D:\tools>windump   
    windump:     listening     on     \Device\NPF_   
    这表示windump正在监听我的网卡,网卡的设备名称是:   
    \Device\NPF_   
    如果你看见屏幕上显示出这个信息,说明你的winpcap驱动已经正常安装,否则请下载并安装正确的驱动。Windump的参数很多,运行windump     -h可以看到:   
    Usage:     windump     [-aAdDeflnNOpqRStuvxX]     [-B     size]     [-c     count]     [     -C     file_size     ]     [     -F     file     ]     [     -i     interface     ]     [     -r     file     ]     [     -s     snaplen     ]     [     -T     type     ]     [     -w     file     ]     [     -E     algo:secret     ]     [     expression     ]   
    下面我来结合TCP的三步握手来介绍Windump的使用,请接着往下看:   
    D:\tools>windump     -n   
    windump:     listening     on     \Device\NPF_   
    09:32:30.977290     IP     192.168.0.226.3295     >     192.168.0.10.80:     S     912144276:912144276(0)     win     64240     <mss     1460,nop,nop,sackOK>     (DF)//第一行   
    09:32:30.978165     IP     192.168.0.10.80     >     192.168.0.226.3295:     S     2733950406:2733950406(0)     ack     912144277     win     8760     <nop,nop,sackOK,mss     1460>     (DF)//第二行   
    09:32:30.978191     IP     192.168.0.226.3295     >     192.168.0.10.80:     .     ack     1     win     64240     (DF)//第三行   
    先看第一行。其中09:32:30.977290表示时间;192.168.0.226为源IP地址,端口3295,其实就是我自己的那台电脑;192.168.0.10是目的地址,端口80,我们可以判断这是连接在远程主机的WEB服务上面;S     912144276: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:2733950406(0)     ack     912144277,这是第二步握手,2733950406是服务器端所给的初始序列号,ack     912144277是确认序号,是对第一行中客户端发起请求的初始序列号加1。该行表示服务器端接受客户端发起的TCP连接请求,并发出自己的初始序列号。   
    再看第三行,这是三步握手的最后一步,客户端发送ack     1,表示三步握手已经正常结束,下面就可以传送数据了。   
    在这个例子里面,我们使用了-n的参数,表示源地址和目的地址不采用主机名的形式显示而采用IP地址的形式。下面我们再来看看如果三步握手不成功会是怎么样。我先telnet到一台没有开telnet服务的计算机上面:   
    C:\Documents     and     Settings\Administrator>telnet     192.168.0.10   
    正在连接到192.168.0.10...不能打开到主机的连接,     在端口     23.   
    由于目标机器积极拒绝,无法连接。   
    这个时候我们再看windump所抓获的数据包:   
    D:\tools>windump     -n   
    windump:     listening     on     \Device\NPF_   
    10:38:22.006930     arp     who-has     192.168.0.10     tell     192.168.0.226//第三行   
    10:38:22.007150     arp     reply     192.168.0.10     is-at     0:60:8:92:e2:d//第四行   
    10:38:22.007158     IP     192.168.0.226.3324     >     192.168.0.10.23:     S     1898244210:1898244210   
    (0)     win     64240     <mss     1460,nop,nop,sackOK>     (DF)   
    //第五行   
    10:38:22.007344     IP     192.168.0.10.23     >     192.168.0.226.3324:     R     0:0(0)     ack     1898244211     win     0   
    //第六行   
    10:38:22.478431     IP     192.168.0.226.3324     >     192.168.0.10.23:     S     1898244210:1898244210(0)     win     64240     <mss     1460,nop,nop,sackOK>     (DF)   
    10:38:22.478654     IP     192.168.0.10.23     >     192.168.0.226.3324:     R     0:0(0)     ack     1     win     0   
    10:38:22.979156     IP     192.168.0.226.3324     >     192.168.0.10.23:     S     1898244210:1898244210   
    (0)     win     64240     <mss     1460,nop,nop,sackOK>     (DF)   
    10:38:22.979380     IP     192.168.0.10.23     >     192.168.0.226.3324:     R     0:0(0)     ack     1     win     0   
    从第三行中,我们可以看见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:d。   
    第五行中,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请求,但都被目标主机拒绝。   
    好了,写了这么多不知道大家看累了没有,如果累了,说明你还需要了解更多的TCP/IP知识,只有深入了解TCP/IP才有可能成为一个合格的网络管理员。Windump的参数很多,功能也非常强大,以上我所介绍的仅仅是它冰山的一角,希望能起到抛砖引玉的作用,也希望有更多的网络管理员能关注协议分析,只有这样,我们才能在日常的网络管理和应急时期的入侵分析中立于不败之地,为我们的网络安全做出贡献。  

Windump 的用法/Windump 是什么?的更多相关文章

  1. Windump教程-参数介绍

    1 应用 Windump是tcpdump的Windows版本,主要的参数如下: -D 列出所有的接口 -i interface 指定用于抓包的接口 -c packetcount 指定抓包的个数 -w ...

  2. Windows 使用windump进行循环抓包

    准备工作 1.下载tcpdump http://www.winpcap.org/windump/  2.下载WinPcaphttp://www.winpcap.org/install/bin/WinP ...

  3. WinDump使用方法

    转自:http://blog.csdn.net/weiyuweizhi/article/details/4326174 在命令行下启动windump.exe 参数列表: -a              ...

  4. winDump

    windump -i 00-00-10-00-43-A2  监听网卡(一个适配器一个网卡,一个mac)

  5. tcpdump和windump

    Tcpdump简介 tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息, tcpdump,就是:dump the traffic on a network,根据使用 ...

  6. EditText 基本用法

    title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...

  7. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  8. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  9. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

随机推荐

  1. Kubernetes 自动伸缩 auto-scaling

    使用 Kubernetes 的客户能够迅速响应终端用户的请求,交付软件也比以往更快.但是,当你的服务增长速度比预期更快时,计算资源不够时,该怎么处理呢? 此时可以很自豪地说: Kubernetes 1 ...

  2. 如何在TortoiseGit中使用ssh-keygen生成的key

    再windows 用TortoiseGit 时,git clone 项目时 提示 "Couldn't load this key (OpenSSH SSH-2 private key),如下 ...

  3. Oracle数据泵导出导入(expdp/impdp)

    一.创建表空间 create tablespace atp logging datafile 'D:\oracle\oradata\orcl\atp.dbf' size 50m autoextend ...

  4. DS博客作业01-日期抽象数据类型的设计与实现

    1.思维导图和学习体会 1.1绪论知识思维导图 1.2学习体会 通过这几节课数据结构的新学习,让我感到了难度,很多概念性的东西,不是很好理解,老师在讲内容的时候,很容易跟不上节奏,我发现这门课的学习一 ...

  5. java—过虑器基础(47)

    在web项目中就只有三大组件: Filter过虑器 监听器. Servlet 在web中过虑器就是一个类javax.servlet.Filter. 过虑器是用于在执行时,过虑用户的请求(request ...

  6. IIS7的网站通过https访问提示ssl_error_rx_record_too_long

    IIS7的网站通过https访问,提示ssl_error_rx_record_too_long,如下图所示: 解决办法: 一.导入服务器的SSL证书至IIS 1.打开IIS,找到服务器证书 2.导入本 ...

  7. robot framework-接口测试实例一

    需求:api/car/detail/recommendcar.json   接口返回的车辆数量少于等于20且车辆不能重复 分析:统计接口中返回的列表的长度,再把carid拿出来组成一个新的列表,判断这 ...

  8. Redis Sentinel初体验

        自Redis增加Sentinel集群工具以来,本博主就从未尝试过使用该工具.最近在调研目前主流的Redis集群部署方案,所以详细地看了一遍官方对于Sentinel的介绍并在自己的台式机上完成了 ...

  9. javascript高逼格代码实现数组去重,JSON深度拷贝,匿名函数自执行,数字取整等

    1.如何装逼用代码骂别人傻逼 (!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]] 2.如何优雅的用代 ...

  10. jmeter ——JDBC Request中从数据库中读两个字段给接口取值

    前置条件数据库: 给接口传:tid和shopid这俩字段 直接从JDBC Request开始: Variable name:这里写入数据库连接池的名字(和JDBC Connection Configu ...