网络攻击与防范实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络攻击与防范实验报告
姓名:_ _ 学号:_ __ 所在班级:
实验名称:编写自己的网络嗅探器实验日期: 2014 年 10 月 22 日指导老师:张玉清、宋杨实验评分:
验收评语:
实验目的:
通过开发基于WinPcap的嗅探器,掌握嗅探器的工作原理,熟悉WinPcap的使用,掌握基于WinPcap网络嗅探器的开发过程。
实验内容:
开发出一个任意平台上的Sniffer(嗅探器)工具,能显示所捕获的局域网数据包并能做相应的分析和统计。主要内容如下:
•列出监测主机的所有网卡,选择一个网卡,设置为混杂模式进行监听。
•捕获所有流经网卡的数据包,并利用WinPcap函数库设置过滤规则。
•分析捕获到的数据包的包头和数据,按照各种协议的格式进行格式化显示。
•将所开发工具的捕获和分析结果与常用的Sniffer进行比较,完善程序代码。
实验环境:
➢硬件环境:
✧处理器:Intel(R) Core(TM) i5-3337U CPU @ 1.80GHz 1.80GHz
✧内存:6.00G
✧硬盘:600G
✧网卡:Intel(R) Centrino(R) Wireless-N 2230 / Realtek PCIe FE 系列控制器
✧网速:约200KB/s
➢软件环境:
✧操作系统: Windows 8.1 x64位操作系统
✧开发工具:Visual Studio 2013
✧开发语言:C#
实验设计:
SharpPcap 是一个.NET 环境下的网络包捕获框架,是基于WinPcap 库开发。提供了捕获、注入、分析和构建的功能,适用于C# 和VB NET开发语言。本实验利用SharpPcap提供的这些网络接口获取到底层的网卡信息及其数据包,并且支持捕获前过滤条件和捕获后过滤条件的设定。再根据TCP/IP协议栈的结构
capturedPacket.Extract(typeof(ProtocolPacket))和
PacketDotNet.Packet.ParsePacket(e.Packet.LinkLayerType, e.Packet.Data)方法依次在数据链路层、网络层、数据传输层和应用层,分别进行数据包的分拆与解析,获取相应协议层的数据信息,并根据应用程序的端口信息找出其对应的数据包,例如
Microsoft-SQL-Server、MySQL、Telnet、QQ、Tomcat等等。实验还对几个最常用的协议,如ARP、IP、ICMP、TCP、UDP等协议的数据包数量进行统计,并用柱状图的形式展现给用户。最后,还从网络层、传输层、应用层三个层次对数据包进行分类,计算它们的百分比,以饼
图的形式展现。
1、界面设计:
图 1 主窗口设计视图
本系统主窗口主要分为9个部分。
第一部分:菜单
菜单栏总共有三项,包括“文件”、“查看”、“帮助”。“文件”菜单项包含常规的几个子菜单:“打开”“保存”“另存为”“退出”;“查看”包括“柱状图”和“饼图”两个子菜单;“帮助”菜单包括“使用帮助”和“关于MySniffer”,下面介绍各个子菜单的功能。
•打开:打开Pcap文件,从文件中读取数据包。
•保存:将当前捕获的流量包保存到用户选择的位置。
•另存为:暂时作用与“保存”相同。
•退出:退出系统。
•柱状图:如图4所示,以柱状图的形式显示捕获到的数据包,方便用户直观的看到数据包的数量情况,可以对ARP、IP、ICMP、TCP、UDP、HTTP、DNS这几种协议的数据包的个数进行比较。
•饼图:如图5所示,以饼图的形式显示捕获到的数据包在不同协议层的分类情况,包括,网络层、传输层和应用层,饼图的左侧图例上显示了每种数据包在该协议层所占的比例,主要的饼图部分更能直观的反应比例关系。最后一个应用层,由于应用的种类实在太多,因此这里只统计了常见的14种应用,详见图5中的图例。
•使用帮助:弹出使用帮助对话框,目前内容只是告诉捕获前过滤条件如何设置,还没有加上软件的使用说明,有待完善。如图6。
•关于MySniffer:弹出版本信息对话框,如图7所示。
•
图 2 打开文件选项
•
图 3 保存流量包到文件
第二部分:选择网卡
选择网卡是个下拉菜单,在窗口初始化的时候对下拉菜单进行初始化,将获得的网卡列表加入下拉菜单,用户可以通过点击想要打开的网卡进行网卡的选择
第三部分:捕获前过滤条件
设置捕获前过滤条件,该过滤条件由Winpcap规定,在上面的使用帮助对话框中可以得到提示。
第四部分:开始抓包和停止抓包按钮
点击开始抓包,选中的网卡被打开,开始捕获数据包,此时开始抓包按钮和捕获前过滤文本框变成不可用状态,停止抓包按钮从刚开始的不可用变成可用。如果没有选择网卡将给
出提示框。
第五部分:捕获后过滤条件
设置捕获后过滤条件,这里也做成了下拉菜单的形式,有20种选项,包括ARP、IP、ICMP、TCP、UDP等等,当用户点击过滤按钮的时候,下面的数据包列表框中的内容就会发生改变。
第六部分:封包总览
封包总览包括时序号、时间、源地址、目的地址、协议、长度这六项。
第七部:封包内容
封包内容以树状图的形式展示,对数据包进行数据链路层、网络层、传输层、应用层四个层次的展开,最后除去所有的包头得到最终的有用数据。用户可以根据需要展开和折叠内容。
第八部分:十六进制码以及对应的ASCII码
将数据包的内容转化成ASCII码显示。
第九部分:统计已经抓到的数据包的个数。
图 4 部分数据包统计柱状图