您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 网络主机扫描程序的设计与实现
长沙理工大学《网络协议编程》课程设计报告网络活动主机扫描的设计与实现学院计算机与通信工程专业网络工程班级网络08-1学号24学生姓名张德宝指导教师谢晓巍课程成绩完成日期2011年7月2日2课程设计成绩评定学院计通学院专业网络专业班级08-01学号学生姓名指导教师谢晓巍课程成绩完成日期2011年7月2日指导教师对学生在课程设计中的评价评分项目优良中及格不及格课程设计中的创造性成果学生掌握课程内容的程度课程设计完成情况课程设计动手能力文字表达学习态度规范要求课程设计论文的质量指导教师对课程设计的评定意见综合成绩指导教师签字2011年7月2日3课程设计任务书计算机与通信工程学院网络工程专业课程名称计算机网络协议编程课程设计时间2010~2011学年第2学期学生姓名指导老师谢晓巍题目网络活动主机扫描程序的设计与实现主要内容:1、对现行网络主机扫描技术简介2、设计一个网络活动主机扫描方法。3、实现一个基于ARP,ICMP,TCP,UDP协议的活动主机扫描。要求:(1)通过实际项目的分析、设计、编码、测试等工作,掌握用C语言来开发和维护软件。(2)按要求编写课程设计报告书,能正确编写分析、设计、编码、测试等技术文档和用户使用手册。应当提交的文件:(1)课程设计学年论文。(2)课程设计附件(主要是源程序)。4目录网络主机扫描程序的设计与实现....................................11、引言.......................................................21.1课程设计背景.............................................21.2课程设计目的.............................................22、扫描技术简介...............................................32.1、基于ICMP协议活动主机扫描..............................32.2、基于TCP协议活动主机扫描...............................42.3、基于UDP协议活动主机扫描...............................42.4、基于ARP协议活动主机扫描...............................53、扫描主机功能设计与实现.....................................63.1、程序开发工具及平台.....................................63.2、结构设计...............................................63.3、功能设计与实现.........................................94、测试结果................................................135、参考文献..................................................186、结束语....................................................19附件.........................................................19源代码......................................................19《网络协议编程》课程设计1网络主机扫描程序的设计与实现摘要随着互联网的飞速发展,网络安全逐渐成为一个潜在的巨大问题,如何保障自身网络的安全,其中一个主要的方法就是自查自纠,而在这个过程中,对自己的网络活动主机进行扫描成为一种较为快捷、直观、简单的方法。本次课程设计就是对网络活动主机扫描技术的研究及实现,其中包括基于ARP,ICMP,TCP,UPD网络协议的网络活动主机扫描。利用ARP协议获取活动主机的mac地址,当获取的不为”00-00-00-00-00-00”时,则主机可到达,认为是活动主机;利用ICMP协议,使用系统自带的ping程序,当能ping通目标主机时,认为是活动主机;基于TCP的链接状态,当判断链接成功,认为主机可到达;UDP不可靠传输,给目标主机发送消息,能够得到返回消息,则认为主机可到达。从而通过四种不同协议,不同方法得到网络上活动主机。关键字:网络活动主机;ARP;ICMP;TCP;UDP《网络协议编程》课程设计21、引言1.1课程设计背景网络安全扫描技术是一类重要的网络安全技术。安全扫描技术与防火墙、入侵检测系统互相配合,能够有效提高网络的安全性。安全扫描是一种主动的防范措施,可以有效避免黑客攻击行为,做到防患于未然。网络安全扫描的首要任务是发现网络中活动的主机。对活动主机扫描就是向主机发送特定的数据报,若主机有响应消息返回则说明该主机处于活动状态,否则主机不存在或处于关机状态。当主机安装的防火墙软件进行了访问控制时(例如禁用了Ping响应或者禁用了所有的ICMP响应),这时使用常用的扫描方法就不起作用了,就需要使用其它的方法进行探测。网络扫描的基础是互联网的协议,通过对协议的分析找到适合网络扫描的协议类型和消息类型。根据互联网的协议标准构造特定类型的数据报,把这些数据报发送到目的主机,从响应消息中提取信息。整个扫描过程都是基于这种请求-应答-分析机制进行的。1.2课程设计目的本次课程设计通过对一IP地址段,使用ARP(地址解析协议),ICMP(网络控制报文协议),TCP(传输控制协议),UDP(用户数据报协议)等协议进行的活动主机进行扫描。通过这次课程设计,重在掌握以下技能:1)进一步巩固《计算机网络》《信息和网络安全》《C#网络编程》等课程所学的知识,巩固、深化理论知识,提高动手能力,并在此过程中培养严谨的科学态度和良好的工作作风;2)初步感受网络管理过程中的相关原理与方法,形成良好的系统设计和分析能力,提高综合运用所学的理论知识和方法独立分析和解决问题的能《网络协议编程》课程设计3力。3)掌握程序设计的流程,以及用C#语言编写程序,从而解决实际问题的能力,了解掌握VisualStudio2008开发环境。2扫描技术简介主机扫描的目的是确定在目标网络上的主机是否可达,现行主要技术有:ICMPEcho扫描、TCPconnect()扫描、UDP回馈和ARP获取适配器编号扫描,并且通过多线程,提高了扫描效率。以下分别进行详细介绍。2.1基于ICMP协议活动主机扫描1)ICMPEcho扫描精度相对较高。通过简单地向目标主机发送ICMPEchoRequest数据包,并等待回复的ICMPEchoReply包,如Ping。2)ICMPSweep扫描:sweep这个词的动作很像机枪扫射,icmp进行扫射式的扫描,就是并发性扫描,使用ICMPEchoRequest一次探测多个目标主机。通常这种探测包会并行发送,以提高探测效率,适用于大范围的评估。3)BroadcastICMP扫描:广播型icmp扫描,利用了一些主机在icmp实现上的差异,设置ICMP请求包的目标地址为广播地址或网络地址,则可以探测广播域或整个网络范围内的主机,子网内所有存活主机都会给以回应。但这种情况只适合于UNIX/Linux系统。4)Non-EchoICMP扫描:在ICMP协议中不光光只有ICMPECHO的ICMP查询信息类型,在ICMP扫描技术中也用到Non-ECHOICMP技术(不仅仅能探测主机,也可以探测网络设备如路由)。利用了ICMP的服务类型(Timestamp和TimestampReply、InformationRequest和InformationReply、AddressMaskRequest和AddressMaskReply)。5)本次课程设计采用第一种,使用ping程序通过返回的信息来判断主机是否活动。《网络协议编程》课程设计42.2基于TCP协议活动主机扫描利用三次握手过程与目标主机建立完整或不完整的TCP连接。TCPconnect()扫描:tcp的报头里,有6个连接标记,分别是urg、ack、psh、rst、syn、fin。通过这些连接标记不同的组合方式,可以获得不同的返回报文。例如,发送一个syn置位的报文,如果syn置位瞄准的端口是开放的,syn置位的报文到达的端口开放的时候,他就会返回syn+ack,代表其能够提供相应的服务。我收到syn+ack后,返回给对方一个ack。这个过程就是著名的三次握手。这种扫描的速度和精度都是令人满意的。Reverse-ident扫描:这种技术利用了Ident协议(RFC1413),tcp端口113.很多主机都会运行的协议,用于鉴别TCP连接的用户。identd的操作原理是查找特定TCP/IP连接并返回拥有此连接的进程的用户名。它也可以返回主机的其他信息。但这种扫描方式只能在tcp全连接之后才有效,并且实际上很多主机都会关闭ident服务。Tcpsyn扫描:向目标主机的特定端口发送一个SYN包,如果端口没开放就不会返回syn+ack,这时会给你一个rst,停止建立连接。由于连接没有完全建立,所以称为半开放扫描。但由于synflood作为一种ddos攻击手段被大量采用,因此很多防火墙都会对syn报文进行过滤,所以这种方法并不能总是有用。通过比较,课程设计采用比较好的第一种Connect()方式来扫描网络上活动的主机。2.3基于UDP协议活动主机扫描由于现在防火墙设备的流行,tcp端口的管理状态越来越严格,不会轻易开放,并且通信监视严格。为了避免这种监视,达到评估的目的,就出现了秘密扫描。这种扫描方式的特点是利用UDP端口关闭时返回的ICMP信息,不包含标准的TCP三次握手协议的任何部分,隐蔽性好,但这种扫描使用的数据包在通过网络时容易被丢弃从而产生错误的探测信息。《网络协议编程》课程设计5Traceroute扫描:tracert向30000以上的高端口(一般认为,主机的30000以上高端口利用率非常低,任何主机都不会轻易开放这种高端口,默认都是关闭的)。如果对方端口关闭,会返回给icmp信息,根据这个往返时间,计算跳数、路径信息,了解延时情况。这是tracerote原理,也是从这个原理上演变出来udp扫描技术。使用udp扫描要注意的是1、udp状态、精度比较差,因为udp是不面向连接的,所以整个精度会比较低。2、udp扫描速度比较慢,tcp扫描开放1秒的延时,在udp里可能就需要2秒,这是由于不同操作系统在实现icmp协议的时候为了避免广播风暴都会有峰值速率的限制,利用udp作为扫描的基础协议,就会对精度、延时产生较大影响。利用了开发了工具探测网内哪台主机打开了80端口,这样的技术在当前的互联网上利用的非常普遍。课程设计利用最普遍的端口,扫描活动主机的80端口,得到反馈信息就认为该主机处于活动状态,但是效率和误差都很大。2.4基于ARP协议活动主机扫描IP数据包常通过以太网发送。以太网设备并不识别32位IP地址:它们是以48位以太网地址传输以太网数据包的。因此,IP驱动器必须把IP目的地址转换成以太网网目的地址。在这两种地址之间存在着某种静态的或算法的映射,常常需要查看一张表。地址解析协议(ARP)就是用来确定这些映象的协议。ARP工作时,送出一个含有所希望的IP地址的以太网广播数据包。目的地主机以一个含有IP和以太网地址对的数据包作为应答,从而判断拥有该ip地址的主机处于活动状态。《网络协议编程》课程设计63、扫描主机总体设计3.1程序开发工具及平台课程设计在microsoftwindow开发的win7操作系统上,采用其开发的visualstudio2008编程开发工具进行网络活动主机扫描程序的开发。可视化的界面开发和高度集成的开发环境给程序开发带来极大的方便,
本文标题:网络主机扫描程序的设计与实现
链接地址:https://www.777doc.com/doc-5590608 .html