首页
杂志网
当前位置:首页>>计算机技术>基于C#端口扫描器的实现>正文

基于C#端口扫描器的实现

来源:杂志发表网时间:2015-12-21 所属栏目:计算机技术

   摘要
由于网络技术的飞速发展,网络规模迅猛增长和计算机系统日益复杂,导致新的系统漏洞层出不穷。黑客或者计算机病毒要想顺利渗透入目标计算机中,不管使用何种技术手段,必然要寻找目标计算机的漏洞为自己打开入侵的大门。为了保证网络中计算机的安全性,必须采取主动策略,快速、及时、准确、安全的检测出网络中计算机及防火墙开放的和未开放的端口。计算机端口扫描技术就是这种主动防御策略实现的重要技术手段。
本课题通过端口扫描器的研究来提高对计算机安全的认识。该端口扫描器采用C#语言开发,在VC2005. net编译环境下通过测试。利用TCPconnect扫描原理,扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接,如果目标主机该端口有回复,则说明该端口开放。利用多线程技术实现了对一目标IP进行设定数目的端口扫描,对多IP段的特定端口进行扫描。此外,还利用委托技术实现对界面元素的刷新。
关键字:端口扫描器;IP段扫描;C#的多线程编程

引言
1.1网络安全
二十一世纪是信息化、网络化的世纪,信息是社会发展的重要资源。信息安全保障能力是一个国家综合国力、经济竞争实力和生存能力的重要组成部分,是世界各国在奋力攀登的制高点。网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行。网络安全包括技术领域和非技术领域两大部分:非技术领域包括一些制度、政策、管理、安全意识、实体安全等方面的内容;技术领域包括隐患扫描、防火墙、入侵检测、访问控制、虚拟专用网、CA认证、操作系统等方面的内容。这些技术的目标是保证信息的可控性、可用性、保密性、完整性、和不可抵赖性。
1.2安全扫描技术的产生及其发展趋势
随着Internet的不断发展,信息技术已成为促进经济发展、社会进步的巨大推动力。端口扫描技术是网络安全扫描技术一个重要的网络安全技术。与防火墙、入侵检测系统互相配合,能够有效提高网络的安全性。安全扫描是安全技术领域中重要的一类。通过扫描能自动检测远端或本地主机系统信息,包括主机的基本信息(如计算机名、域名、组名、操作系统型等)、服务信息、用户信息以及漏洞信息,它的重要性在于能够对网络进行安全评估,及时发现安全隐患,防患于未然。
任何技术的诞生都有深刻的思想基础。人们在对“安全”认识逐步深化的过程中,不断提出新的安全理论并付诸实践。在这个认识的过程中有两次重大的飞跃:第一次飞跃就是早在二十世纪八十年代,人们认为信息安全就是信息保密相应地,采取的保障措施就是利用加密机加密和基于计算机规则的访问控制。这个时期防火墙和入侵检测系统(IntrusionDetectionSystem,IDS)进一步发展起来,并在保护内部网络中起到了积极的作用。然而,九十年代中后期,黑客问题在一定程度上已成为网络世界的公害。对于防卫者,他必须防备入侵网络的全部手段。这使得保障网络安全愈加困难。传统的网络站点的安全保护模式是一种被动防御模式,难以实现对网络远程攻击的有效遏制。防火墙可以保护一个子网的边界,但是无法彻底防止黑客和抵制外部攻击。对于内部人员的攻击,防火墙就更加束手无策。一般情况下,入侵检测系统只能对己知的入侵进行报警,对于针对新漏洞发起的攻击也无能为力。
人们逐渐认识到问题的关键在于如何查找网络安全漏洞,堵住了系统安全漏洞,也就堵住了黑客和病毒的入侵。DanFarme:和WeitseVenema提出了划时代的隐患扫描思想一既然黑客可以查找系统的漏洞,并针对这些漏洞对系统进行攻击,那么隐患扫描程序就可以采取与黑客相同的方法找到系统的漏洞,并将它们加以修复,起到防御黑客的作用。第二次飞跃就是在被动防护的基础上,提出了主动防御的思想。这就促进了安全扫描技术的诞生。安全扫描的主动防御思想很快渗透到许多其他的安全技术中。例如传统的IDS的响应方式都是被动的,而2001年2月,美国国防部将主动网络防御技术列入了2001财年14项先进概念技术演示项目(AdvancedConceptTechnologyDemonstrations,ACTD),预计将在2005年完成,它们希望籍此取得网络防御的制高点,充分掌握信息战的主动权。安全扫描软件从最初的专门为UNIX系统编写的一些只具有简单功能的小程序,发展到现在,已经出现了多个运行在各种操作系统平台上的、具有复杂功能的商业程序。今后的发展趋势,我认为有以下几点:

