毕业设计(论文)半打开端口扫描技术的实现.doc
《毕业设计(论文)半打开端口扫描技术的实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)半打开端口扫描技术的实现.doc(17页珍藏版)》请在三一办公上搜索。
1、半打开端口扫描技术的实现摘 要随着互联网的飞速发展,网络入侵行为日益严重,网络安全日益成为人们关注的焦点。端口扫描技术是网络安全扫描技术的重要技术之一。对目标系统进行端口扫描,是网络系统入侵者进入目标系统的第一步。本文对端口扫描技术的原理和应用进行了阐述,并设计了一个简单的基于windows平台上的端口扫描系统。在论文中介绍了半打开扫描中的SYN探测技术,分析了这种扫描技术实现的原理和特点。实际设计中采用了扫描安全性和可行性较好的SYN探测技术来实现端口扫描,并实现了端口列表自定义,扫描结果存储等几大模块化功能。最后结合当前的实际情况对端口扫描的未来发展方向提出了一点个人的看法。关键词:网络安
2、全;端口扫描;SYN探测The Implementation of a Port-scanning ProgramBased on Semi-opened Port TechnologyAbstractWith the quick development of the internet, network intrusion behavior becomes more and more serious; Network security becomes the focus which people pay attention to. Port-Scanning Technology is one
3、 of the most important technologies of the safe scanning on internet. The first step that network system intruders enter the target system is the port scanning of the system. This essay explains the principle and application of the port scanning technology, and then designs a simple port-scan system
4、 which bases on the Windows platform. The paper introduces the SYN probe technology of the semi-open scan technologies, analyzes its implementing principle, approach and characters. In the real design it use the SYN probe technology which has a better scanning security and feasibility to achieve the
5、 Port Scanning, then realize user-defined port list function, recording of the scanning result, and some other functional modules. At last, combined with the nowadays actual situation, the paper brings a few personal minds for the future direction of the development of the Port-Scanning.Key words: N
6、etwork security;Port scanning;SYN probe目 录论文总页数:22页1引言11.1端口扫描概述11.2端口扫描技术的国内外研究现状11.3端口扫描原理11.4端口扫描技术概要21.5SYN技术详解31.5.1TCP包探测原理31.5.2SYN包探测41.5.3分组时延41.6端口扫描实现方法42需求分析42.1端口扫描器的总体要求42.1.1设计背景42.1.2用户特点42.1.3软件开发及运行环境52.2端口扫描器的需求分析53端口扫描器的实现53.1功能模块简介53.2程序实现流程63.3SYN探测的实现63.4端口扫描功能模块153.4.1端口选择模块1
7、53.4.2目标IP选取模块163.4.3终止扫描173.4.4扫描结果存储模块174测试环境及结果184.1硬件环境184.2软件环境184.3测试结果185端口扫描技术的发展方向和趋势19结 论19参考文献201 引言1.1 端口扫描概述网络安全探测在网络安全中起着主动防御的作用,占有非常重要的地位。网络安全探测的所有功能都是建立在端口扫描的基础上,所以对端口扫描技术的研究有着非常重要的现实意义。每一个网络主机都相当于一个“房间”,黑客能否进入“房间”,取决于是否发现了打开的“门窗”。也就是说,能否入侵网络主机,或者网络主机是否安全,关键在于能否查出网络主机的系统信息。而端口是主机与外界通
8、讯交流的数据出入口,即是“门窗”。端口分为硬件端口和软件端口,所谓硬件端口又称为接口,包括:USB端口、串行端口、并行端口等。软件端口一般指网络中面向连接服务(TCP)和无连接服务(UDP)的通讯协议的端口。一个端口就是一个潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息。通过端口扫描,发现系统的安全漏洞。它使系统用户了解系统目前向外界提供了哪些服务,从而为系统用户管理网络提供了一种手段。1.2 端口扫描技术的国内外研究现状网络的安全状况取决于网络中最薄弱的环节,任何疏忽都可能引入不安全的因素,最有效的方法是定期对网络系统进行安全性分析,及时发现并修正存在的脆
9、弱性,保证系统的安全。国外安全扫描技术的历史可以追溯到20世纪90年代,当时因特网刚刚起步,但是在过去的十多年内,扫描技术飞速发展,迄今为止,其扫描技术己经非常完善,但是在全面性、隐蔽性和智能性上还有待提高。而安全扫描器从最初专门为UNIX系统而编写的一些只有简单功能的小程序发展到现在,己经出现了可以运行在多个操作系统平台上的、具有复杂功能的系统程序。国内的扫描技术是在国外扫描器基础上发展起来的。其中有些专门从事安全技术的公司包括绿盟科技、启明星辰等等。这些公司的扫描器以硬件为主,其特点是执行速度快,不像软件一样受到安装主机系统性能的限制。然而对于更多的基于主机的端口扫描器而言,简单、实用、可
10、靠才是它们的长处。1.3 端口扫描原理端口扫描通常指用同一个信息对目标主机的所有需要扫描的端口进行发送探测数据包即扫描,然后,根据返回端口的状态来分析目标主机端口是否打开,是否可用。端口扫描通过与目标主机的TCP/IP端口建立连接并请求某些服务,记录目标主机的应答,收集目标主机相关信息,从而发现目标主机某些内在的安全弱点,并且确定该端口什么服务正在进行并获取该服务的信息。端口扫描也可以通过捕获本地主机或服务器的流入流出IP数据包来监视本地主机的运行情况,它仅能对接收到的数据进行分析,帮助我们发现目标主机的某些内在的弱点,而不会提供进入一个系统的详细步骤。1.4 端口扫描技术概要端口扫描途径主要
11、是扫描器。扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器可以不留痕迹的发现远程服务器的各种TCP端口的分配及提供的服务和它们的软件版本。这就能让我们间接的或直观的了解到远程主机所存在的安全问题。扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种方法,可以搜集到很多关于目标主机的各种有用的信息。扫描器有三项功能:发现一个主机或网络的能力;一旦发现一台主机,有发现什么服务正运行在这台主机上的能力;通过测试这些服务,发现漏洞的能力。为了理解扫描以及它的工作原理,首先应对TCP的三次握手机制有所了解。TCP的报头包含一个序列号和一些起着特殊作用的标记位。
12、这里仅提到其中的四个标记位:SYN(同步),ACK(确认),RST(复位)和FIN(完成)。它们四个的作用与这里讨论的主题密切相关。当系统间建立连接和释放连接时,就会用到所谓的握手机制。本文中所提到的连接均指的是发生在两个IP地址间,有一定的端口号的连接。它的工作原理大致如下:握手的第一步,一台计算机首先请求和另外一台计算机建立连接,它通过发送一个SYN请求来完成,也即前面提到的SYN标记位置位。两台计算机间每条信息都有一个由发送方产生的序列号,序列号的使用使得双方知道他们之间是同步的,而且还可以起到丢失信息时或接收顺序错误时发送警告信息的作用。握手的第二步,接收到SYN请求的计算机响应发送来
13、的序列号,它会将ACK 标记位置位,同时它也提供自己的序列号。到现在为止,发起连接建立请求的计算机认为连接已经建立起来,然而对方却并不这样认为,对方还要等到它自己的序列号有了应答后才能确认连接建立起来。因此现在的状态称为“半连接”。如果发起连接请求的计算机不对收到的序列号做出应答,那么这个连接就永远也建立不起来,而正因为没有建立连接,所以系统也不会对这次连接做任何记录。握手的第三步,发起连接请求的计算机对收到的序列号作出应答,这样,两台计算机之间的连接才算建立起来。两台计算机释放连接时的情况与此类似:当一台计算机说没有更多的数据需要发送了,它发送一个FIN信号(将FIN标记位置位)通知另一端,
14、接收到FIN的另一端计算机可能发送完了数据,也可能没发送完,但它会对此作出应答,而当它真正完成所有需要发送的数据后,它会再发送一个自己的FIN 信号,等对方对此作出应答后,连接才彻底解除。1.5 SYN技术详解1.5.1 TCP包探测原理高效的探测方法需要解决3个问题:(1)用几个包判断主机和端口状态;(2)占用双方的资源少;(3)准确的分组时延计算方法。如果不建立完整的TCP连接,直接用TCP包来检测TCP应用服务端口的状态,会有效地提高探测效率和准确性。对于问题(1)和(2),可以借鉴TCP端口扫描技术,发送特殊TCP包解决。对于问题(3),可以在仿照Ping的方式在TCP某些字段或选项中
15、嵌入时间戳来解决。TCP端口扫描技术通过发送一些特殊的TCP包判断目标主机和端口状态。端口扫描通过扫描目标主机的大量端口,发现系统的漏洞。而服务器的地址和端口一般都是公开的,如果只探测服务器的工作端口,不用探测其余的端口,可以向工作端口发送特殊的TCP包,根据返回包判断目标状态。绝大多数TCP/IP协议栈的实现遵循以下原则:(1)当一个SYN或者FIN数据包到达一个关闭的端口,TCP丢弃数据包同时发送一个RST数据包。(2)当一个包含ACK的数据包到达一个监听端口时,数据包被丢弃,同时发送一个RST数据包。(3)当一个SYN数据包到达一个监听端口时,正常的三阶段握手继续,回答一个SYN|ACK
16、数据包。(4)当一个FIN数据包到达一个监听端口时,数据包被丢弃。“FIN行为”(关闭的端口返回RST,监听端口丢弃包),在URG和PSH标志位置位时同样要发生。所有的URG,PSH和FIN,或者没有任何标记的TCP数据包都会引起“FIN行为”。一般TCP端口扫描根据以上方式的发包收包来判断主机与端口状态。因为FIN包不能直接探测监听端口,所以通常选择使用SYN包或ACK包探测监听端口。一些防火墙出于安全的考虑,将发现和拦截ACK与FIN探测包,但不会拦截SYN包。通过网络上别人的一些测试和实验发现,对Internet中发布的60个HTTP代理服务器进行探测。其中,97%的服务器对SYN包有应
17、答,只有53%的服务器对ACK包有应答。实验发现对SYN包无应答的主机对任何TCP包都无应答。无论服务器有什么样的安全处理规则,根据方式(1)(2),SYN请求都会得到应答,所以选择SYN包作为探测包。1.5.2 SYN包探测第一步:客户端向服务器的工作端口发送SYN,服务器返回SYN|ACK包或RST包。如果客户端收到SYN|ACK,则可以肯定服务器活动和端口开启。收到RST包,则说明服务器活动但端口关闭,客户端不用执行第二步。如果超时无应答,则认为包丢失。第二步:因为不需要建立正常的TCP连接,所以对应答ACK包的服务器发送RST包,保证服务器端关闭半连接。因为只有少量报文对端口探测,不会
18、引起安全系统的报警。使用SYN包探测,可以检测服务器和端口的状态、分组时延、丢包率,又可以穿透防火墙,符合网络对安全的要求。1.5.3 分组时延假如用定时器来计算分组往返的时间,大量的定时器会造成资源极大消耗。虽然TCP协议规定了时间戳选项(类型8),用该选项中嵌入时间戳,服务器返回包的选项部分含有发送的时间戳。然而,在具体TCP/IP协议实现中,有些TCP/IP协议栈会忽略该选项,或者选项值置0,无法得到往返时间。如果能像Ping一样保证某一字段的数据在往返中不改变,就可以像Ping一样嵌入时间戳。但TCP的各字段不能保证往返数据一致。可以考虑用一种变通的方式嵌入时间戳。对于客户机发送的SY
19、N报文,设序号x,则服务主机返回报文的确认序号等于x+1。利用发送序号和确认序号的关系来传递时间戳。设置SYN包的发送序号为时间戳,收到的SYN|ACK包或RST包的确认序号减1即可得到发送包的时间戳。用收到包的时间减去发送时间戳即得到分组时延。1.6 端口扫描实现方法本文通过对基于半打开的端口扫描技术的实现来介绍了现在一些主流的端口扫描技术,通过对程序的开发加深了对端口扫描技术的认识。经过对端口扫描技术的了解和认识,本文采用隐蔽性较好基于主机的SYN刺探技术来实现。2 需求分析2.1 端口扫描器的总体要求2.1.1 设计背景该端口扫描器是面向普通用户使用,以期成为一个普通用户用来检测端口网络
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 半打 开端 扫描 技术 实现
链接地址:https://www.31ppt.com/p-3977875.html