基于多线程的端口扫描工具设计

来源 :科学与财富 | 被引量 : 0次 | 上传用户:andywu2009
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:计算机网络给人们的生活带来了巨大便利,但互联网是一个面向公众的开放系统,对数据的保密性和信息的安全性考虑得并不完善,存在着诸多隐患,网络安全形势日趋严峻。在众多入侵检测技术当中,端口信息探测技术引起了越来越多人的关注。本文通过阐述端口扫描与多线程的原理,介绍了一种高效率的端口扫描探测工具。
  关键词:网络安全;入侵检测;端口扫描;多线程;
  对于网络入侵而言,攻击者在选定一个目标时,首先要获取该目标的一些基本信息,如其端口开放情况,再根据该端口的安全性,选择是否为注入木马的“后门”。在这个过程中,使用端口扫描就是其中最简单但却是最重要的步骤之一,它可以完成上述任务,为下一步攻击做准备。但是一般而言,单一或少量的端口扫描是没有意义的,原因是计算机端口数量较多,端口扫描必须在短时间内得到结果才有攻击意义。因此,就需要一种可以充分利用现有计算机资源的技术,那就是多线程。
  1 Winsock
  1.1 Winsock概述
  Winsock是从 Berkeley Sockets 扩展而来的,其在继承 Berkeley Sockets 的基础上,又进行了新的扩充。这些扩充主要是提供了一些异步函数,并增加了符合WINDOWS消息驱动特性的网络事件异步选择机制。Winsock由两部分组成:开发组件和运行组件。
  开发组件:Windows Sockets 实现文档、应用程序接口(API)引入库和一些头文件。
  运行组件:Windows Sockets 应用程序接口的动态链接库(WINSOCK.DLL)。
  1.2 Winsock原理
  在TCP/IP网络中两个进程间的相互作用模式是客户端/服务器模式。
  服务器流程如下:
  (1)打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求。
  (2)等待客户请求到达该端口。
  (3)接收到重复服务请求,处理该请求并发送应答信号。
  (4)返回第二步,等待另一客户请求。
  (5)关闭服务器。
  客户端流程:
  (1)打开一通信通道,并连接到服务器所在主机的特定端口。
  (2)向服务器发送服务请求报文,等待并接收应答;继续提出请求。
  (3)请求结束后关闭通信通道并终止。
  2 传输控制协议TCP
  2.1 TCP概述
  传输控制协议 TCP 是TCP/IP协议栈中的传输层协议,它通过序列确认及包重发机制,提供可靠的数据流发送和到应用程序的虚拟连接服务。与IP协议相结合,TCP组成了因特网协议的核心。
  2.2 TCP三次握手原理
  第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号。
  第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
  第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
  2.3 TCP的端口号
  TCP段结构中端口地址都是16比特,可以有在0到65535范围内的端口号。
  3 端口扫描技术
  3.1 端口扫描技术的概述
  端口扫描技术是指一种检查目标系统是否开放的TCP或UDP端口信息收集技术。它的具体方法是向目标机器的各个端口发送连接请求,根据返回的响应,判断在目标机器上是否开放了这些端口。通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。
  3.2 常见的端口扫描方式
  从TCP的概念中知道,TCP建立连接时有三次握手,基于这个建立过程我们可以得知,假如要扫描某一个TCP端口,可以向该端口发送一个SYN包,如果该端口处于打开状态,我们就可以收到一个SYN+ACK包,也就是说,如果收到SYN+ACK包,就可以判断目标端口处于打开状态,否则,目标端口处于关闭状态。这利用了TCP三次握手的前两次握手,这就是TCP端口扫描的基本原理。
  4 多线程
  4.1 多线程概念
  在计算机编程中,一个基本的概念就是同时对多个任务加以控制。许多程序设计问题都要求程序能够停下手头的工作,改为处理其他一些问题,再返回主进程。多线程指程序中多个片断同时执行,它们只要求将问题划分进入独立运行的程序片断中,使整个程序能更迅速地响应用户的请求。在一个程序中,这些独立运行的片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。
  4.2 互斥锁
  互斥锁用来保证一段时间内只有一个线程在执行一段代码。必要性显而易见:假设各个线程向同一个文件顺序写入数据,最后得到的结果一定是灾难性的。所以在编程中,引入了对象互斥锁的概念,用来保证共享数据操作的完整性。每个对象都对应于一个可称为“互斥锁”的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。对共享资源的访问, 要对互斥量进行加锁, 如果互斥量已经上了锁, 调用线程就会阻塞,所以在完成了对共享资源的访问后, 要对互斥量进行解锁。
  5 程序设计
  5.1 将多线程引入端口扫描
  通过引入互斥锁的原理,我们可以得知端口扫描并非是一个个进行,而是一次可以扫描多个端口(可在代码中自行设定数量)。这样做极大的提高了使用效率,尤其是用户期望扫描大量端口时。
  5.2 扫描代码的实现
  (1)首先通过调用WSAStartup()函数,使得应用程序或DLL才可进一步调用winsocket函数。
  (2)使用gethostbyname(),获取IP。
  (3)在主函数中使用CreatMUTEX()函数创建互斥变量,为多线程做准备。
  (4)定义一个SOCKADDR_IN hostinfo,用来存放目标地址IP和端口。
  (5)在扫描函数中调用connect()函数进行socket的连接。
  (6)在扫描函数中gethostbyneme()获取取得IP地址,存入hostent变量。
  (7)调用getmutex()函数,取得一个未扫描的端口,进行扫描。
  (8)使用SOCKET_STREAM创建基于TCP模式连接socket。
  (9)使用scoketclose()函数来关闭socket连接。
  (10)使用CloseHandle()清除互斥锁,关闭多线程。
  (11)调用WSACleanup()函数,进行扫尾工作。
  参考文献:
  [1]于帆,赵妮,王中生 .程序设计基础(C语言版).清华大学出版社 .2006年
  [2]黄超 .WINDOWS网络编程 .人民邮电出版社 .2003年
  [3]严蔚敏 吴伟民 .数据结构(C语言版).清华大学出版社 .2008年
  [4]徐宇杰 .TCP/IP协议深入分析 . 清华大学出版社 .2009年
  [5]叶树华,高志红 .网络编程实用教程 . 人民邮电出版社 .2006年
