端口扫描器的设计与实现---挥泪奉献-(1).doc

端口扫描器的设计与实现---挥泪奉献-(1).doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

端口扫描器的设计与实现

1.编程训练目的

扫描器是网络平安检测的一种重要工具。通过网络扫描,可以确定目标主机开放的端口,使用的操作系统,可以发现系统平安漏洞、弱口令等相关信息。因此,网络扫描技术是网络平安的根本技术之一,对维护系统平安性具有重要作用。通过对扫描器的编写,可以深入掌握TCP、ICMP协议原理与实现技术,掌握设计、实现网络平安应用程序和工具的根本方法,同时对黑客攻击的主要手段也有一个深入地了解,为进一步研究网络平安和网络管理技术大好根底。

2.扫描器实现的主要功能

本扫描器实现了:TCPConnect扫描,TCPSYN扫描,TCPFin扫描,TCPACK扫描及UDP端口扫描,这些扫描能够实现扫描特定IP地址范围内端口和扫描某IP地址范围内全部主机特定端口两种模式,并且SYN扫描能够区分端口开放、端口关闭和被防火墙过滤三种状态。

3.相关知识

1.Connect扫描

Connect扫描的原理非常简单,就是由扫描主机调用系统APIConnect尝试连接目的主机指定端口,如果Connect成功,意味着扫描主机与被扫描主机之间发生了一次完整的TCP三次握手建立连接过程,表示该端口开放,否那么代表该端口关闭。

Connect扫描非常简单,不需要程序编写者手动构造TCP数据包,但是Connect扫描效率非常低下,由于TCP协议是可靠协议,Connect系统调用并不会在尝试发送第一个SYN数据包未得到响应就放弃,而是会经过屡次尝试后才彻底放弃,所需时间较长,此外Connect失败会在系统中造成大量连接失败日志,容易被系统管理员发现。

2.SYN扫描

TCPSYN扫描是使用最为广泛的扫描方式,其原理就是像带扫描端口发送SYN数据包,如果能够收到SYN+ACK数据包,那么代表此端口开放,如收到RST数据包,那么证明此端口关闭,如未收到任何数据包,且确定该主机存在,那么证明该端口被防火墙等平安设备过滤。由于SYN扫描并不会完成TCP连接的三次握手过程,所以SYN扫描又叫做半开放扫描。

SYN扫描的最大优点就是速度,在Internet上,如果不存在防火墙,SYN扫描每秒钟可以扫描数千个端口,但是SYN扫描由于其扫描行为较为明显,容易被入侵检测系统发现,也容易被防火墙屏蔽,且构造原始数据包需要较高系统权限。

3.FIN扫描

FIN扫描是对某IP地址特定端口发送一个TCPFIN数据包给远端主机。如果主机没有任何反应,且能确定这个主机是存在的,那么主机正在监听这个端口;主机反应一个TCPRST回来,那么说明该主机是存在的,但是没有监听这个端口。

FIN扫描具有较好的隐蔽性,不会留下日志,但是其应用具有很大局限性:由于不同系统实现网络协议栈的细节不同,FIN扫描只能扫描Linux/UNIX系统,如果是Windows系统,无论端口开放与否都会直接返回RST数据包,无法对端口状态进行判断。

4.ACK扫描

这种扫描技术往往用来探测防火墙的类型,根据ACK位的设置情况可以确定该防火墙是简单的包过滤还是状态检测机制的防火墙。具体的方法是,发送一个只有ACK标志的TCP数据报给主机,如果主机反应一个TCPRST数据报来,那么这个主机是存在的。

5.UDP扫描

在大多数情况下,当向一个未开放的UDP端口发送数据时,其主机就会返回一个ICMP不可到达(ICMPPORTUNREACHABLE)的错误,因此大多数UDP端口扫描的方法就是向各个被扫描的UDP端口发送零字节的UDP数据包,如果收到一个ICMP不可到达的回应,那么那么认为这个端口是关闭的,对于没有回应的端口那么认为是开放的。

可是由于大局部系统都限制了ICMP过失报文的产生速度,所以针对特定主机的UDP大量端口扫描速度缓慢,此外由于UDP协议和ICMP协议都是不可靠协议,所以未收到回应可能由于数据包未送达造成,所以扫描程序需要针对同一端口屡次尝试后才能确定其状态。

4.程序开发运行环境

操作系统:WindowsXP;

开发工具:VisualC++6.0;

开发环境:WinPcap4.0;MicrosoftPlatformSDKforWindowsXPSP2

5.程序运行界面

1选择设备后的开始界面

2IP地址范围选择.1-10.22.41.10,端口范围选择1-100,扫描方法选择TCPConnect扫描,扫描结果如下列图。

3IP地址范围选择.1-10.22.41.10,端口范围选择1-100,扫描方法选择TCPFin扫描,扫描结果如下列图。

4IP地址范围选择.1-10.22.41.10,端口范围选择1-100,扫描方法选择TCP

文档评论(0)

181****7662 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档