计算机网络课程设计--简单点的端口扫描器.docx

上传人:王** 文档编号:789370 上传时间:2024-01-14 格式:DOCX 页数:23 大小:393.28KB
下载 相关 举报
计算机网络课程设计--简单点的端口扫描器.docx_第1页
第1页 / 共23页
计算机网络课程设计--简单点的端口扫描器.docx_第2页
第2页 / 共23页
计算机网络课程设计--简单点的端口扫描器.docx_第3页
第3页 / 共23页
计算机网络课程设计--简单点的端口扫描器.docx_第4页
第4页 / 共23页
计算机网络课程设计--简单点的端口扫描器.docx_第5页
第5页 / 共23页
计算机网络课程设计--简单点的端口扫描器.docx_第6页
第6页 / 共23页
计算机网络课程设计--简单点的端口扫描器.docx_第7页
第7页 / 共23页
计算机网络课程设计--简单点的端口扫描器.docx_第8页
第8页 / 共23页
计算机网络课程设计--简单点的端口扫描器.docx_第9页
第9页 / 共23页
计算机网络课程设计--简单点的端口扫描器.docx_第10页
第10页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计算机网络课程设计--简单点的端口扫描器.docx》由会员分享,可在线阅读,更多相关《计算机网络课程设计--简单点的端口扫描器.docx(23页珍藏版)》请在优知文库上搜索。

1、课程设计报告20142015学年第一学期课程名称计算机网络设计题目简单点的端口扫描器目录一、概述31.1 课程设计的目的31.2 课程设计的要求3二、背景知识32.1 网络分层结构32.2 报文结构62.2.2 TCP数据包结构82.2.3 UDP数据包结构9三、程序执行环境10四、编译环境10五、运行方式10六、测试结果截图10七、主要流程的说明16八、代码中核心算法的设计21九、课程设计心得、总结2626参考资料:一概述1.1 课程设计的目的扫描器是网络信息收集的一种方法,从功能上可分为漏洞扫描器和端口扫描器。通过此次课程设计,能够掌握漏洞、端口的基础知识,掌握扫描器的基本原理并设计实现端

2、口扫描和漏洞扫描程序。1.2 课程设计要求本课程设计的目标是设计并实现一个网络扫描器,它通过与目标主机TCP/IP端口建立连接并请求某些服务,记录目标主机的应答,分析目标主机相关信息,从而发现目标主机某些内在的安全弱点。扫描器通常分两类:漏洞扫描器和端口扫描器。端口扫描器用来扫描目标机开放的服务端口以及端口相关信息。漏洞扫描器检查目标中可能包含的大量已知的漏洞,如果发现潜在的漏洞可能性,就报告给扫描者。网络漏洞端口扫描器对目标系统进行检测时,首先探测目标系统的存活主机,对存活主机进行端口扫描,确定系统开放的端口,同时根据协议指纹技术识别出主机的操作系统类型。然后扫描器对开放的端口进行网络服务类

3、型的识别,确定其提供的网络服务。漏洞扫描器根据目标系统的操作系统平台和提供的网络服务,调用漏洞资料库中已知的各种漏洞进行逐一检测,通过对探测响应数据包的分析判断是否存在漏洞。在分析总结目前现有的扫描软件,在掌握扫描器的原理基础上,首先设计、实现一种端口扫描程序,存储扫描结果。在此基础上,有余力的同学对已经开放的重要端口有具体漏洞分析检测。程序具体要求实现以下任一程序:高效端口扫描器设计与实现:参照常见端口扫描器,在局域网内,能对所有计算机进行常用端口的高速扫描,给出扫描结果。另外根据配置不同的网段,实现正对校园网络的基于网段的高速扫描。高效的漏洞扫描器的设计与实现:设计网络漏洞扫描仪的结构,建

4、立常见的漏洞库,并基于该漏洞库,实现高效的基于网段的漏洞扫描器。主机脆弱性分析系统:将漏洞和端口扫描结合起来,实现针对主机的脆弱性分析系统。二背景知识2.1 网络分层结构用户想要传送的数据,通过网络分层结构,各个层次协议头的封装,最终传入到网络中,接收端接收到的数据包,包含了几个层的协议头,了解各个协议的报文结构,然后进行解析,就可以得到用户想要的各种网络传输的信息。举例进行说明,用户传输字符串:TestData,在运输层使用TCP协议,在网络层使用IP协议,链路层使用Ethemet进行封装;则最终传入到网络中的数据包的结构如下:IPTCP协报议文报结文构格式表数据包格式2.2 报文结构I1啜

5、据报发送在前图一IP数据包结构(1)版本占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4(即IPV4)。(2)首部长度占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为Illl时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。首部长度限制为60字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部长度就是20字节(

6、即首部长度为Olo1),这时不使用任何选项。(3)区分服务占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务DS(DifferentiatedServices)0只有在使用区分服务时,这个字段才起作用。(4)总长度总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。(5)标识(identifiCatiOn)占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识并不是序号,因为IP是无连接服务,数据报不存

