ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:115.83KB ,
资源ID:7060939      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7060939.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机网络课程设计端口扫描工具设计Word格式.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

计算机网络课程设计端口扫描工具设计Word格式.docx

1、SYN请求指明了客户端希望连接的服务器端端口号和客户端的ISN。 2:服务器端发回应答,包含自己的SYN信息ISN和对客户端的SYN应答,应答时返回下一个希望得到的字节序号。 3:客户端对从S服务器端来的SYN进行应答,数据发送开始。1.2UDP协议介绍UDP,用户数据报协议。UDP为应用程序提供了一种方法来发送经过封装的IP数据报,而且不必建立连接就可以发送这些IP数据报。UDP传输的数据段是由8个字节的头和净荷域构成的。两个端口分别被用来标识出源机器和目标机器内部的端点。当一个UDP分组到来的时候,它的净荷部分被递交给与目标端口相关联的那个进程。当目标端口必须将一个应答送回给源端口的时候,

2、源端口是必须的。发送应答的进程只要将近来的数据段中的源端口域复制到输出的数据段中的目标端口域,就可以指定在发送机器上有哪个进程来接受应答。UDP长度包含了8字节的头和数据部分。UDP校验和是可选的,如果不计算的话,则在该域中存放0,如果真正的计算结果试的话,则该域中存放的全是1,除非数据 的质量并不重要,否则就不应该将校验和的功能关闭。另外值得明确提出来的是UDP没有做到的一些事情。UDP并不考虑流控制,错误控制,在收到一个坏的数据段之后它也不重传。所有这些工作都留给用户的进程。UDP所作的事情是提供一个接口,并且在接口中增加解复用的特性。他利用端口的概念将数据段解复用到多个进程中,这就是他所

3、做的全部工作。1.3SOCKET介绍Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Uinx系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立,数据传输等操作都是通过该Soc

4、ket实现的。Sockfd是需要关闭的socket的描述符。参数 how允许为shutdown操作选择以下几种方式:0-不允许继续接收数据 1-不允许继续发送数据 2-不允许继续发送和接收数据,均为允许则调用close () shutdown在操作成功时返回0,在出现错误时返回-1并置相应errno。1.4常用端口扫描技术1.4.1TCP connect()扫描:这是最基本的TCP扫描,操作系统提供的connect()系统调用可以用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么connect()就能成功。否则,这个端口是不能用的,即没有提供服务。这个技术的一个最大的优点

5、是,你不需要任何权限。系统中的任何用户都有权利使用这个调用。另一个好处就是速度,如果对每个目标端口以线性的方式,使用单独的connect()调用,那么将会花费相当长的时间,使用者可以通过同时打开多个套接字来加速扫描。使用非阻塞I/O允许你设置一个低的时间用尽周期,同时观察多个套接字。但这种方法的缺点是很容易被察觉,并且被防火墙将扫描信息包过滤掉。目标计算机的logs文件会显示一连串的连接和连接出错消息,并且能很快使它关闭。1.4.2TCP SYN扫描:这种技术通常认为是“半开放”扫描,这是因为扫描程序不必要打开一个完全的TCP连接。扫描程序发送的是一个SYN数据包,好象准备打开一个实际的连接并

6、等待反应一样(参考TCP的三次握手建立一个TCP连接的过程)。一个SYN|ACK的返回信息表示端口处于侦听状态:返回RST表示端口没有处于侦听态。如果收到一个SYN|ACK,则扫描程序必须再发送一个RST信号,来关闭这个连接过程。这种扫描技术的优点在于一般不会在目标计算机上留下记录,但这种方法的缺点是必须要有root权限才能建立自己的SYN数据包。1.4.3TCP FIN 扫描:SYN扫描虽然是“半开放”方式扫描,但在某些时候也不能完全隐藏扫描者的动作,防火墙和包过滤器会对管理员指定的端口进行监视,有的程序能检测到这些扫描。相反,FIN数据包在扫描过程中却不会遇到过多问题,这种扫描方法的思想是

7、关闭的端口会用适当的RST来回复FIN数据包。另一方面,打开的端口会忽略对FIN数据包的回复。这种方法和系统的实现有一定的关系,有的系统不管端口是否打开都会回复RST,在这种情况下此种扫描就不适用了。另外这种扫描方法可以非常容易的区分服务器是运行Unix系统还是NT系统。1.4.4IP段扫描:这种扫描方式并不是新技术,它并不是直接发送TCP探测数据包,而是将数据包分成两个较小的IP段。这样就将一个TCP头分成好几个数据包,从而过滤器就很难探测到。但必须小心:一些程序在处理这些小数据包时会有些麻烦。1.4.5TCP 反向 ident扫描:ident 协议允许(rfc1413)看到通过TCP连接的

