端口扫描工具的设计与实现

 2022-01-17 11:01

论文总字数:23400字

目 录

一、绪论 3

1.1 端口扫描的意义 3

1.2 主要工作内容 3

1.3 论文结构分析 3

二、端口扫描技术 3

2.1端口扫描的原理 3

2.2端口扫描技术 4

2.3 扫描工具的定义 6

2.4 常见端口号的说明 7

三、扫描器分析与设计 7

3.1 扫描器需求分析 7

3.2 扫描器用户分析 7

3.3 扫描方法选择 8

3.4 扫描器界面设计 8

3.4.1输入区域 8

3.4.2 扫描结果的输出界面 8

3.4.3 输入区域与结果显示区域的位置关系 8

3.4.4 菜单条的内容选择 9

3.4.5 左侧面板的界面设计 9

3.4.6 IP、PORT输入区设计 9

3.4.7 文字提示区 10

3.4.8 运行数据显示区 10

3.5 界面设计总结 10

四、算法描述 12

五、扫描工具结果与分析 17

5.1 获取局域网所有ip 17

5.2 IP、PORT设置 19

5.3 线程扫描进度显示 20

5.4 结果输出面板显示 21

5.5 菜单栏功能的实现 21

5.6 线程数量的确定 22

5.7 数据保存 22

5.8 退出提醒 22

六、结论 23

参考文献: 24

致谢 24

端口扫描工具的设计与实现

季广旭

, China

Abstract:With the continuous development of Internet technology, life has been unable to leave the network, but the network is not absolutely safe. Computer viruses are a very common threat. Virus like WannaCry virus witch can affect the global industry is very destructive, and WannaCry virus is attack by 445,137,138,139 port. Although the system patch can resist some attacks, but for some reason many systems is still old or not update, so we need some means to self-test. For many users, port is a completely strange thing, it is impossible to know how many port in their computer are open. So a quick and easy tool for scanning the computer port is particularly important. A simple and easy to operate interface tool is what most people need.

Key words:Port; TCP; Network Security;Scanning

绪论

1.1 端口扫描的意义

端口可以认为是计算机与外界其他计算机或者其他电子设备通讯,数据交换,交流的出入口。端口分为:虚拟端口、物理端口,其中虚拟端口是指计算机、路由器等一些网络设备内部不可见的端口。例如计算机中的80(HTTP)端口、21端口、8080(HTTP代理)端口等。物理端口又可以称为物理接口,是可见端口,如:USB端口、串行端口等[1]

现如今网络技术发展十分迅速,越来越多的计算机连接到了互联网中。在不法分子或者黑客的眼中,每一个虚拟端口都是一个潜在通信通道,或者是入侵的门或窗。他们会通过这些端口获取很多个人信息,或是偷取机密文件,从而造成用户的损失。那么就只有通过端口扫描去发现哪些端口是打开的。可以说端口扫描就是为了检测开放端口,从而预防未知攻击的一种手段。

1.2 主要工作内容

端口扫描工具的主要目的是为了帮助人们简单快捷的对目标端口进行扫描,满足预防未知攻击的需求。整个系统的开发经历了从软件需求分析,用户群体分析,系统设计,程序设计到最后的软件测试。其中设计并优化用户界面,提升用户体验,占绝大部分,因为市面上的工具参差不齐,要吸引用户去使用就只能在界面用户体验上去超越其他版本。

1.3 论文结构分析

本论文主要分为六个章节,主要内容如下:

第一章:绪论,主要介绍端口扫描的意义以及主要工作内容。

第二章:主要介绍现有的几种端口扫描技术以及他们各自的优缺点。

第三章:主要介绍软件需求分析,用户群体分析,软件系统设计。

第四章:主要介绍软件功能上的实现。结合之前的界面设计以最优的方式去达成作为一个工具用户所需的,不累赘,不多余,简洁明了的功能。

第五章:主要讲解软件实现的主要算法。

第六章:总结此次软件从用户群体分析,用户界面设计到功能实现的收获与感想。

二、端口扫描技术

2.1端口扫描的原理

