毕业设计(论文)-基于C语言的端口扫描的实现.doc
《毕业设计(论文)-基于C语言的端口扫描的实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于C语言的端口扫描的实现.doc(18页珍藏版)》请在三一文库上搜索。
1、基于基于 C C 语言的端口扫描的实现语言的端口扫描的实现 摘摘 要要 由于网络技术的飞速发展,网络规模迅猛增长和计算机系统日益复杂,导致 新的系统漏洞层出不穷。黑客或者计算机病毒要想顺利渗透入目标计算机中,不 管使用何种技术手段,必然要寻找目标计算机的漏洞为自己打开入侵的大门。为 了保证网络中计算机的安全性,必须采取主动策略,快速、及时、准确、安全的 检测出网络中计算机及防火墙开放的和未开放的端口。计算机端口扫描技术就 是这种主动防御策略实现的重要技术手段。 本课题通过端口扫描器的研究来提高对计算机安全的认识。该端口扫描器 采用 C#语言开发,在 VC 编译环境下通过测试。利用 TCP c
2、onnect 扫 描原理,扫描主机通过 TCP/IP 协议的三次握手与目标主机的指定端口建立一次 完整的连接,如果目标主机该端口有回复,则说明该端口开放。利用多线程技 术实现了对一目标 IP 进行设定数目的端口扫描,对多 IP 段的特定端口进行扫 描。此外,还利用委托技术实现对界面元素的刷新。 关键字关键字:端口扫描器;IP 段扫描;C#的多线程编程 The Implement of Port Scanner Based on C# Abstract Along with the rapid development of network technology, the more complic
3、ation of computer and the more enlarged size of Internet, the more leaks may existed in new system. When computer virus or hacker wants to invade to a system or host, no matter what means their take, it is obvious that they have to scan the system leaks at first. So as far as system security is conc
4、erned, no matter in Internet or Intranet, you should actively adopt a strategy to detect the state of the ports on your host computer or firewall. Computer port-scanning technology is one of important means to realize positive defense. This topic focuses on the study of port scanner to improve under
5、standing of computer security. The port scanner is developed and tested by C# in VC environment. By using TCP connect scaning technique, the scanning host use TCP / IP three-shook hands protocol to establish a complete link with the target through the specified host ports. If the port of the specif
6、ied host replies, it shows that the port is opened. The scanner utilizes multi-thread to implement port scanning for multiple target IP addresses at a given time or scanning a specified port in multiple different IP segments. Keywords: Port Scanner; IP Scanner; C # Multithreaded Programming 目目 录录 论文
7、总页数:20 页 1 引言 1 1.1 网络安全 1 1.2 安全扫描技术的产生及其发展趋势 1 1.3 安全扫描技术分类 2 1.3.1 端口扫描技术 .3 1.3.2 漏洞检测技术 .3 2 端口扫描4 2.1 端口的基本概念 4 2.1.1 端口的简介 .4 2.1.2 端口的分类 .4 2.2 端口扫描技术 5 2.2.1 开放扫描技术 .5 2.2.2 半开放扫描技术 .6 2.3 隐蔽扫描技术 7 2.4 其扫描他技术 8 3 系统分析与设计8 3.1 说明 8 3.2 基于 C#端口扫描器的系统分析与设计9 3.3 基于 C#端口扫描器的期望9 3.4 端口扫描器的实现与分析 9
8、 3.5 关键技术介绍 .10 4 端口扫描器的实现.10 4.1 端口扫描器的代码及说明 .10 4.1.1 多线程核心代码及说明 10 4.1.2 委托技术的代码及说明 10 4.1.3 扫描功能实现的代码及说明 11 4.2端口扫描界面及功能介绍14 5 扫描技术的市场和前景展望.17 结 论.17 参考文献.18 致 谢.19 声 明.20 第 1 页 共 20 页 1 1 引言引言 1.11.1 网络安全网络安全 二十一世纪是信息化、网络化的世纪,信息是社会发展的重要资源。信息 安全保障能力是一个国家综合国力、经济竞争实力和生存能力的重要组成部分, 是世界各国在奋力攀登的制高点。网络
9、安全是指网络系统的硬件、软件及其系 统中的数据受到保护,不因偶然的或者恶意的原因而遭到破坏、更改、泄露, 系统连续可靠正常地运行。网络安全包括技术领域和非技术领域两大部分:非技 术领域包括一些制度、政策、管理、安全意识、实体安全等方面的内容;技术领 域包括隐患扫描、防火墙、入侵检测、访问控制、虚拟专用网、CA 认证、操作 系统等方面的内容。这些技术的目标是保证信息的可控性、可用性、保密性、 完整性、和不可抵赖性。 1.21.2 安全扫描技术的产生及其发展趋势安全扫描技术的产生及其发展趋势 随着 Internet 的不断发展,信息技术已成为促进经济发展、社会进步的巨 大推动力。端口扫描技术是网络
10、安全扫描技术一个重要的网络安全技术。与防 火墙、入侵检测系统互相配合,能够有效提高网络的安全性。安全扫描是安全 技术领域中重要的一类。通过扫描能自动检测远端或本地主机系统信息,包括 主机的基本信息(如计算机名、域名、组名、操作系统型等)、服务信息、用户 信息以及漏洞信息,它的重要性在于能够对网络进行安全评估,及时发现安全 隐患,防患于未然。 任何技术的诞生都有深刻的思想基础。人们在对“安全”认识逐步深化的 过程中,不断提出新的安全理论并付诸实践。在这个认识的过程中有两次重大 的飞跃:第一次飞跃就是早在二十世纪八十年代,人们认为信息安全就是信息保 密相应地,采取的保障措施就是利用加密机加密和基于
11、计算机规则的访问控制。 这个时期防火墙和入侵检测系统(Intrusion Detection System,IDS )进一步发 展起来,并在保护内部网络中起到了积极的作用。然而,九十年代中后期,黑 客问题在一定程度上已成为网络世界的公害。对于防卫者,他必须防备入侵网 络的全部手段。这使得保障网络安全愈加困难。传统的网络站点的安全保护模 式是一种被动防御模式,难以实现对网络远程攻击的有效遏制。防火墙可以保 护一个子网的边界,但是无法彻底防止黑客和抵制外部攻击。对于内部人员的 攻击,防火墙就更加束手无策。一般情况下,入侵检测系统只能对己知的入侵 进行报警,对于针对新漏洞发起的攻击也无能为力。 人们
12、逐渐认识到问题的关键在于如何查找网络安全漏洞,堵住了系统安全 漏洞,也就堵住了黑客和病毒的入侵。Dan Farme:和 Weitse Venema 提出了划 第 2 页 共 20 页 时代的隐患扫描思想一既然黑客可以查找系统的漏洞,并针对这些漏洞对系统 进行攻击,那么隐患扫描程序就可以采取与黑客相同的方法找到系统的漏洞, 并将它们加以修复,起到防御黑客的作用。第二次飞跃就是在被动防护的基础 上,提出了主动防御的思想。这就促进了安全扫描技术的诞生。安全扫描的主 动防御思想很快渗透到许多其他的安全技术中。例如传统的 IDS 的响应方式都 是被动的,而 2001 年 2 月,美国国防部将主动网络防御
13、技术列入了 2001 财年 14 项先进概念技术演示项目(Advanced Concept Technology Demonstrations,ACTD),预计将在 2005 年完成,它们希望籍此取得网络防御的 制高点,充分掌握信息战的主动权。 安全扫描软件从最初的专门为 UNIX 系统编写的一些只具有简单功能的小程 序,发展到现在,已经出现了多个运行在各种操作系统平台上的、具有复杂功 能的商业程序。今后的发展趋势,我认为有以下几点: 使用插件(plugin)或者叫做功能模块技术。每个插件都封装一个或者多 个漏洞的测试手段,主扫描程序通过调用插件的方法来执行扫描。仅仅是添加 新的插件就可以使软
14、件增加新功能,扫描更多漏洞。在插件编写规范公布的情 况下,用户或者第三方公司甚至可以自己编写插件来扩充软件的功能。同时这 种技术使软件的升级维护都变得相对简单,并具有非常强的扩展性。 使用专用脚本语言。这其实就是一种更高级的插件技术,用户可以使用 专用脚本语言来扩充软件功能。这些脚本语言语法通常比较简单易学,往往用 十几行代码就可以定制一个简单的测试,为软件添加新的测试项。脚本语言的 使用,简化了编写新插件的编程工作,使扩充软件功能的工作变得更加容易, 也更加有趣。 由安全扫描程序到安全评估专家系统。最早的安全扫描程序只是简单的 把各个扫描测试项的执行结果罗列出来,直接提供给测试者而不对信息进
15、行任 何分析处理。而当前较成熟的扫描系统都能够将对单个主机的扫描结果整理, 形成报表,能够并对具体漏洞提出一些解决方法,但对网络的状况缺乏一个整 体的评估,对网络安全没有系统的解决方案。未来的安全扫描系统,应该不但 能够扫描安全漏洞,还能够智能化的协助网络信息系统管理人员评估本网络的 安全状况,给出安全建议,成为一个安全评估专家系统。 以上简要介绍了安全扫描的产生、发展和技术种类、以及发展趋势。尤其 重点介绍了两种端口扫描技术及其优缺点。这些端口扫描技术理论都是通过计 算机网络的基本理论知识和网络编程技术相结合来具体实现的。 1.31.3 安全扫描技术分类安全扫描技术分类 安全扫描工具是一把双
16、刃剑,既可以被网络管理员利用,又可以被黑客利 第 3 页 共 20 页 用。端口扫描技术和漏洞检测技术是安全扫描中的关键技术,下面分别介绍。 1.3.11.3.1 端口扫描技术端口扫描技术 端口扫描属于安全探测技术范畴,对应于网络攻击技术中的网络信息收集 技术。黑客能否进“房间” ,关键在于他是否发现了打开的“门窗” 。也就是说, 关键是能否准确地收集系统信息。黑客要做的是构造目标网络中所有系统的地 图,包括操作系统类型、版本号以及可以在其上运行的服务等。 黑客手工收集信息一般遵循以下步骤: (1)获取主机名与 IP 地址:可以通过使用 whois 与 nslookup 等工具。 (2)获得操
17、作系统类型信息:标识的最快方法就是试图 telnet 至该系统,从 标识来判断。 (3) FTP 信息:黑客将测试是否开放 FIP 服务,匿名 FIP 是否可用,若可用, 则试图发掘更多的潜在问题。 (4) TCP/iJDP 扫描:对于 TCP, telnet 可以用来试图与某一特定端口连接, 这也是手工扫描的基本方法。从返回的标识可以得到更多的信息。从中再分析 系统是否开放 RPC 服务、FINGER, RUSERS 和 RWHO 等比较危险的服务。 这样,到这里为止,黑客完成了对远程系统信息的手工扫描。端口扫描软 件就是要尽可能的自动地模拟黑客的扫描手段。 根据端口扫描的方法的不同,端口扫
18、描技术分为五大类: 全开扫描:通过完整的 TCP 连接探查端口。主要有 TCP connect,反向 dent. 半开扫描:通过不完整的 TCP 连接探查端口。主要有 SYN flag,IP ID header “dumb scan“. 隐蔽扫描(stealth scanning):利用 FIN 字段来探查端口。不包含标准 三次握手的任一部分。主要有 SMACK flag, ACK flags, NULL flags,ALL flags (XMAS)。 IP 段扫描(sweeps scanning):同时对一个网段进行扫描。主要有 TCP echo, UDP echo, TCP SYN, IC
19、MP echo。 1.3.21.3.2 漏洞检测技术漏洞检测技术 漏洞是硬件、软件或者是安全策略上的错误而引起的缺陷,从而可以使别 人能够利用这个缺陷在系统未授权的情况下访问系统或者破坏系统的正常使用。 漏洞产生的原因有三种: 网络协议漏洞 第 4 页 共 20 页 配置不当导致的系统漏洞 系统管理漏洞主要有两个方面:系统管理员对系统的设置存在安全漏洞。 系统的部分功能自身存在安全漏洞隐患,应用软件系统安全的脆弱性。 .漏洞检测就是漏洞信息收集以及对这些信息分析的过程。信息的收集是 通过向目标发送特定的数据包实现的。信息分析是用收集到的信息匹配已知的 规则来检测整个系统的安全性。漏洞检测有很多
20、方法,可以根据使用软件、操 作系统的版本来检测,也可以根据漏洞形成的原因、攻击原理来检测。隐患扫 描技术与防火墙、入侵检测系统的互相配合,能够及时的发现漏洞,有效的防 御黑客的进攻,极大增强网络的安全性。 2 2 端口扫描端口扫描 2.12.1 端口的基本概念端口的基本概念 2.1.12.1.1 端口的简介端口的简介 “随着计算机网络技术的发展,原来物理上的接口(如键盘、鼠标、网卡、 显示卡等输入/输出接口)已不能满足网络通信的要求,TCP/IP 协议作为主流网 络操作系统的核心协议很好的解决了这个通信难题。因为在 TCP/IP 协议中引入 了一种称之为“Socket(套接字)“应用程序接口。
21、有了这样一种接口技术,一台计 算机就可以通过软件的方式与任何一台具有 Socket 接口的计算机进行通信。端 口在计算机编程上也就是“Socket 接口“。 正是有了这些端口,我们才可以把一台计算机既作 Web 服务器又作 FTP 服务 器,因为各种服务采用不同的端口分别提供不同的服务,通常 TCP/IP 协议规定 Web 采用 80 号端口,FTP 采用 21 号端口等。这样,通过不同端口,计算机就可以 与外界进行互不干扰的通信。计算机的端口在计算机内部是由 16 位二进制书来 表示的,因此计算机的端口最大可以有 65535 个,但是实际上常用的端口才几十 个,由此可以看出未定义的端口相当多
22、。这是很多黑客程序都可以采用某种方法,定 义出一个特殊的端口来达到入侵的目的的原因所在。为了定义出这个端口,就要 依靠某种程序在计算机启动之前自动加载到内存,强行控制计算机打开特殊的端 口。这个程序就是“后门“程序,这些后门程序就是常说的木马程序。 2.1.22.1.2 端口的分类端口的分类 端口的分类根据其参考对象不同有不同划分方法,如果从端口的性质来分, 通常可以分为以下三类: (1)公认端口:这类端口也常称之为“常用端口“。这类端口的端口号从 0 到 1024,它们紧密绑定于一些特定的服务。通常这些端口的通信明确表明了某种服 第 5 页 共 20 页 务的协议,这种端口是不可再重新定义它
23、的作用对象。例如:80 端口实际上总是 HTTP 通信所使用的,而 23 号端口则是 Telnet 服务专用的。这些端口通常不会 被黑客程序利用。 (2)注册端口:端口号从 1025 到 49151。它们松散地绑定于一些服务。也是 说有许多服务绑定于这些端口,这些端口同样用于许多其他目的。这些端口多数 没有明确的定义服务对象,不同程序可根据实际需要自己定义。 (3)动态和/或私有端口:端口号从 49152 到 65535。理论上,不应把常用服 务分配在这些端口上。实际上,有些较为特殊的程序,特别是一些木马程序就非 常喜欢用这些端口,因为这些端口常常不被引起注意,容易隐蔽。 如果根据所提供的服务
24、方式的不同,端口又可分为面向连接的“TCP 协议端 口“和面向无连结的“UDP 协议端口“两种,参见表 1 和表 2。 表 1 常见 TCP 公认端口号 服务名称 端口号 说明 FTP21文件传输服务 TELNET23远程登录服务 HTTP80网页浏览服务 POP3110邮件服务 SMTP25简单邮件传输服务 SOCKS1080代理服务 表 2 常见 UCP 公认端口号 RPC111远程调用 SNMP161简单网络管理 TFTP69简单文件传送 2.22.2 端口扫描技术端口扫描技术 端口扫描在网络扫描中大约占了 96%,UDP (User Datagram Protoc 服务次 之,占 3.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 语言 端口扫描 实现
链接地址:https://www.31doc.com/p-3282928.html