网络数据包捕获
以太网( Ethernet )具有共享介质的特征,信息是以明文的形式在网络上传输,当网络适配器设置为监听模式(混杂模式, promiscuous mode )时,由于采用以太网广播信道争用的方式,使得监听系统与正常通信的网络能够并联连接,并可以捕获任何一个在同一冲突域上传输的数据包。 IEEE802.3 标准的以太网采用的是持续 CSMA 的方式,正是由于以太网采用这种广播信道争用的方式,使得各个站点可以获得其他站点发送的数据。运用这一原理使信息捕获系统能够拦截的我们所要的信息,这是捕获数据包的物理基础。
以太网是一种总线型的网络,从逻辑上来看是由一条总线和多个连接在总线上的站点所组成各个站点采用上面提到的 CSMA/CD 协议进行信道的争用和共享。每个站点(这里特指计算机通过的接口卡)网卡来实现这种功能。网卡主要的工作是完成对于总线当前状态的探测,确定是否进行数据的传送,判断每个物理数据帧目的地是否为本站地址,如果不匹配,则说明不是发送到本站的而将它丢弃。如果是的话,接收该数据帧,进行物理数据帧的 CRC 校验,然后将数据帧提交给 LLC 子层。
网卡具有如下的几种工作模式:
1) 广播模式( Broad Cast Model ) : 它的物理地址( MAC )地址是 0Xffffff 的帧为广播帧,工作在广播模式的网卡接收广播帧。
2 )多播传送( MultiCast Model ):多播传送地址作为目的物理地址的帧可以被组内的其它主机同时接收,而组外主机却接收不到。但是,如果将网卡设置为多播传送模式,它可以接收所有的多播传送帧,而不论它是不是组内成员。
3 )直接模式( Direct Model ) : 工作在直接模式下的网卡只接收目地址是自己 Mac 地址的帧
4 )混杂模式( Promiscuous Model ) : 工作在混杂模式下的网卡接收所有的流过网卡的帧,信包捕获程序就是在这种模式下运行的。
网卡的缺省工作模式包含广播模式和直接模式,即它只接收广播帧和发给自己的帧。如果采用混杂模式,一个站点的网卡将接受同一网络内所有站点所发送的数据包这样就可以到达对于网络信息监视捕获的目的。
wireshark
Wireshark (原名 Ethereal )是目前世界上最受欢迎的协议分析软件,利用它可将捕获到的各种各样协议的网络二进制数据流翻译为人们容易读懂和理解的文字和图表等形式,极大地方便了对网络活动的监测分析和教学实验。它有十分丰富和强大的统计分析功能,可在 Windows , Linux 和 UNIX 等系统上运行。此软件于 1998 年由美国 Gerald Combs 首创研发,原名 Ethereal ,至今世界各国已有 100 多位网络专家和软件人员正在共同参与此软件的升级完善和维护。它的名称于 2006 年 5 月由原 Ethereal 改为 Wireshark 。至今它的更新升级速度大约每 2 ~ 3 个月推出一个新的版本, 2008 年 5 月时的版本号为 1.0.0 。但是升级后软件的主要功能和使用方法保持不变。它是一个开源代码的免费软件,任何人都可自由下载,也可参与共同开发。
Wireshark 网络协议分析软件可以十分方便直观地应用于计算机网络原理和网络安全的教学实验,网络的日常安全监测,网络性能参数测试,网络恶意代码的捕获分析,网络用户的行为监测,黑客活动的追踪等。因此它在世界范围的网络管理专家,信息安全专家,软件和硬件开发人员中,以及美国的一些知名大学的网络原理和信息安全技术的教学、科研和实验工作中得到广泛的应用。
一、WireShark数据包的理解
1. 认识数据包
Frame: 物理层的数据帧情况
Ethernet II: 数据链路层以太网帧头部信息
Internet Protocol Version4: 互联网层 IP 包头部信息
Transmission Control Protocol: 传输层的数据段头部信息, TCP 协议
Hypertext Transfer Protocol: 应用层的信息
2. 捕获 HTTP 包
在下图的实验环境中,包括一个客户机、两个交换机、一个标准路由器和一个网络地址转换路由器和服务器。
3. 分析 Web 浏览数据
涉及到 DNS 、 TCP 和 HTTP 3 种协议,
访问百度:
关闭其他所有程序,还可分析自身操作系统运行产生的后台数据,进行各种查找更新。
4.wireshark 分析器
5.分析非标准端口号流量
6.追踪流,重组数据
7.进行各种过滤
可以是端口、 mac 地址、 ip 地址,捕获 icmp 、 tcp 、 udp ,还可利用表达式过滤器进行过滤显示。
8.构件图表
9.重组FTP会话
10.切割、合并大文件
11.协议包分析
二、相关实验
1.安装WireShark
Next->I Agree->Install->Finish--Wait-->Next->Run
注:本实验以下是在 Kali Linux虚拟机中运行Wireshark
软件打开界面:
2.运行 wireshark,观察wireshark捕获数据包的过程
3. 设置好过滤器后运行 wireshark,要求只捕获TCP协议数据包。打开一个TCP数据包,观察其TCP包头,IP包头并指明各字段的含义。
IP包头内容为:
第一行: IPv4
第二行:包头 20byte
第三行:差分服务字段 总长度 384 标志字段 0x827a
第六行:标记字段
第七行:生存期 TTL
第八行: 此包内封装的上层协议为 TCP
第九行:头部数据的校验和
Source :源 IP 地址
Destination :目的 IP 地址
TCP 包头如下:
Source Port :源端口
Destination Port :目的端口
Sequence number :序列号(相对序列号)
Next Sequence number :下一个序列号(相对序列号)
Acknoledge number :确认序列号(相对序列号)
Herder Length :头部长度
Flags : TCP 标记字段
Calculated window size :流量控制的窗口大小
Checksum Status : TCP 数据段的校验和
4.可再次重复任务一中的实验,建立一次TCP连接(如通过浏览器打开一个网页),使用wireshark捕获TCP三次握手数据包。
5.打开wireshark,同时打开浏览器登录:
A南京邮电大学邮箱(em.njupt.edu.cn)
注:学校邮箱的用户名是学号,初始密码是身份证号码。即使不记得,也可以输入学号和错误的密码提交,wireshark可以捕获信息。
B.163或QQ邮箱
C.淘宝(或支付宝)
停止wireshark的监听,观察wireshark已捕获的数据包,看从中能否发现监听到的用户名和密码。为了在wireshark中过滤得到POST数据包,可以在过滤器中设置http.request.method == POST(不要复制,手工输入,复制可能有全角、半角符号的区别)。
A学校邮箱
B qq邮箱
ping一下,可得en.mail.qq.com的ip地址为14.18.245.237
可得到包内细节为:
C 淘宝
先ping一下淘宝网的网址,
然后在 wireshark寻找该IP的临近值,一般不会直接ping到
经过了SSL加密,无法查看淘宝网的信息传输内容。
三、WireShark的妙用
如使用WireShark生成地理位置数据地图
首先,下载GeoIP,
解压缩后,放到同一文件夹。
打开Wireshark,点击Edit(编辑)-->Preferences(首选项)-->Name Resolution--Geoip database directories-->Edit,
添加GeoIP目录
重启wireshark,打开要分析的pcap文件,选择Statistics->Endpoints->IPv4->Map
新升级的wireshark将 Geoip database directories换为 MaxMind database directories,还在学习怎样使用这个功能,有了结果后,会更新这个地方。
当然了,也可使用Java,使用Maven功能,可参考博客:https://blog.csdn.net/u010521842/article/details/78118551
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31559248/viewspace-2217309/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31559248/viewspace-2217309/