端口扫描就是指对某个或是某些IP的一个或是多个端口进行其是否开放的确认。通过扫描结果可以知道一台计算机上都有哪些端口是开放的,进而猜测或是确认其所具有的服务,然后就可以通过这些服务的漏洞就可对目标计算机进行攻击,盗取其中的文件,造成非法破坏。其原理是当一个主机向目标服务器的某一个端口提出连接的请求时,如果对方该关口开放并绑定了对应的服务,就会应答,利用这个原理,如果对所有端口或自己选定的某个范围内的端口逐一建立连接,并记录下尝试连接所反返回的消息内容,通过查看记录就可以知道目标服务器都有哪些端口是开放的而这些端口又分别对应了什么服务。通过端口扫描,就可以搜集到很多关于目标主机有价值的信息。例如,对方是否提供FPT(21端口)服务、WWW(80端口)服务或其它服务[2]

2.2端口扫描技术

如图1,端口扫描大致分TCP SYN扫描、TPC connect扫描、秘密扫描和其他扫描四个大类,为如图1:

图1 扫描分类

  1. TCP connect() 扫描

首先是TCP扫描的这类技术是最容易让人理解的,接受的。接着其中的connect方法也让我们这些初学者能够从小处出发,对这一整个扫描技术进行探索。它的基本操作流程经过简单的分析可以得出来,一开始的准备是一台能够联网的PC,其操作系统并没有太多要求,只是利用系统自带的connect()的方法,接着就是寻找有待连接的计算机的端口。如果对方计算机的端口开放了外来连接,那么准备号的这台PC就能够实现与另外一台计算机的连接[3]。反之,如果对方端口没有开放,通俗点说就是目标端口不可用,就无法实现连接服务。其一个显著的优点就是,用户并不需要拥有权限就能实现该功能。只要是使用该台PC的用户都可以开启方法的调用。其二就是在速度方面,想象一下,需要连接的计算机比较多,我们这边只开一个方法对这些端口进行操作,那需要的时间就相当长了。但由于多个套接字的存在,使得系统可以使用这些,开启并加速,最终可以实现提速的效果。套接字的监测需要设置一个非阻塞I/O,能够在一个短时间内允许该项操作。但这种实现模式的缺点就很明显,容易被发现,并过滤掉。使得目标计算机上面的logs文件上出现各类成功连接或者失败的记录,让系统将其更快的关闭。如图2

图2 TCP connect()示意图

总结,优点:速度快、系统自带方法、不需要特殊权限。缺点:隐蔽性低,易被目标计算机发现,且会留下连接记录。

(2)TCP SYN扫描

这类扫描方法虽然也是在TCP技术的大支持下,但由于是半开放的,所以PC端相关操作并不需要完全连接在目标计算机端口上就能实现具体的操作。PC端用户只需要发送SYN的类似数据包,就能建立一个虚拟的连接。该连接会不断地等待并准备好开启操作,就类似于TCP部分的三握手实现其连接的操作过程。只要获得到一个SYN或者ACK的返回记录就能知道此端口是否处于开启状态。如果接收到的是一个RST类型的信号记录,那么就表明此端口是关闭状态。但是只要收到一个SYN或者ACK信号记录,则PC端相应的操作就必须跟着再发送一个RST类型的信号,来实现将连接关闭的操作。这种方法实现的扫描技术的突出点容易让人接受,更人性化一点,它一般情况下并不会在有待连接的目标计算机上面留下一些信息。但可想而知运用这种方法的缺点是进行操作的用户必须要有相应的root权限才能够在PC端构建起自己所需的SYN相关的数据包[4]。如图3

图3 TCP SYN示意图

总结,优点:不需要完全的连接,不会在目标计算机留下信息。缺点:需要特殊的权限,易被目标计算机的防火墙所阻挡。

(3)NULL扫描

其原理是发送一个没有标志位的数据包给端口,正常通信中至少要有一个标志位,若端口关闭时收到没有标志位的数据,主机应该舍弃这个字段并发送一个RST数据包,否则就不会相应该数据的发送方。就是说当端口关闭则响应并发送RST数据包,若端口开放就不做任何反应。但这种方式有一个局限性,该方法要求主机必须遵从FRC793标准,但是windows系统是不遵循该标准的,只有基于Unix的操作系统是遵从这个标准的,故该方法一般只用于判别对方的系统类型。如图4和图5

图4 NULL扫描端口开放时的示意图 图5 NULL扫描端口关闭时的示意图

总结,缺点:响应与操作系统有关。

(4)FIN扫描

与NULL扫描类似,但FIN指示的是TCP回话的结束。同样是在端口关闭时没有响应而在端口开放是会收到返回的RST数据[5]

(5)ACK扫描

剩余内容已隐藏,请支付后下载全文,论文总字数:23400字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;