端口扫描程序的设计与实现
- 格式:doc
- 大小:94.50 KB
- 文档页数:6
Nmap简单扫描过程目录一、主机发现(HOST DISCOVERY) (2)1.探测局域网内活动主机 (2)二、端口扫描 (4)1.半开放扫描(TCP SYN S CANNING) (4)2.TCP CONNECT SCANNING (4)3.TCP ACK SCANNING (4)4.TCP FIN/X MAS/NULL SCANNING (4)5.UDP SCANNING (4)6.其他方式 (4)三、版本侦测 (4)1.版本侦测主要分为以下几个步骤: (5)四、操作系统侦测 (5)1.实现方式如下 (5)一、主机发现(Host Discovery)用于发现目标主机是否在线(Alive,处于开启状态)。
原理:与Ping命令类似,发送探测包到目标主机,如果收到回复,那么说明目标主机是开启的。
1.探测局域网内活动主机例子1:扫描局域网192.168.1.100-192.168.1.120范围内哪些IP的主机是活动的。
命令:nmap –sn 192.168.31.100-254Starting Nmap 6.46 ( ) at 2015-06-01 17:07 CSTNmap scan report for 192.168.31.101Host is up (0.00028s latency).MAC Address: 00:0C:29:BD:8B:91 (Super Micro Computer)Nmap scan report for 192.168.31.102Host is up (0.00088s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.110Host is up (0.00047s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.157Host is up (0.00052s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.158Host is up (0.00096s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.161Host is up (0.00045s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.163Host is up (0.00027s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.165Host is up (0.00036s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.180Host is up (0.00085s latency).MAC Address: 00:0C:29:BD:8B:91 (Asustek Computer)Nmap scan report for 192.168.31.202Host is up (0.0011s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.205Host is up (0.00074s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.209Host is up (0.00046s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for (192.168.31.111)Host is up.Nmap done: 155 IP addresses (13 hosts up) scanned in 1.14 seconds例子2:扫描局域网192.168.31.0网段下哪些IP的主机是活动的命令:nmap -sn 192.168.31.0/24Starting Nmap 6.46 ( ) at 2015-06-01 17:35 CSTNmap scan report for 192.168.31.1Host is up (0.014s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.5Host is up (0.0010s latency).MAC Address: 00:0C:29:BD:8B:91 (Realtek Semiconductor)Nmap scan report for 192.168.31.6Host is up (0.00098s latency).MAC Address: 00:0C:29:BD:8B:91 (Lanner Electronics)Nmap scan report for 192.168.31.8Host is up (0.00094s latency).MAC Address: 00:0C:29:BD:8B:91 (Super Micro Computer) Nmap scan report for 192.168.31.9Host is up (0.00080s latency).MAC Address: 00:0C:29:BD:8B:91 (Lanner Electronics) Nmap scan report for 192.168.31.25Host is up (0.00057s latency).MAC Address: 00:0C:29:BD:8B:91 (Asustek Computer) Nmap scan report for 192.168.31.26Host is up (0.00056s latency).MAC Address: 00:0C:29:BD:8B:91 (Asustek Computer) Nmap scan report for 192.168.31.27Host is up (0.00060s latency).MAC Address: 00:0C:29:BD:8B:91 (Asustek Computer) Nmap scan report for 192.168.31.37Host is up (0.00040s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.40Host is up (0.00072s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.49Host is up (0.00042s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.63Host is up (0.00056s latency).MAC Address: 00:0C:29:BD:8B:91 (Super Micro Computer) Nmap scan report for 192.168.31.80Host is up (0.0017s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.81Host is up (0.0016s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.82Host is up (0.0016s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.83Host is up (0.0016s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.90Host is up (0.0016s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.101Host is up (0.00036s latency).MAC Address: 00:0C:29:BD:8B:91 (Super Micro Computer) Nmap scan report for 192.168.31.102Host is up (0.00052s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.105Host is up (0.00037s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.110Host is up (0.00092s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.157Host is up (0.00067s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.158Host is up (0.00082s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.161Host is up (0.00060s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.163Host is up (0.00047s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.165Host is up (0.00054s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.180Host is up (0.00064s latency).MAC Address: 00:0C:29:BD:8B:91 (Asustek Computer)Nmap scan report for 192.168.31.202Host is up (0.00067s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.205Host is up (0.00061s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for 192.168.31.209Host is up (0.00049s latency).MAC Address: 00:0C:29:BD:8B:91 (VMware)Nmap scan report for (192.168.31.111)Host is up.Nmap done: 256 IP addresses (31 hosts up) scanned in 1.33 seconds二、端口扫描用于确定目标主机的TCP/UDP端口的开放情况1.半开放扫描(TCP SYN Scanning)该方式发送SYN到目标端口,如果收到SYN/ACK回复,那么判断端口是开放的;如果收到RST包,说明该端口是关闭的。
杭州电子科技大学软件学院网络工程试验报告端口扫描报告09109146王子龙1.端口及端口扫描技术简介 (2)2.对现有端口扫描工具程序的理解 (2)主界面 (3)3.核心代码 (6)4.个人总结 (13)1.端口及端口扫描技术简介根据提供服务类型的不同,端口分为两种,一种是TCP端口,一种是UDP端口。
计算机之间相互通信的时候,分为两种方式:一种是发送信息以后,可以确认信息是否到达,也就是有应答的方式,这种方式大多采用TCP协议;一种是发送以后就不管了,不去确认信息是否到达,这种方式大多采用UDP协议。
对应这两种协议的服务提供的端口,也就分为TCP 端口和UDP端口。
一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来实现。
主机不只是靠IP地址来区分网络服务,因为IP 地址与网络服务的关系是一对多的关系。
实际上是通过“IP地址+端口号”来区分不同的服务的。
一个端口就是一个潜在的通信通道,也就是一个入侵通道。
对目标计算机进行端口扫描,能得到许多有用的信息。
进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。
在手工进行扫描时,需要熟悉各种命令。
对命令执行后的输出进行分析。
用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。
通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。
2. 对现有端口扫描工具程序的理解该程序是有C++编写的。
C++是一种使用非常广泛的计算机编程语言。
C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。
它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。
该程序能够扫描主机IP的某一个端口,或者是扫描该主机IP某一范围内的端口。
并且提供多次扫描功能。
如果要扫描的端口很多,在扫描过程中可以暂停扫描。
扫描结果在界面的下方显示。
主要显示内容有IP地址、端口号、端口状态、连接次数及备注。
常见的端口扫描类型及原理端口扫描是网络安全中常用的一种技术手段,通过探测目标主机开放的网络端口来获取目标系统的信息,并用于评估网络的安全性。
在端口扫描中,攻击者发送特殊格式的网络数据包到目标主机的不同端口,根据不同的回应结果来判断端口的开放状况,从而获取端口和服务信息,以便进行下一步的攻击。
下面介绍几种常见的端口扫描类型及其原理:1.TCP扫描TCP扫描是最常见的一种端口扫描类型。
其原理是通过发送一个TCPSYN数据包到目标主机的指定端口,根据目标主机返回的ACK或者RST数据包判断该端口是否开放。
如果返回RST数据包,说明该端口是关闭的;如果返回ACK或者没有任何回应,则说明该端口是开放的。
因此,TCP扫描的主要原理就是通过分析TCP协议栈产生的不同响应状态来判断端口的开放状况。
2.UDP扫描UDP扫描是通过向目标主机的指定端口发送UDP数据包,根据目标主机返回的响应来判断端口是否开放。
由于UDP协议的特性,该扫描类型相对于TCP扫描更加难以检测。
如果目标主机返回一个ICMP端口不可达错误,说明该端口是关闭的;如果没有任何响应,则说明该端口是开放的。
UDP扫描的原理就是通过分析UDP数据包产生的不同响应状态来判断端口的开放状况。
3.SYN扫描(半开放扫描)SYN扫描也是一种常用的端口扫描类型,也称为半开放扫描。
其原理是通过发送一个TCPSYN数据包到目标主机的指定端口,根据目标主机返回的ACK或者RST数据包判断该端口是否开放。
与TCP扫描的不同之处在于,SYN扫描中攻击者不会发送接受或者完成的ACK数据包,而是即使在接收到目标主机的ACK数据包之后返回一个RST数据包,以便在目标主机的日志中没有留下任何跟踪痕迹。
4.NULL扫描NULL扫描是一种探测目标主机端口开放情况的方法,其原理是发送一个无任何标志位的TCP数据包到目标主机的指定端口,根据目标主机返回的响应判断该端口是否开放。
如果目标主机返回一个RST数据包,说明该端口是关闭的;如果没有任何响应,则说明该端口是开放的。
基于Python的漏洞扫描软件设计基于Python的漏洞扫描软件设计随着互联网的飞速发展,网络安全问题日益凸显。
网络攻击者利用系统中的漏洞获取非法利益已成为一种常见的攻击手段。
因此,开发一款高效、可靠的漏洞扫描软件尤为重要。
本文将介绍基于Python的漏洞扫描软件的设计思路与实现。
一、系统需求分析在设计漏洞扫描软件之前,首先需要进行系统需求分析,明确设计目标和功能需求。
漏洞扫描软件的主要功能包括:1. 漏洞扫描:通过检测系统中的漏洞来发现潜在的安全风险。
2. 漏洞分类与评级:对发现的漏洞进行分类和评级,方便用户了解漏洞的危害程度。
3. 漏洞报告生成:根据扫描结果自动生成漏洞报告,详细描述漏洞的信息和修复建议。
4. 漏洞修复跟踪:记录已发现的漏洞修复情况,方便用户进行漏洞管理和追踪。
5. 用户权限管理:不同用户具有不同的权限,确保系统的安全可控。
二、系统设计基于上述需求,我们使用Python编程语言来设计漏洞扫描软件。
Python是一种简单易学、功能强大的编程语言,具有丰富的库和生态系统,适合快速开发。
1. 漏洞扫描模块我们可以使用Python的socket库进行端口扫描,遍历系统中的常见开放端口,并使用常见的漏洞利用工具来检测漏洞。
同时,可以采用Web漏洞扫描器模块,通过发送定制的HTTP请求来检测Web应用程序中的安全漏洞,如SQL注入、跨站脚本等。
2. 漏洞分类与评级模块在扫描到漏洞后,我们可以根据漏洞的危害程度和类型进行分类和评级。
常见的漏洞评级体系包括CVSS(Common Vulnerability Scoring System)等。
通过对漏洞进行评级,可以帮助用户了解漏洞的危害程度,并决定是否需要立即修复。
3. 漏洞报告生成模块扫描完成后,我们可以使用Python的报告生成库来生成漏洞报告。
报告中应包含扫描结果的详细描述,包括漏洞的名称、危害程度、修复建议等。
可使用HTML或PDF格式输出,方便用户查阅和分享。
使用nc命令进行网络端口扫描网络安全是当前互联网时代中,非常重要的一个话题。
在互联网中,每一台连接到网络的设备都会有一些开放的网络端口,用于与其他设备进行通信。
然而,这些开放的端口往往会成为黑客入侵的目标。
为了确保网络的安全性,我们需要进行网络端口扫描来及时发现并解决潜在的安全隐患。
一、什么是网络端口扫描?网络端口扫描是指通过发送网络数据包,以探测目标设备的开放端口的一种方式。
在互联网中,设备通常使用TCP或UDP协议来进行通信。
每个协议都有一组特定的端口号,用于标识不同的应用程序或服务。
二、为什么需要进行网络端口扫描?1. 发现潜在的漏洞:网络端口扫描可以帮助系统管理员及时发现网络设备中存在的漏洞,以便及时修复或采取其他安全措施。
2. 检测未经授权的服务:通过扫描网络端口,可以发现未经授权的服务或应用程序,防止潜在的安全威胁。
3. 提高网络安全性:网络端口扫描可用于检查网络中的安全性,以保护重要数据和信息不被非法获取。
三、nc命令及其功能nc(Netcat)是一款常用的网络工具,它可以用于网络通信调试和数据传输。
它支持多种协议,可以通过使用不同的选项来实现各种功能。
在进行网络端口扫描时,nc命令可以用于连接指定的目标设备,检测目标设备的开放端口。
四、使用nc命令进行网络端口扫描的步骤1. 确定目标设备:首先要确定要扫描的目标设备的IP地址。
可以使用ping命令或其他网络工具进行设备的探测,以获取目标设备的IP 地址。
2. 确定扫描范围:确定要扫描的端口范围。
一般来说,常用的端口范围是1-65535,但实际应用中一般只扫描常用的端口,如80(HTTP)、443(HTTPS)等。
3. 运行nc命令进行扫描:使用nc命令连接目标设备的指定端口,观察是否成功建立连接。
如果成功建立连接,则说明目标设备的该端口是开放的。
以扫描目标设备192.168.0.1的80端口为例,具体命令如下:```nc -v 192.168.0.1 80```其中,-v表示显示详细信息,192.168.0.1是目标设备的IP地址,80是要扫描的端口号。
网络安全实验NMAP扫描网络安全实验:NMAP扫描的应用与原理一、引言在网络安全领域,网络映射程序(NMAP)是一款强大的安全工具,用于发现网络中的主机和开放端口。
NMAP被广泛应用于安全审计、网络发现、版本检测和漏洞评估等任务。
本文将通过实验方式,详细介绍NMAP扫描的原理、方法和实际应用,旨在帮助读者更好地理解和掌握这一重要技术。
二、NMAP扫描原理NMAP使用不同的扫描技术来发现网络中的主机和开放端口。
这些技术包括ICMP Echo请求、TCP SYN扫描、TCP ACK扫描、UDP扫描和操作系统检测等。
NMAP通过发送网络数据包并分析响应时间、数据包大小和其他信息来推断出目标主机的操作系统类型和网络服务。
三、实验环境为了进行NMAP扫描实验,我们准备了一个包含多个主机和端口的虚拟网络。
实验设备包括一台运行Kali Linux的攻击机和一台运行Windows Server的目标主机。
四、实验步骤与结果1、打开Kali Linux,启动终端程序,使用以下命令安装NMAP:2、使用以下命令启动NMAP扫描:其中,-sT选项表示使用TCP SYN扫描,-O选项表示进行操作系统检测。
将192.168.1.1替换为目标主机的IP地址。
3、执行命令后,NMAP将开始扫描并输出结果。
根据实验环境的不同,输出结果可能包括目标主机的操作系统类型、开放端口和服务等信息。
五、实验分析通过实验,我们成功地使用NMAP扫描了目标主机,并获取了其开放端口和服务信息。
这一过程证明了NMAP的强大功能和实用性。
在现实场景中,攻击者可能会利用NMAP来扫描目标网络,寻找潜在的安全漏洞。
因此,网络安全专业人员需要熟练掌握NMAP的使用方法,以便进行有效的安全审计和防御。
六、结论与展望本文通过实验方式详细介绍了NMAP扫描的原理、方法和实际应用。
实验结果表明,NMAP是一款功能强大的网络安全工具,能够有效地发现网络中的主机和开放端口。
端口扫描原理及工具端口扫描是指通过发送指定的网络数据包,来识别目标主机上开放的网络端口的过程。
每个网络服务都通过一个唯一的端口号来进行通信,端口扫描可以帮助网络管理员或黑客确定目标主机上运行的服务和应用程序,并对其进行评估和攻击。
1.TCP连接扫描:这是最常用的端口扫描方法。
它通过建立一个完整的TCP连接来确定端口是否开放。
扫描程序向目标主机的每个端口发送一个TCPSYN包,如果收到目标主机返回的TCPACK包,说明端口开放;如果收到目标主机返回的TCPRST包,说明端口关闭。
2.UDP扫描:与TCP连接扫描不同,UDP扫描发送的是UDP数据包。
目标主机根据传入的UDP数据包决定是否响应,如果有响应,表示端口开放;如果没有响应,表示端口关闭。
由于UDP是面向无连接的协议,所以UDP扫描相对于TCP连接扫描来说更加复杂和耗时,而且结果也不太可靠。
3.SYN扫描:与TCP连接扫描类似,SYN扫描也是通过发送TCPSYN包来判断端口是否开放。
不同之处在于,SYN扫描不与目标主机建立完成的TCP连接,而是在发送完TCPSYN包之后立即发送一个TCPRST包,以提高扫描速度。
目标主机收到TCPSYN包后,如果端口开放,会返回一个TCPSYN/ACK或者一个RST包;如果端口关闭,会返回一个TCPRST包。
常用的端口扫描工具:1. Nmap:Nmap是一款功能强大的网络扫描工具,支持多种扫描技术和扫描方法。
它可以通过TCP连接扫描、UDP扫描、SYN扫描等方法,快速和准确地扫描目标主机的开放端口和运行的服务。
2. Nessus:Nessus是一款网络漏洞扫描工具,可以帮助管理员发现目标主机上的安全漏洞和弱点。
除了端口扫描功能外,Nessus还可以对目标主机进行漏洞验证和安全评估。
3. Zenmap:Zenmap是Nmap的图形界面版本,提供了更直观和友好的用户界面。
它可以通过点击按钮和选项来进行端口扫描,并以图形化的方式展示扫描结果。
网络安全漏洞扫描系统设计与实现网络安全漏洞扫描系统是一种能够发现和评估网络系统中潜在漏洞的工具。
该系统可以自动扫描目标网络,并发现可能存在的漏洞,从而帮助管理员及时修补这些漏洞以减少潜在的攻击风险。
本文将介绍一个网络安全漏洞扫描系统的设计与实现,包括功能设计、架构设计和实现步骤等。
1.功能设计-目标网络扫描:系统需要能够扫描目标网络中的所有主机和服务,获取主机和服务的基本信息,如IP地址、操作系统版本、开放端口等。
-漏洞发现:系统需要能够利用各种漏洞扫描技术来发现目标网络中可能存在的漏洞。
例如,系统可以检测目标主机是否存在常见的漏洞,如系统服务的缓冲区溢出漏洞、弱密码漏洞等。
-漏洞描述:系统需要能够对发现的漏洞进行描述,包括漏洞的名称、危害等级、修复建议等。
漏洞描述可以帮助管理员更好地理解漏洞,并采取相应的修复措施。
2.架构设计-客户端:采用图形化界面形式,提供用户与系统的交互界面。
用户可以通过客户端输入目标网络的信息,选择需要进行的扫描类型,并查看扫描结果。
-服务器:负责接收客户端的扫描请求,调用相应的扫描工具对目标网络进行扫描,将扫描结果返回给客户端并提供漏洞描述和修复建议。
服务器和客户端之间通过网络进行通信,可以采用HTTP或其他协议作为通信协议。
服务器端需要支持并发处理多个扫描请求,可以通过多线程或异步处理技术来实现。
3.实现步骤实现一个网络安全漏洞扫描系统可以按照以下步骤进行:-设计数据库:设计一个数据库来存储目标网络的信息、扫描结果、漏洞描述等数据。
-开发服务器端:开发服务器端的功能,包括接收客户端的请求、调用扫描工具进行扫描、保存扫描结果等。
-开发客户端:开发客户端的功能,包括用户界面设计,输入目标网络信息、选择扫描类型、查看扫描结果等。
- 集成扫描工具:集成各种漏洞扫描工具,如Nmap、Nessus等,以提供更多的漏洞检测能力。
-实现通信功能:实现服务器和客户端之间的通信功能,可以使用HTTP或其他协议进行通信。
2012.1121基于Nessus 的漏洞扫描系统设计与实现王景中 王雷硕北方工业大学信息工程学院 北京 100144摘要:本文介绍了基于Nessus 的漏洞扫描系统设计结构,分析了Nessus 漏洞扫描工具及其代码结构,设计出了基于Nessus 的漏洞扫描系统,详细阐述了漏洞扫描系统的框架;给出了预定IP 范围模块、配置漏洞扫描策略模块、预定插件集模块的详细设计;最后给出了实验结果及分析。
实验表明,该系统对目标主机的漏洞检测是较为有效的。
关键词:网络安全;漏洞扫描;Nessus 插件库;Web0 引言随着网络影响力的日益扩大,漏洞扫描系统也随之出现。
早期的漏洞扫描程序是专门为Unix 编写的,随后情况便发生了变化,现在几乎每一个平台都出现了扫描程序,扫描程序对提高Internet 的安全性有很大的帮助。
近年来随着扫描软件的发展,已经出现了众多扫描工具,如Acunetix 公司的Acunetix Web Vulnerability Scanner, Watchfire 的AppScan 和N-Stalker 的N-Stealth 等,另外还有一些免费的扫描软件,如X-scan ,Nessus 等。
2003年文献[1]设计了安全漏洞扫描系统并且在此基础上实现了一个脚本自动生成器,极大地方便了漏洞插件的编写。
2008年文献[2]设计了基于多台扫描服务器的分布式网络漏洞扫描系统,弥补了传统扫描系统在应用过程中的不足,系统会根据运行情况调控各扫描服务器负载,保证系统正常运转。
2012年文献[3]设计了一款防火墙漏洞扫描系统,该系统可以利用漏洞扫描来弥补防火墙的不足,两者相结合使得网络更加安全。
以上这些漏洞扫描系统都有各自的优点,但是都存在着扫描效率低下的问题。
本文主要设计并实现基于Nessus 的漏洞扫描系统,充分利用了Nessus 插件易于编写,扫描效率高等优点,实现对目标主机高效全面的漏洞扫描。
1 Nessus 漏洞扫描器本漏洞扫描系统使用的是Nessus 扫描工具,Nessus 采用插件技术,插件是由NASL 脚本语言编写的,用户通过控制台选择需要扫描的漏洞对目标主机进行模拟攻击,用户如果想要加入新的扫描漏洞,只需加入新的插件即可。
)
网络综合实验
任 务 书
一、 目的与要求
1. 性质:设计性实验。
2. 任务:设计并实现一个端口扫描程序,检测某个IP或某段IP的计算机的端口工作
情况。
3. 目的:加深对课堂讲授知识的理解,熟练掌握基本的网络编程技术和方法,建立网
络编程整体概念,使得学生初步具有研究、设计、编制和调试网络程序的能力。
4. 、
5.
要求:熟悉有关定义、概念和实现算法,设计出程序流程框图和数据结构,编写出
完整的源程序,基本功能完善,方便易用,操作无误。
6. 学生要求人数:1人。
二、 主要内容
1. 编写一个端口扫描程序,能够显示某个IP或某段IP的计算机的某一个或某些端口
是否正在工作。基本工作过程如下:
(1) 设定好一定的端口扫描范围;
(2) 设定每个端口扫描的次数,因为有可能有的端口一次扫描可能不通;
(3) 创建socket,通过socket的connect方法来连接远程IP地址以及对应的端口;
(4) 如果返回false,表示端口没有开放,否则端口开放。
(
三、 进度计划
序号 设计内容 完成时间 备注
1
任务布置及资料收集 第1周周一、周二
—
2 软件方案设计与制定 第1周周三至周四
3
编程实现 第1周周周五至第2周周二
<
4 程序测试与修改,撰写报告 第2周周三至周五上午
5
报告提交,软件验收 周五下午
~
四、设计成果要求
1. 完成规定的实验任务,保质保量;
2. 完成综合实验报告,要求格式规范,内容具体而翔实,应体现自身所做的工作,注
重对实验思路的归纳和对问题解决过程的总结。
五、 考核方式
1. 平时成绩+验收答辩+实验报告;
2. 五级分制。
学生姓名:
}
指导教师:
2009 年 6月8 日
、
—
一、综合实验的目的与要求
1.目的:加深对课堂讲授知识的理解,熟练掌握基本的网络编程技术和方法,建立网
络编程整体概念,加深对JAVA编程语言的使用,促进编程能力的提高,同时为网络编
程打下一个比较好的基础。同时对实验的过程要有完全的了解。
2. 要求:熟悉有关定义、概念和实现算法,设计出程序流程框图和数据结构,编写出
完整的源程序,基本功能完善,方便易用,操作无误。
二、综合实验正文
1.编程语言的选择
}
针对编写的是端口扫描的程序,所以我选择了JAVA编程,因为要简单而方便的试验端
口扫描的功能。
2.端口扫描实现的功能是:显示某个IP或某段IP的计算机的某一个或某些端口是否
正在工作
2.1 如何选择IP段和端口
创建socket,通过socket的connect方法来连接远程IP地址以及对应的端口。而我使
用的是socket函数来实现端口的扫描和IP地址的选择扫描。
2.2 如何实现快速扫描端口
通过实现多线程,当一个IP或者一个端口同时分配多个线程进行扫描,速度会比单线
程扫描快许多。
2.3 显示扫描结果
可以在使用JAVA编写的时候,可以通过使用JScrollPane控件实现显示结果。
!
2.4 实现要求功能之余美化外观
3.创建应用程序界面
3.1 建立主窗体 ,“JAVA端口扫描器”
图1-1
3.2 IP地址的输入部分
图1-2
?
3.3 端口部分,其中包括指定的端口和指定扫描的端口范围
图1-3
3.4 多线程的实现和延时的控制部分
图1-4
3.5 增加的保存及快捷键功能
—
图1-5
4.扫描的整个过程
4.1 填写IP地址 —
4.2 填写端口扫描的范围为1—300
4.3 线程数选择为100
4.4 扫描结果如下
图1-6
;
5.端口扫描的主要部分程序如下
import .*;
import .*;
import .*;
import .*;
/*
*实现扫描的主体程序
(
*/
public class ThreadScan{
public static JFrame main=new JFrame("JAVA端口扫描器");
;
public static JLabel Pdot2 = new JLabel(".");
public static JLabel Pdot3 = new JLabel(".");
·
public static JLabel TNUM=new JLabel("线程数:");
public static JLabel RST=new JLabel("扫描结果: ");
public static JLabel con=new JLabel(" ");
tart();
}
}
}
:
/*
*实现错误提示框中的“确定”按钮功能
*/
class OKAction implements ActionListener{
public void actionPerformed (ActionEvent e){
}
¥
}
多线程类文件:
import .*;
import .*;
import .*;
import .*;
public class TCPThread extends Thread{
public static InetAddress hostAddress;
+ ip2 + "." + ip3 + "." + h;
hostname = ipAll;
try{
.");
.");
书名. 出版单位, 版本. 出版日期
张白一,崔尚森,面向对象程序设计---JAVA,西安电子科技大学出版社,第2版 ,2006 .1