1、98漏洞扫描涵盖内容和方法较多,本文着重分析远程主机发现扫描的原理和端口开放扫描的原理。端口开放扫描就是发现目标主机给定端口是否开放,常用open表示开放,closed表示关闭。端口开放意味着目标主机提供相应的网络服务,可以和远程端口进行通信。不必要开放的端口如果打开,会给远程主机提供通信接口,带来安全隐患。本文设计与开发的漏洞扫描软件主要包括两方面功基于TCP的主机发现和TCP端口扫描过程相似,不同点在于用途不同。例如:发送TCP连接请求数据包,如果收到确认包,表明目标主机在线。该方法实现尚可,但需要选定一个端口号,不过该端口号可以随机选取,2,3对主机发现的结论不会带来影响。3 漏洞扫描软
2、件开发1 引言2.1 远程主机发现扫描本文探讨了主机发现技术和端口扫描技术,基于Python语言加以实现,并进行了远程主机的扫描测试,测试结果表明:本文设计的漏洞扫描软件可以发现给定网段的主机在线情况,同时进一步提供主机的端口开放情况,为信息系统的安全配置提供指导,并进一步提升了信息系统安全性能。2 漏洞扫描原理分析端口开放扫描可分为TCP端口开放扫描和UDP端口开放扫描。TCP端口开放扫描方法主要依赖TCP协议的三次握手过程开展,包括:TCP全连接扫描、TCP隐蔽式扫描、TCP FIN扫描、TCP NULL扫描和TCP XMAS扫描。UDP端口开放扫描方式相对单一,当扫描端口关闭时,会收到端
3、口不可达差错报文,据此进行判断。远程主机发现扫描就是找出互联网中在线的主机,常用up表示在线,down表示不在线。远程主机发现的方法较多,主要包括:基于ICMP问答的主机发现和基于TCP的主机发现。随着互联网应用的不断拓展和延伸,信息系统安全问题也日益突出。导致这一问题产生的主要原因包括:人为的有意的破坏行为和系统自身存在的缺陷。其中,系统自身存在的缺陷是导致信息系统产生安全问题的内部根源。为了有效防御各类网络攻击,提升信息系统的安全性,定期开展漏洞扫描至关重要。目前,市场上可用的漏洞扫描软件种类较多,例如:针对端口开放情况的扫描工具、针对应用服务漏洞的扫描工具、针对弱口令的漏洞扫描工具等。各
4、类工具的开发语言和实现细节不尽相同,运行环境也有具体的要求。开发和设计一款符合自身需要的扫描软件,不仅利于信息系统的安全防御工作,同时还利于扫描软件的1优化和升级,为信息系统的安全进一步提供保障。基于ICMP问答的主机发现和ping程序的原理相似,是向目标主机发送ICMP请求应答数据包,如果目标主机在线,就会反馈ICMP应答数据包;如果目标主机不在线,就不会收到应答数据包。该方法实现简单,但也有不足,例如:目标主机开启了ping拦截,该方法无法获得在线信息。2.2 端口开放扫描作者简介:尹江涛(2000),男,山西临汾人,本科,研究方向为软件设计和网络安全。摘 要:随着互联网应用的不断延伸,信
5、息系统安全问题也日益突出。为提升信息系统的安全性,定期开展漏洞扫描至关重要。着重探讨了主机发现技术和端口扫描技术,并进行了编程实现。通过软件的测试运行,可以发现给定网段的主机在线情况和端口开放情况,为信息系统的安全配置提供了基础数据。关键词:Python模块;主机发现技术;端口扫描技术中图分类号:TP309 文献标识码:A 文章编号:008-6609(2023)01-0098-03基于Python的漏洞扫描软件设计(山西应用科技学院信息工程学院,山西 太原 030062)尹江涛电脑与电信1DOI:10.15966/ki.dnydx.2023.z1.016993.2 远程主机发现扫描模块开发能:
6、一方面,能对给定网段进行主机发现;另一方面,对在线主机能够进一步进行端口开放扫描。在设计时,选用了目前较为流行的解释型脚本语言Python。Python作为解释型脚本语言,近年来非常流行,在网络安全领域的应用也越来越多。例如:socket模块可4以提供网络通信服务、域名解析服务等;requests模块可以提供Web服务。本文所要开发的漏洞扫描软件,根据扫描模块功能需求,选用了scapy模块。使用scapy模块中的相关方法,可以轻松地生成网络协议数据包,还可根据通信需要,修改协议字段,满足各类通信的需求。3.1 Python模块简介主要实现代码如下:if ans TCP.flags=SA:主要实
7、现代码如下:print(192.168.1.1 is down)方法二:基于TCP协议实现主机发现 print(192.168.1.1 is up)主要实现代码如下:tcp=IP(dst=192.168.1.1)/TCP(dport=80,flags=S)if icmpData:else:ans=sr1(tcp,timeout=3,verbose=False)if ans TCP.flags=SA:方法一:基于ICMP协议实现主机发现 print(192.168.1.1 is up)else:print(192.168.1.1 is down)icmpData=sr1(IP(dst=192.1
8、68.1.1,id=78)/ICMP(id=188,seq=1)/bhello)3.3 端口开放扫描模块开发端口开放扫描模块可针对TCP和UDP两类端口进行。基于TCP的端口扫描方法较多,本文实现了TCP的隐蔽式扫描,在收到SYN+ACK的应答包后,再发送一个RST+ACK的数据包,以断开连接。主要实现代码与基于TCP的主机发现相似,输出语句要进行修改,参考如下:print(port 80 is open)远程主机发现扫描模块采用了两种发现方法。else:该方法使用scapy模块产生TCP协议数据包,设置目标端口号和SYN标志位,使其成为一条TCP连接数据包。注意修改IP协议的目的地址,完成后
9、使用sr1方法发送,如果应答为TCP协议,且SYN+ACK标志位有效,说明主机在线。该方法使用scapy模块产生ICMP协议数据包,设置协议包类型为“请求应答”,根据给定网段修改IP协议的目的地址。字段修改完成后,使用sr1方法发送协议数据包,根据响应结果分析目标主机是否在线。print(port 80 is closed)基于UDP的端口扫描实现较为简单,向目标主机发送UDP数据包,等待目标主机的应答,如果收到了ICMP的差错报文,说明端口不开放。else:4.3 测试结果(2)远程主机在线扫描测试udp=sr1(IP(dst=192.168.1.1)/UDP(dport=53)4 漏洞扫描
10、软件运行测试软件代码在Windows10系统上开发完成。主机采用无线网卡接入互联网,本地网段地址为:192.168.1.0。使用Python解释器进行解释运行。端口扫描采用了端口列表方式,由用户输入,每次从列表中取出一个端口进行扫描,最终输出扫描的结果。经过主机在线扫描,找到网段内在线主机数,软件输出了扫描时的结果,部分输出见图1所示。从图1中可以看出,本网段在线主机有两台,分别为192.168.1.1和192.168.1.10。print(port 53 is open)print(port 53 is closed)在运行测试时,将主机发现的目标IP改为网段192.168.1.0/255,
11、依次取出每个IP发送扫描数据包,进行主机在线发现扫描。以远程主机的域名扫描为例,使用socket模块将域名转为IP地址,再进行扫描,可得到扫描结果。4.1 测试环境4.2 测试过程if udp:(1)本网段主机扫描测试192.168.1.1is up.192.168.1.2is down.192.168.1.3is down.192.168.1.4is down.192.168.1.5is down.192.168.1.6is down.192.168.1.7is down.192.168.1.250is down.192.168.1.251is down.192.168.1.252is do
12、wn.192.168.1.253is down.192.168.1.254is down.192.168.1.255is down.192.168.1.1 192.168.1.10图1 主机发现扫描结果电脑与电信信息系统的定期扫描至关重要,通过软件的测试与完善,可用于周期扫描过程,对提升目标系统的安全性提供支撑。1颜天佑,卢灏.基于端口扫描的变电站主机漏洞检测系统J.信息安全研究,2022,8(2):182-189.在主机在线扫描结果的基础上,对在线主机进行端口开放扫描,端口由用户输入,运行程序后,输出被扫描端口的开放情况。本文测试时,输入了80端口和443端口。程序的部分输出见图2所示。4.
13、4 测试注意项在发送数据包时,由于要等待应答数据,对往返时间的设置很重要,如果该值过小,会导致还未收到应答,就给出结论,影响程度的准确性。如果该值过大,会导致程序响应慢。所以,在实际的应用中,要根据实际需求做好相关参数的调整。本文主要探讨了主机发现扫描和端口扫描的技术原理,基于Python语言进行了程序的实现。通过本地和远程扫描进行了软件的扫描功能测试。该程序可将被扫描主机是否在线一一输出,并可对给定的端口进行开放情况扫描。3孟彬,智云垒,钟翡.基于Python的端口扫描技术研究J.网络安全技术与应用,2021(1):42-43.程序的运行结果基本准确,运行过程基本稳定。但在相关参数的配置方面
14、,还需要通过更多的测试和结果分析加以调整,以进一步提升软件的质量。在进行扫描测试时,仅限本网段的自行扫描测试和被授权网站的扫描测试,不可随意使用软件进行非授权扫描。2郑俊华,武娟红.大数据分析的漏洞检测方案设计J.山西电子技术,2020(1):45-47.4尚博.Python在网络空间安全中的应用J.电子技术,2022,51(7):40-41.(3)端口开放情况扫描测试5 结语参考文献:Design of Vulnerability Scanning Software Based on PythonAbstract:With the continuous extension of Intern
15、et applications,information system security issues have become increasingly prominent.In order to improve the security of the information system,it is essential to conduct regular vulnerability scanning.This paper focuses on the host discovery technology and port scanning technology,and carries out
16、programming.Through the test run of the software,the online host and port opening of the given network segment can be found,providing basic data for the security configuration of the information system.Keywords:Python model;host discovery technology;port scanning technologyYIN Jiang-tao(Shanxi College of Applied Science and Technology,Taiyuan 030062,Shanxi)192.168.1.1 is up,it s 80 is opne192.168.1.1 is up,it s 443 is closed图2 端口开放扫描结果100电脑与电信