Windump 的用法/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 是什么?的更多相关文章
- Windump教程-参数介绍
1 应用 Windump是tcpdump的Windows版本,主要的参数如下: -D 列出所有的接口 -i interface 指定用于抓包的接口 -c packetcount 指定抓包的个数 -w ...
- Windows 使用windump进行循环抓包
准备工作 1.下载tcpdump http://www.winpcap.org/windump/ 2.下载WinPcaphttp://www.winpcap.org/install/bin/WinP ...
- WinDump使用方法
转自:http://blog.csdn.net/weiyuweizhi/article/details/4326174 在命令行下启动windump.exe 参数列表: -a ...
- winDump
windump -i 00-00-10-00-43-A2 监听网卡(一个适配器一个网卡,一个mac)
- tcpdump和windump
Tcpdump简介 tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息, tcpdump,就是:dump the traffic on a network,根据使用 ...
- EditText 基本用法
title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...
- jquery插件的用法之cookie 插件
一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...
- Java中的Socket的用法
Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...
- [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法
一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...
随机推荐
- 初步理解IOC和DI和AOP模式
初步理解IOC和DI和AOP模式 控制反转(IOC) 控制反转(IOC,Inversion of Control)是一种转主动为被动关系的一种编程模式,有点类似于工厂模式,举个栗子, 下面这个这不是I ...
- SQL Union 和Union All 的区别
Union与Union All的区别 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或称为联合)的作用是将多个结果合并 ...
- js实现window.open不被拦截的解决方法汇总
一.问题: 今天在处理页面ajax请求过程中,想实现请求后打开新页面,就想到通过 js window.open 来实现,但是最终都被浏览器拦截了. 二.分析: 在谷歌搜索有没有解决方法,有些说可以通过 ...
- python--生成器,生成器推导式, yield from
一.生成器 生成器的本质就是迭代器,它一个一个的创建对象. 在python中有三种方式获取生成器: 1.通过生成器函数 2.通过各种推导式来实现生成器 3.通过数据的类型转换也可以获取生成器 二.生成 ...
- setInterval(),setTimeout(),location.reload(true)
1,setInterval() setInterval()方法可以按照指定的周期来调用函数或表达式,他会不停地调用函数,直到调用clearInterval()方法或窗口关闭.由setInterval( ...
- Maven镜像更换为阿里云中央仓库(精)
前言 maven仓库默认在国外,使用难免很慢,尤其是下载依赖的时候,换为国内镜像,让你感受飞一般的感觉.国内支持maven镜像的有阿里云,开源中国等,这里换为阿里云的. 更换 修改maven配置文件s ...
- linuxea:ELK5.5-elasticsearch-x-pack破解
本站采用知识共享署名-非商业性使用-相同方式共享国际许可协议4.0 进行许可 本文作者:www.linuxea.com for Mark 文章链接:https://www.linuxea.com/17 ...
- $.ajax()——超时设置,增加 loading 提升体验
前端发送Ajax请求到服务器,服务器返回数据这一过程,因原因不同耗时长短也有差别,且这段时间内页面显示空白.如何优化这段时间内的交互体验,以及长时间内服务器仍未返回数据这一问题,是我们开发中不容忽视的 ...
- 确定 RN 中方法的 queue
 如果不指定,每一个模块,都会生成自己的一个串行队列. 可以通过强行声明一个队列来指定所有方法都在这个队列执行 - (dispatch_queue_t)methodQueue { return di ...
- 部署WSUS服务(一)
引言:随着网络的发展,我们的生活也越来越离不开网络,但面临的安全威胁也越来越多.像去年爆发的针对Windows系统的勒索病毒(Wanna Cry)和年初爆发的Intel芯片漏洞告诉我们网络威胁时时刻刻 ...