其他文献
摘 要:在制造供应链中,上游是核心企业的供应商,下游是顾客。顾客可能会向企业反馈他们关于产品使用的信息,也可能提供一些产品设计的想法,但是这些信息并不能作为生产过程的真正输入。制造商和服务提供商均会进行这类的市场研究。然而,对于旅游服务过程,顾客提供重要的输入(顾客自身,包括思想/身体和努力;所属物或者信息,包括服务规范),并参与到服务过程中,这就意味着服务供应链是双向的,顾客同样也是供应商,只是
摘 要:里尔克是存在主义的诗性先驱,在其诗歌创作的三个阶段,里尔克的诗歌艺术和诗学主张逐渐转变,他把对生命、死亡和存在的感悟书写于诗行中。其诗歌中蕴含的存在主义思想也对20世纪的存在主义哲学思想有着重大影响。  关键词:里尔克;存在;死亡  1里尔克创作的三个阶段  按文学史的划分,里尔克的诗歌创作可以被化分为三个阶段——早期、中期、晚期。早期的创作作品具有鲜明的布拉格地方色彩和波希米亚民族歌曲特
目前已分离出一些昆虫几丁质酶,并且已将昆虫几丁质酶基因导入到植物中以增强植物的抗虫性,及将几丁质酶嵌入到昆虫病原体内,增强昆虫病原体对害虫的为害。本文从小地老虎体
摘 要:固定资产的盘盈包括漏记固定资产、错记固定资产、外借固定资产、体外循环资金所购固定资产、销货方多发的固定资产以及其他情况的固定资产。每一种情况都有对应的不同账务处理方式。对企业固定资产盘盈账务的妥当处理,能够有效降低企业成本,并提高固定资产使用效率,从而实现固定资产投资的最大收益,对企业的长期发展有着十分重要的意义及作用。  关键词: 固定资产;盘盈 ;账务处理  随着全球经济一体化进程的加
摘 要:技术监督管理是电力企业管理的重要内容,随着经济的发展,用电量以及用电范围的增加,使其更加日显重要。基于此,本文对加强电力企业技术监督管理的措施及其建议进行了论述分析,旨在保障电力系统的安全运行。  关键词:电力企业;技术监督管理;措施;建议  电力企业技术监督管理水平直接体现着电力工业的科技发展程度,其可以促进电力科研的创新和进步,而后者又会反过来促进技术监督管理水平的进步,两者相互作用,
摘 要:本文首先探讨了微表处养护技术的概念和应用,并对微表处施工材料的选用和微表处养护技术进行研究,最后对微表处技术在道路工程施工中特殊情况的处理和养护工作注意事项展开分析,为微表处养护技术施工的工艺研究提供资料参考。  关键词:微表处;养护技术;施工工艺;研究  改革开放以来,我国经济发展迅猛。在对内对外经济交流和文化交流活动日益频繁的今天,公路网的建设已经成为左右经济发展的关键。近年来,随着电
摘 要:思想政治工作是打造积极向上的企业文化的有效手段,也是现代企业提升职工凝聚力的有效措施。在开展企业思想政治工作中,一定要重视人文关怀的作用,确保思想政治工作发挥作用。本文首先探讨了新时期企业思想政治工作的特点,并对如何在企业思想政治工作中实现人文关怀展开探究,为企业思想政治工作的开展提供资料参考。  关键词:人文关怀;企业;思想政治;运用  随着我国经济发展进入新时期,企业日益重视思想政治工
随着观念转变和技术革新,区域信息资源共享将成为图书馆赖以生存的基本模式和今后发展的主要方向。在论述了区域信息资源共享体系的含义和本质的同时,分析了目前存在的问题,
本文从含义阐述入手,从理论和现实角度阐述利益驱动机制构建依据,提出建立利益驱动机制的影响因素,结合美国大学档案馆社会服务较成熟的利益驱动机制,提出建立高校档案信息资
摘 要:本文从实际出发,针对于当前事业单位会计决算报表工作存在的问题,以及造成这种状况的原因展开了深入的分析,并实时提出了相应的完善策略,以供相关财务人员或理论研究者借鉴或参考。  关键词:事业单位;财务报表;研究分析  根据我国财务管理制度,企(事)业单位应进行预算管理,对应预算管理,每年或项目结束后,要根据预算表,对应实际支出,生成项目(年度)决算表。因此,一般情况下,12月份会计报表可以称决