8、任何进程的拥有者的用户名,即使这个连接不是由这个进程开始的。例如扫描者可以连接到http端口,然后用identd来发现服务器是否正在以root权限运行。这种方法只能在和目标端口建立了一个完整的TCP连接后才能看到。1.4.6FTP 返回攻击:FTP协议的一个有趣的特点是它支持代理(proxy)FTP连接,即入侵者可以从自己的计算机和目标主机的FTP server-PI(协议解释器)连接,建立一个控制通信连接。然后请求这个server-PI激活一个有效的server-DTP(数据传输进程)来给Internet上任何地方发送文件。对于一个User-DTP,尽管RFC明确地定义请求一个服务器发送文件

9、到另一个服务器是可以的,但现在这个方法并不是非常有效。这个协议的缺点是“能用来发送不能跟踪的邮件和新闻,给许多服务器造成打击,用尽磁盘,企图越过防火墙”。1.4.7UDP ICMP端口不能到达扫描:这种方法与上面几种方法的不同之处在于使用的是UDP协议,而非TCP/IP协议。由于UDP协议很简单,所以扫描变得相对比较困难。这是由于打开的端口对扫描探测并不发送确认信息,关闭的端口也并不需要发送一个错误数据包。幸运的是许多主机在向一个未打开的UDP端口发送数据包时,会返回一个ICMP_PORT_UNREACH错误,这样扫描者就能知道哪个端口是关闭的。UDP和ICMP错误都不保证能到达,因此这种扫描

10、器必须还实现在一个包看上去是丢失的时候能重新传输。这种扫描方法是很慢的,因为RFC对ICMP错误消息的产生速率做了规定。同样这种扫描方法也需要具有root权限。1.4.8UDP recvfrom()和write() 扫描:当非root用户不能直接读到端口不能到达错误时,Linux能间接地在它们到达时通知用户。比如,对一个关闭的端口的第二个write()调用将失败。在非阻塞的UDP套接字上调用recvfrom()时,如果ICMP出错还没有到达时回返回EAGAIN-重试。如果ICMP到达时,返回ECONNREFUSED-连接被拒绝。这就是用来查看端口是否打开的技术。1.5常见端口扫描器1.5.1

11、NSS(网络安全扫描器)NSS由Perl语言编成,它最根本的价值在于它的速度,它运行速度非常快,它可以执行下列常规检查:Sendmail 匿名FTP NFS出口 TFTPHosts.equivXhost利用NSS,用户可以增加更强大的功能,其中包括:AppleTalk扫描Novell扫描 LAN管理员扫描可扫描子网NSS执行的进程包括:取得指定域的列表或报告,该域原本不存在这类列表用Ping命令确定指定主机是否是活性的扫描目标主机的端口 报告指定地址的漏洞 1.5.2Strobe(超级优化TCP端口检测程序)strobe是一个TCP端口扫描器,它可以记录指定机器的所有开放端口。strobe运行

12、速度快。strobe的主要特点是,它能快速识别指定机器上正在运行什么服务。strobe的主要不足是这类信息是很有限的,一次strobe攻击充其量可以提供给“入侵者”一个粗略的指南,告诉什么服务可以被攻击。但是,strobe用扩展的行命令选项弥补了这个不足。比如,在用大量指定端口扫描主机时,可以禁止所有重复的端口描述。其他选项包括:定义起始和终止端口 定义在多长时间内接收不到端口或主机响应,便终止这次扫描。定义使用的socket号码定义strobe要捕捉的目标主机的文件1.5.3 SATAN(安全管理员的网络分析工具)SATAN是为UNIX设计的,它主要是用C和Perl语言编写的(为了用户界面的

13、友好性,还用了一些HTML技术)。它能在许多类UNIX平台上运行,有些根本不需要移植,而在其他平台上也只是略作移植。SATAN用于扫描远程主机的许多已知的漏洞,其中包括,但并不限于下列这些漏洞:FTPD脆弱性和可写的FTP目录NFS脆弱性NIS脆弱性RSH脆弱性SendmailX服务器脆弱性1.5.4 Jakal Jakal是一个秘密扫描器,也就是就,它可以扫描一个区域(在防火墙后面),而不留下任何痕迹。秘密扫描器工作时会产生“半扫描”(half scans),它启动(但从不完成)与目标主机的SYN/ACK过程。从根本上讲,秘密扫描器绕过了防火墙,并且避开了端口扫描探测器,识别出在防火墙后面运