● 使用插件(plugin)或者叫做功能模块技术。每个插件都封装一个或者多个漏洞的测试手段,主扫描程序通过调用插件的方法来执行扫描。仅仅是添加新的插件就可以使软件增加新功能,扫描更多漏洞。在插件编写规范公布的情况下,用户或者第三方公司甚至可以自己编写插件来扩充软件的功能。同时这种技术使软件的升级维护都变得相对简单,并具有非常强的扩展性。
● 使用专用脚本语言。这其实就是一种更高级的插件技术,用户可以使用专用脚本语言来扩充软件功能。这些脚本语言语法通常比较简单易学,往往用十几行代码就可以定制一个简单的测试,为软件添加新的测试项。脚本语言的使用,简化了编写新插件的编程工作,使扩充软件功能的工作变得更加容易,也更加有趣。
● 由安全扫描程序到安全评估专家系统。最早的安全扫描程序只是简单的把各个扫描测试项的执行结果罗列出来,直接提供给测试者而不对信息进行任何分析处理。而当前较成熟的扫描系统都能够将对单个主机的扫描结果整理,形成报表,能够并对具体漏洞提出一些解决方法,但对网络的状况缺乏一个整体的评估,对网络安全没有系统的解决方案。未来的安全扫描系统,应该不但能够扫描安全漏洞,还能够智能化的协助网络信息系统管理人员评估本网络的安全状况,给出安全建议,成为一个安全评估专家系统。
以上简要介绍了安全扫描的产生、发展和技术种类、以及发展趋势。尤其重点介绍了两种端口扫描技术及其优缺点。这些端口扫描技术理论都是通过计算机网络的基本理论知识和网络编程技术相结合来具体实现的。
1.3安全扫描技术分类
安全扫描工具是一把双刃剑,既可以被网络管理员利用,又可以被黑客利用。端口扫描技术和漏洞检测技术是安全扫描中的关键技术,下面分别介绍。

1.3.1 端口扫描技术
端口扫描属于安全探测技术范畴,对应于网络攻击技术中的网络信息收集技术。黑客能否进“房间”,关键在于他是否发现了打开的“门窗”。也就是说,关键是能否准确地收集系统信息。黑客要做的是构造目标网络中所有系统的地图,包括操作系统类型、版本号以及可以在其上运行的服务等。
黑客手工收集信息一般遵循以下步骤:
(1)获取主机名与IP地址:可以通过使用whois与nslookup等工具。
(2)获得操作系统类型信息:标识的最快方法就是试图telnet至该系统,从标识来判断。
(3) FTP信息:黑客将测试是否开放FIP服务,匿名FIP是否可用,若可用,则试图发掘更多的潜在问题。
(4) TCP/iJDP扫描:对于TCP, telnet可以用来试图与某一特定端口连接,这也是手工扫描的基本方法。从返回的标识可以得到更多的信息。从中再分析系统是否开放RPC服务、FINGER, RUSERS和RWHO等比较危险的服务。
这样,到这里为止,黑客完成了对远程系统信息的手工扫描。端口扫描软件就是要尽可能的自动地模拟黑客的扫描手段。
根据端口扫描的方法的不同,端口扫描技术分为五大类:
● 全开扫描:通过完整的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, ICMP echo。

1.3.2 漏洞检测技术
漏洞是硬件、软件或者是安全策略上的错误而引起的缺陷,从而可以使别人能够利用这个缺陷在系统未授权的情况下访问系统或者破坏系统的正常使用。漏洞产生的原因有三种:
● 网络协议漏洞
● 配置不当导致的系统漏洞
● 系统管理漏洞主要有两个方面:系统管理员对系统的设置存在安全漏洞。系统的部分功能自身存在安全漏洞隐患,应用软件系统安全的脆弱性。

●.漏洞检测就是漏洞信息收集以及对这些信息分析的过程。信息的收集是通过向目标发送特定的数据包实现的。信息分析是用收集到的信息匹配已知的规则来检测整个系统的安全性。漏洞检测有很多方法,可以根据使用软件、操作系统的版本来检测,也可以根据漏洞形成的原因、攻击原理来检测。隐患扫描技术与防火墙、入侵检测系统的互相配合,能够及时的发现漏洞,有效的防御黑客的进攻,极大增强网络的安全性。


点此咨询学术顾问 快人一步得到答案

SCI期刊问答

回到顶部