网络安全课程设计基于Sniffer的TCPIP协议数据分析.doc
-
资源ID:2880949
资源大小:622KB
全文页数:20页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
网络安全课程设计基于Sniffer的TCPIP协议数据分析.doc
课程设计报告课程名称: 网络安全课程设计 设计题目:基于Sniffer的TCP/IP协议数据分析 院 系: 信息科学技术学院 班 级: 通信工程05级3班 设 计 者: 指导教师: 设计时间: 2008.12.172008.12.31 青岛科技大学课程设计地点课程设计时间课程设计目的指导教师评语 指导教师签字:验收(答辩)意见验收(答辩)人员签字:系(教研室)意 见 教研室主任签字:成 绩(百分制)基于Sniffer的TCP/IP协议数据分析HTTP协议的分析摘 要:本次课程设计我们小组选择并实现的设计课题为使用sniffer工具嗅探捕获HTTP数据包并分析的设计与实现。在实验的过程中,首先好好了解了关于TCP/IP协议,对于sniffer软件的使用和了解。用了两周的时间来完成本次实验课题的。在这次基于Sniffer的TCP/IP协议的数据分析对HTTP协议分析,我们选择了使用sniffer工具嗅探,成功实现了对HTTP数据包的抓取和分析。并完成了此次设计的各项要求。关键词:sniffer嗅探 、数据包、TCP/IP协议 、HTTP协议1概述 现在人们谈到黑客攻击,一般所指的都是以主动方式进行的,例如利用漏洞或者猜测系统密码的方式对系统进行攻击。但是其实还有一类危害非常大的被动攻击方式往往为大家所忽视,那就是利用Sniffer进行嗅探攻击。Sniffer,即网络嗅探器,它几乎和internet有一样久的历史了.Sniffer是一种常用的收集有用数据方法,这些数据可以是用户的帐号和密码,可以是一些商用机密数据等等。随着Internet及电子商务的日益普及,Internet的安全也越来越受到重视。在Internet安全隐患中扮演重要角色之一的Sniffer以受到越来越大的关注。 1.1网络技术与设备简介 数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会带来安全方面的问题。 每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址惟一地表示了网络上的机器(这一点与Internet地址系统比较相似)。当用户发送一个数据包时,这些数据包就会发送到LAN上所有可用的机器。 如果使用Hub/即基于共享网络的情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应(换句话说,工作站A不会捕获属于工作站B的数据,而是简单地忽略这些数据)。如果某个工作站的网络接口处于混杂模式(关于混杂模式的概念会在后面解释),那么它就可以捕获网络上所有的数据包和帧。 但是现代网络常常采用交换机作为网络连接设备枢纽,在通常情况下,交换机不会让网络中每一台主机侦听到其他主机的通讯,因此Sniffer技术在这时必须结合网络端口镜像技术进行配合。而衍生的安全技术则通过ARP欺骗来变相达到交换网络中的侦听。 1.2网络监听原理 Sniffer程序是一种利用以太网的特性把网络适配卡(NIC,一般为以太网卡)置为杂乱(promiscuous)模式状态的工具,一旦网卡设置为这种模式,它就能接收传输在网络上的每一个信息包。 普通的情况下,网卡只接收和自己的地址有关的信息包,即传输到本地主机的信息包。要使Sniffer能接收并处理这种方式的信息,系统需要支持BPF,Linux下需要支持SOCKET一PACKET。但一般情况下,网络硬件和TCPIP堆栈不支持接收或者发送与本地计算机无关的数据包,所以,为了绕过标准的TCPIP堆栈,网卡就必须设置为我们刚开始讲的混杂模式。1.3网络监听的目的 当一个黑客成功地攻陷了一台主机,并拿到了root权限,而且还想利用这台主机去攻击同一网段上的其他主机时,他就会在这台主机上安装Sniffer软件,对以太网设备上传送的数据包进行侦听,从而发现感兴趣的包。如果发现符合条件的包,就把它存到一个LOg文件中去。通常设置的这些条件是包含字“username”或“password”的包,这样的包里面通常有黑客感兴趣的密码之类的东西。一旦黑客截获得了某台主机的密码,他就会立刻进人这台主机。 如果Sniffer运行在路由器上或有路由功能的主机上,就能对大量的数据进行监控,因为所有进出网络的数据包都要经过路由器。 Sniffer属于第M层次的攻击。就是说,只有在攻击者已经进入了目标系统的情况下,才能使用Sniffer这种攻击手段,以便得到更多的信息。 Sniffer除了能得到口令或用户名外,还能得到更多的其他信息,比如一个重要的信息、在网上传送的金融信息等等。Sniffer几乎能得到任何在以大网上传送的数据包。 Sniffer是一种比较复杂的攻击手段,一般只有黑客老手才有能力使用它,而对于一个网络新手来说,即使在一台主机上成功地编译并运行了Sniffer,一般也不会得到什么有用的信息,因为通常网络上的信息流量是相当大的,如果不加选择地接收所有的包,然后从中找到所需要的信息非常困难;而且,如果长时间进行监听,还有可能把放置Snifkr的机器的硬盘撑爆。1.4. Sniffer的分类 1、口令 。我想这是绝大多数非法使用sniffer的理由,sniffer可以记录到明文传送的userid和passwd.就算你在网络传送过程中使用了加密的数据,sniffer记录的数据一样有可能使入侵者在家里边吃肉串边想办法算出你的算法。 2、金融帐号。许多用户很放心在网上使用自己的信用卡或现金帐号,然而sniffer可以很轻松截获在网上传送的用户姓名、口令、信用卡号码、截止日期、帐号和pin. 3、偷窥机密或敏感的信息数据 。通过拦截数据包,入侵者可以很方便记录别人之间敏感的信息传送,或者干脆拦截整个的email会话过程。 4、窥探低级的协议信息。这是很可怕的事,我认为,通过对底层的信息协议记录,比如记录两台主机之间的网络接口地址、远程网络接口ip地址、ip路由信息和tcp连接的字节顺序号码等。这些信息由非法入侵的人掌握后将对网络安全构成极大的危害,通常有人用sniffer收集这些信息只有一个原因:他正在进行一次欺诈,(通常的ip地址欺诈就要求你准确插入tcp连接的字节顺序号,这将在以后整理的文章中指出)如果某人很关心这个问题,那么sniffer对他来说只是前奏,今后的问题要大得多。(对于高级的hacker而言,我想这是使用sniffer的唯一理由吧)。1.5 Sniffer的运行环境 snifffer就是能够捕获网络报文的设备。嗅探器的正当用处在于分析网络的流量,以便找出所关心的网络中潜在的问题。例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器来作出精确的问题判断。 嗅探器通常是软硬件的结合。专用的嗅探器价格非常昂贵。另一方面,免费的嗅探器虽然不需要花什么钱,但得不到什么支持。 嗅探器与一般的键盘捕获程序不同。键盘捕获程序捕获在终端上输入的键值,而嗅探器则捕获真实的网络报文。嗅探器通过将其置身于网络接口来达到这个目的例如将以太网卡设置成杂收模式。(为了理解杂收模式是怎么回事,先解释局域网是怎么工作的)。 数据在网络上是以很小的称为帧(Ftame)的单位传输的帧由好几部分组成,不同的部分执行不同的功能。(例如,以太网的前12个字节存放的是源和目的的地址,这些位告诉网络:数据的来源和去处。以太网帧的其他部分存放实际的用户数据、TCP/IP的报文头或IPX报文头等等)。1.6 Sniffer的应用 1,目前最新版本为Sniffer Portable 4.9,这类产品通过网络嗅探这一技术方式,对数据协议进行捕获和解析,能够大大帮助故障诊断和网络应用性能的分析鉴别。 2,专用领域的Sniffer 。 Sniffer被广泛应用到各种专业领域,例如FIX (金融信息交换协议)、MultiCast(组播协议)、3G (第三代移动通讯技术)的分析系统。其可以解析这些专用协议数据,获得完整的解码分析。 长期存储的Sniffer应用。 由于现代网络数据量惊人,带宽越来越大。采用传统方式的Sniffer产品很难适应这类环境,因此诞生了伴随有大量硬盘存储空间的长期记录设备。易于使用的Sniffer辅助系统 。 由于协议解码这类的应用曲高和寡,很少有人能够很好的理解各类协议。但捕获下来的数据却非常有价值。因此在现代意义上非常流行如何把协议数据采用最好的方式进行展示,包括产生了可以把Sniffer数据转换成Excel的BoneLight类型的应用和把Sniffer分析数据进行图形化的开源系统PacketMap等。这类应用使用户能够更简明地理解Sniffer数据。1.7sniffer工具的防范1、网络通讯掉包率反常的高,通过一些网络软件,可以看到信息包传送情况,向ping这样的命令会告诉你掉了百分几的包。如果网络中有人在Listen,那么信息包传送将无法每次都顺畅的流到目的地。2、网络带宽出现反常通过某些带宽控制器(通常是防火墙所带),可以实时看到目前网络带宽的分布情况,如果某台机器长时间的占用了较大的带宽,这台机器就有可能在监听。3、查看计算机上当前正在运行的所有程序。但这通常并不可靠,但可以控制计算机中程序运行这个命令,列出当前的所有进程,启动这些进程的用户,它们占用CPU的时间,占用内存的多少等等。2.课程设计任务及要求2.1设计任务(1)通过使用sniffer嗅探工具的使用方法,实现捕获HTTP协议的数据包。(2)理解基于TCP/IP协议中多种协议的数据结构、会话连接建立和终止的过程、TCP序列号、应答序号的变化规律。(3)通过课程设计使用sniffer嗅探工具基于TCP/IP协议了解HTTP协议明文传输的特性,以建立安全意识,以防止HTTP协议由于传输明文密码造成的泄露 。 2.2设计要求(1)通过本课程的设计,通过课本的学习熟练掌握数据包在网络上的运行规则以及在此掌握不同网络层所对应的传输模式。(2)熟悉snifferPRo工具的使用。(3)使用snifferPRo工具 捕获HTTP数据包并分析。3.课程设计的内容3.1熟悉snifferPRo工具的使用1启动时候时需要选择相应的网卡(adapter),选好后即可启动软件。2启动sniffer软件进入主界面如图所示、菜单栏、工具栏、主窗口等。3工具栏简介如图所示,sniffer 工具快捷栏可以方便的查找相应的工具。4网络监视面板网络的利用率、流量及错误报文等内容如图所示:5从HostTable可以直观地看出连接的主机如图显示方式为IP:3.2捕获HTTP数据包并进行分析1 假设A主机(10.1.1.92)监视B主机(10.1.1.81)的活动,A主机要知道B的IP地址,B主机可以在命令符的提示下输入ipconfig查询主机的IP地址,并把B的IP地址告诉A主机。2 选中Monitor菜单下的Matirx,此时可以看到网络中的Traffic Map视图,如下图,可以单击左下角的MAC、IP或IPX使Traffic MAP视图显示相应主机的MAC地址、IP地址或IPX地址。显示的使IP地址,每条连线表明俩台主机间的通信。3 单击菜单中的Capture->Define Filter->Advanced,再选中IP->TCP->HTTP,如图,单击确定。4 回到Traffic Map视图,选中B(10.1.1.37)的IP,单击右键选中Cpture,sniffer开始捕获指定的IP地址主机的有关HTTP协议的数据包,如图:5 开始后选中Capure Panel按钮显示捕捉的Packet的数量,这是未进行捕捉的时候所得到的图: B主机(10.1.1.81)开始登陆 的邮箱界面,后点击登陆 A主机(10.1.1.92)监视B主机的活动,在Capure Panel视图中看到捕获的数据包已经达到一定的数量,停止抓包。 停止抓包后,在视图中点击Decode选项,窗口中显示所捕获的数据并分析所捕获的数据包如图所示:3.3 对捕获的主机B(10.1.1.81)的HTTP报文的分析(1)首先,物理帧头,它将存在于任何一个协议数据包的前面,我们称之为DLC Header,因为这个帧头是在数据链路层构造的,并且其主要内容为收发双方的物理地址,以便硬件设备识别。在图中可以知道可以看出DLC报头共有14个字节。 Destination 001cf96a4c00Source Realtkb69184 e04cb69184(2)在HTTP中的IP报文的头格式及数据IP协议是在网络层的协议.它主要完成数据包的发送作用. IP报文的头格式如下所示:|版本 |首部长度|服务类型| 数据包总长 | - | 标识 |DF |MF| 碎片偏移 | - | 生存时间 | 协议 | 首部较验和 | - | 源IP地址 | - | 目的IP地址 | - | 选项 | = | 数据 | 在图中所示为对应IP格式的数据,在IP数据报格式的报头共有20个字节。3 在建立连接的TCP报文中的格式及所捕获的报文数据为图中显示的是以报文格式下的数据分析:TCP的数据分析可知:来源地 Source port :0b f5 目的地Destination port:00 50序列号Sequence number :05 36 78 bc授权码Acknowledgment number:50 43 3d 37数据设置Data offset:50TCP标记TCP Flags:18(里面还有8个定位的信息)窗口Windows:40 b0校验位Check sum:10 87冗余位Urgent pointer:00 00其余的都是在里面需要的数据4)对HTTP数据格式请求消息的一般格式:根据前面的HTTP请求信息和响应信息报文的格式进行数据分析:5)对B主机登陆的网页中密码的解析在如下图所示的最下面的灰数据所示,其中用户名,用户的密码,如图所示B主机的重要信息就泄露了。4.结论1由上面的可知sinffer可以查探出局域网内流动的任何信息,尤其是用户名和密码之类的敏感的数据。其实在电脑上安装上网络防火墙,并把操作系统的安全级别提高,sinffer工具就不会嗅探到任何信息但是可以知道A主机正在嗅探,在主机A中就不会抓到B的任何包在Capure Panel中则显示2过滤后抓包,还是有很多信息包,我们可以在的Define Filter中的DataPattern选项中设置更加详细的过滤选项从而使我们用最少的数据包得到最有用的数据。Data Pattern中的设置是根据用户名和密码中包的特有规则设定的,为了更好的说明这个问题,请在开着抓包的情况下选择Capture菜单define fliter ,在出现的对话框内选择Data Pattern,在选择add Pattern得到的图如图所示:选择Data Pattern项,点击箭头所指的Add Pattern按钮,出现图选择图中所指然后点击所指的Set Data按钮。OFFset、方格内、Name将填上相应的值。对于HTTP协议而言,填上相应的信息,就可以得到如下所示,就可以得到过滤掉的信息,得到相应的详细而不繁琐的信息。选择Data Pattern项,点击箭头所指的Add Pattern按钮 ,当进行如此的设置的时就可以用最少的数据包得到最有用的信息。这些规则的设置都是根据你要抓的包的相应特征来设置的,这些都需要对TCP/IP协议的深入了解,从图所示:可以看出网上传输的都是一位一位的比特流,操作系统将比特流转换为二进制,Sniffer这类的软件又把二进制换算为16进制,然后又为这些数赋予相应的意思,图中的18指的是TCP协议中的标志位是18。OFFset指的是数据包中某位数据的位置,方格内填的是值。5.参考文献1 雷震甲 网络工程师的教程 清华大学出版社 北京: 北京大学出社,20032 刘远生 辛一 薛庆水 计算机网络安全 北京:清华大学出版社 2005年第一版: 307-309页3 武新华 陈芳 殷玲华 杀破狼-攻防秘技入门 机械工业出版社 2007:249250页4 张曾科 计算机网络(第二版) 清华大学出版社 2005:285-300页5 W.Richard Stevens. TCP/IP详解卷2:实现 . 北京:机械工业出版社,2000 6.收获、体会和建议课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,Sniffer这类的软件已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握Sniffer这类的软件的开发技术是十分重要的。回顾起此次课程设计,至今我仍感慨颇多,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。 在这此课程设计中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在课程设计的过程中,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。选择使用Sniffer嗅探工具进行网络信息的查找,是因为现在是一个信息的社会,我们的周围无时无刻不受到信心的丢失和隐私的窃取而烦恼,因而我们要熟知信息是如何被窃取的因此掌握基本的原理,更能预防重要信息的丢失。不管怎样,这些都是一种锻炼,一种知识的积累,能力的提高。完全可以把这个当作基础东西,只有掌握了这些最基础的,才可以更进一步,取得更好的成绩。很少有人会一步登天吧。永不言弃才是最重要的。而且,这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。这次课程设计只要是在王玲玲老师指导下顺利完成了,王玲玲博士认真负责工作热情,最重要的是我在她身上学到很多实用的知识,再次我表示感谢!同时,对给过我帮助的所有同学再次表示忠心的感谢!