14、行的是什么服务。(这里包括了像Courtney和GAbriel这样的精制扫描探测器)1.5.5 IdentTCPscan IdentTCPscan是一个更加专业化的扫描器,其中加入了识别指定TCP端口进程的所有者的功能,也就是说,它能测定该进程的UID。可在如下地址找到拷贝:http:/www.giga.or.at/pub/hacker/unix ;1.5.6 CONNECTCONNECT是一个bin/sh程序,它的用途是扫描TFTP服务子网。1.5.7 FSPScanFSPScan用于扫描FSP服务顺。FSP代表文件服务协议,是非常类似于FTP的Internet协议。它提供匿名文件传输,并且

15、据说具有网络过载保护功能(比如,FSP从来不分叉)。FSP最知名的安全特性可能就是它记录所有到来用户的主机名,这被认为优于FTP,因为FTP仅要求用户的E-mail地址。1.5.8 XSCANXSCAN扫描具有X服务器弱点的子网(或主机)。XSCAN增加了一个功能:如果它找到了一个脆弱的目标,它会立即加入记录。XSCAN的其他优点还包括:可以一次扫描多台主机。这些主机可以在行命令中作为变量键入(并且你可以通过混合匹配同时指定主机和子网)。1.6本章小节本章节着重介绍了TCP协议、UDP协议以及SOCKET接口的相关知识还大致介绍了TCP connect()扫描、CP SYN扫描、CP FIN

16、扫描、IP段扫描等几种常规扫描模式。最后还介绍了NSS、Strobe、ATAN、Jakal等几种常见的扫描工具。为网络扫描工具的开发打下了理论基础。2端口扫描器的开发2.1开发原理开发端口扫描器需要用到控件,利用它与远程计算机建立连接,并通过用UDP协议或TCP协议进行数据交换。这样就能确认远程计算机的端口开放情况。由于TCP协议判断远程计算机的信息比UDP协议准确,所以本文使用Winsock控件的TCP协议来开发扫描器。首先在IP地址和端口的循环中动态建立winsock套接字(Fsocket),在该套接字的通讯方式上选择非阻塞方式(WSAAsyncSelect(),并在Fsocket套接字,

17、线程内分配的非可视控件句柄,网络事件处理函数以及网络事件消息(FD_CONNECT连接消息)之间建立相应的关联。设置好Fsocket的IP地址和相应的端口号后,调用connect()函数与远程目标主机建立连接。调用WaitForSingleObject()函数等待网络连接事件的发生,一旦连接成功将自动调用自定义的 ReadData()函数处理相应网络消息。最后将网络事件复位(ResetEvent)以便等待下一网络事件发生,并取消在Fsocket套接字,线程内分配的非可视化句柄,网络事件处理函数以及网络事件消息(FD_CONNECT连接消息)之间建立相应的关联,关闭Fsocket. 2.1.1属

18、性LocalHostName | 本机名。LocalIP | 本机IP地址。LocalPort | 本机通信程序的端口(0端口= porttwoviriio: If Err.Number = 10048 ThenlstOpenPorts.Text = lstOpenPorts.Text & Winsock1.LocalPort &开放中 Resume NextPrivate Sub Form_Load()2.4测试对该软件进行测试: 达到开发目的,具备发现一个计算机或网络的能力;具备发现一台计算机,就有发现目标计算机正在运行什么服务的能力;具备测试目标计算机上的这些服务,发现存在的漏洞的能力。2.5本章小结开发了一款简单的基于VB的网络端口扫描工具。并对其进行了测试,在Windows NT/XP下稳定运行。3结束语通过一个多月紧张有序的学习与研究,圆满完成了本次课程研究。在本次课程研究中主要采取了XX加咨询学长的方式。通过这次对端口扫描工具的研究,我真正体会到了端口扫描的重要性。这次课程设计使我对网络端口扫描有了深刻的认识,对它们的理解也更为深入了。诚然,我现在不能开发出端口扫描工具,在本次课程设计完全仅仅是对端口扫描工具进行了研究。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2