7、在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。(6)标志(fla占3位,但目前只有2位有意义。标志字段中的最低位记为MF(MoreFragment)。MF=I即表示后面“还有分片”的数据报。MF=O表示这己是若干数据报片中的最后一个。标志字段中间的一位记为DF(Don,tFragment),意思是“不能分片”。只有当DF=O时才允许分片。(7)片偏移占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片

8、从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。(8)生存时间占8位,生存时间字段常用的的英文缩写是TTL(TimeToLive),表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初的设计是以秒作为TTL的单位。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。TTL通常是32或者64,SCaPy中默认是64(9)协议占8位,协议字段指出此数据报携带的数

9、据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。(在Sgpy中,下层的这个ProtoCOl一般可以从上曾继承而来,自动填充,我们一般可以省略不填此项)(10)首部检验和占16位。这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。(11)源地址占32位。(12)目的地址占32位。2.2.2TCP数据包结构图二TCP数据包结构源端口和目的端口字段一一各占2字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过

10、端口才能实现。序号字段一一占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。确认号字段一一占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。数据偏移一一占4bit,它指出TCP报文段的数据起始处距离CP报文段的起始处有多远。“数据偏移”的单位不是字节而是32bit字(4字节为计算单位)。保留字段一一占6bit,保留为今后使用,但目前应置为0。紧急比特URG当URG=I时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。确认比特ACK只有当ACK=I时确认号字段才有效

11、。当ACK=O时,确认号无效。复位比特RST(ReSet)当RST=I时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。同步比特SYN同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。终止比特FlN(FINaI)用来释放一个连接。当FIN=I时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。窗口字段一一占2字节。窗口字段用来控制对方发送的数据量,单位为字节OTCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。检验和一一占2字节。检验和字段检验的范围包括首部和数据这两部分。在

12、计算检验和时,要在TCP报文段的前面加上12字节的伪首部。紧急指针字段一一占16bit。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。选项字段一一长度可变。TCP首部可以有多达40字节的可选信息,用于把附加信息传递给终点,或用来对齐其它选项。填充字段一一这是为了使整个首部长度是4字节的整数倍。2.2.3UDP数据包结构UDP用户数据报的格式和伪首部字节:44112源IP地址目的IP地址017UDP长度字节:12一1一亍22;伪西部I源端口IH的端叶长殴I检而UDP的伪计部结构和TCP的伪背部相同C只不过In)P伪首部中的协议字段值为17,向TCP的为6首部数据UDP用户数据报IP分组

13、首部IP分组数据IP分组图三UDP数据包结构UDP数据报格式有首部和数据两个部分。首部很简单,共8字节。包括: 源端口(SoUrCePOrt):2字节,源端口号。 目的端口(DeStinatiOnPOrt):2字节,目的端口号。 长度(Length):2字节,UDP用户数据报的总长度,以字节为单位。 检验和(CheCkSUm):2字节,用于校验UDP数据报的数字段和包含UDP数据报首部的“伪首部”。其校验方法同IP分组首部中的首部校验和。伪首部,又称为伪包头(PSeUdoHeader):是指在TCP的分段或UDP的数据报格式中,在数据报首部前面增加源IP地址、目的IP地址、IP分组的协议字段、

14、TCP或UDP数据报的总长度等共12字节,所构成的扩展首部结构。此伪首部是一个临时的结构,它既不向上也不向下传递,仅仅只是为了保证可以校验套接字的正确性。三程序执行环境操作系统:WindowsXP四编译环境1 .集成编译环境:VC6.02 .编程语言:C+五运行方式MFC对话框程序六测试结果截图6.1 错误处理1)输入端口范围1-65536图四端口范围错误处理2)端口输入不是数字,当鼠标焦点离开端口输入框时,程序报出警告,重新设置为默认端口。图五端口输入为字符6.2 TCPConnect扫描本机连接的是路由器,路由器地址为10.0.0.1,本机IP为10.0.0.4,另有一台主机IP为10.0

15、.0.2。回潴口扫描程序画。地址葩圉起始IP地址末尾!州址TCP SCAM UDP SCAN 6 Connect Scan r XmiIS ScanSYNScan r Ack Scan超时值Sc*n IUthodMost IP AddressI Kost Port I Port St*tusTcp CRJkCl Tcp Connect Tcp Coxmct Tcp Connct Tcp Cowct Tcp CoM,Ct Tcp Connect Tcp Connect Tcp Connect Tcp Conntcl Tcp CQM”1 Tcp Comct Tcp Connect Tcp Connect Tcp Coxmct Tcp Coxmct Tcp Connect Tcp Connect Tcp ConnectIO 0.0.1IO 0.0.1IO 0.0. I10.0.0.210.0.0.310.0.0.4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机应用/办公自动化

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!