网络数据包的听与分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络数据包的监听与分析
用Ethereal获取到ftp用户名和密码的截图(和本人姓名不同的没有成绩)。【附录】
1.Ethereal使用入门
ethereal 可以用来从网络上抓包,并能对包进行分析。下面介绍windows 下面ethereal 的使用方法
安装(略)
如果只有一个网卡,启动ethereal 以后,选择菜单Capature->Start ,就OK 了。当你不想抓的时候,按一下stop,抓的包就会显示在面板中,并且已经分析好了。
下面是一个截图:
如果有多个网卡,需要先进行设置,启动ethereal 以后,选择菜单Capature->Options,如下图:
Interface: 指定在哪个接口(网卡)上抓包。一般情况下都是单网卡,所以使用缺省的就可以了Limit each packet: 限制每个包的大小,缺省情况不限制
Capture packets in promiscuous mode: 是否打开混杂模式。如果打开,抓取所有的数据包。一般情况下只需要监听本机收到或者发出的包,因此应该关闭这个选项。Filter:过滤器。只抓取满足过滤规则的包(可暂时略过)File:如果需要将抓到的包写到文件中,在这里输入文件名称。use ring buffer:是否使用循环缓冲。缺省情况下不使用,即一直抓包。注意,循环缓冲只有在写文件的时候才有效。如果使用了循环缓冲,还需要设置文件的数目,文件多大时回卷
其他的项选择缺省的就可以了
ethereal的抓包过滤器
抓包过滤器用来抓取感兴趣的包,用在抓包过程中。抓包过滤器使用的是libcap 过滤器语言,在tcpdump 的手册中有详细的解释,基本结构是:[not] primitive [and|or [not] primitive ...]
如果你想抓取某些特定的数据包时,有以下两种方法,你可以任选一种:
1、在抓包的时候,就先定义好抓包过滤器,这样结果就是只抓到你设定好的那些类型的数据包;
2、先把本机收到或者发出的包都抓下来,然后使用下节介绍的显示过滤器,只让Ethereal 显示那些你想要的那些类型的数据包;
etheral的显示过滤器(重点内容)
在抓包完成以后,显示过滤器可以用来找到你感兴趣的包,可以根据1)协议2)是否存在某个域3)域值4)域值之间的比较来查找你感兴趣的包。
举个例子,如果你只想查看使用tcp 协议的包,在ethereal 窗口的左下角的Filter 中输入tcp,然后回车,ethereal 就会只显示tcp 协议的包。如下图所示:
值比较表达式可以使用下面的操作符来构造显示过滤器自然语言类 c 表示举例eq == ip.addr== ne != ip.addr!= gt > frame.pkt_len>10 lt < frame.pkt_len<10 ge >= frame.pkt_len>=10 le <= frame.pkt_len<=10
表达式组合可以使用下面的逻辑操作符将表达式组合起来自然语言类 c 表示举例and && 逻辑与,比如ip.addr= or || 逻辑或,比如ip.addr= xor ^^ 异或,如tr.dst[0:3] == xor tr.src[0:3] == not ! 逻辑非,如!llc
例如:
我想抓取IP 地址是的主机,它所接收收或发送的所有的HTTP 报文,那么合适的显示Filter (过滤器)就是:
2. 用Ethereal 抓包、截取FTP密码实例
先开始抓包,点选Capture->Options
在Interface选项裡,选择你要抓包的网卡,我这张图裡有5张网卡,但我上网的是RTL8139,我就选择RTL8139
选好再按START
这是在抓包的过程,可以观察得到各协定所抓到的数据包数量(同时也可以看看协议比例对不对),你觉得抓得到你想要的包时,就可以按STOP了,因为这一次我要找出FTP的登录密码,所以要先登录ftp后再来按stop
然后打开我的ftp 客户端程序(可以任意选择你的客户端程序,dos方式,IE浏览器,FLASHFXP等均可),输入欲登录ftp服务器的ip,用户名,密码,端口等,点击connect 按钮登录。
ok!登录成功
认证成功,服务器返回登录成功讯息
这就是一般的登录ftp认证时所有过程,那到底ftp软件做了些什么事情呢!?我们一来看看抓到的数据包的内容吧
我们回到Ethereal的这个画面,按下stop来停止抓取的动作
按stop后的画面,这画面有分三大部份
1.最上面的是以数据包的接收顺序来排序的,就是左边的
2.中间是每一个数据包的内容。
3.最下面的画面是数据包真正的内容,也就是010......这样的内容,不过是以16进制表示
的。
因为我们现在所抓的包,是只要有经过我们网卡上的包都会被抓下来,包括是我们要的,或者不是我们要的,都会抓下来,那么如何找出我们真正想要的封包呢?
我们来点选上一图的Expression的按钮,会出现下图,这是一个包搜寻器辅助工具,也就是可以辅助我们输入正确的关建字
在左边选出我们要的协议或关键字,我们这一次是找ftp包,所以选完ftp就好了,如果展开,会出现更多的细项,但我们不需要,所以直接按ok就好
还没搜索出来,这是因为刚刚只是辅助我们输入正确的关建字ftp,现在关建字有了,再按左边的按钮Filter,会出现下图
这是一些说明及搜寻ftp封包时所定的条件,可以不用理会直接按ok(或在上图中直接按Alpply)
这样就可以找到这一次封包中所收集的ftp封包
(本例另外一个简单的方法就是直接在filter后的输入框输入ftp,回车,即可筛选出ftp协议包)
点一下No.,似照封包的顺序来排列,这是第1个封包
我们直接看其中第四层内容
220 FTP Server ready\r\n
这个包是ftp主机先say hi,说他自己是存在的,再要求我们提供资料。
那我们看看我们给ftp主机什么东西,看第2个包
我们也是直接看第四层内容
引用:
USER netbird\r\n
这里显示用户名是帐号netbird
下面是回应,第3个包,有该帐号存在,该帐号需要密码,请输入密码