网络端口扫描实验指导 - 图文
更新时间:2024-05-02 19:46:01 阅读量: 综合文库 文档下载
- 网络端口扫描实验报告推荐度:
- 相关推荐
《网络端口扫描》实验指导
一、实验目的
1、学习端口扫描技术的基本原理,理解端口扫描技术在网络攻防中的应用;
2、通过上机实验,熟练掌握目前最为常用的网络扫描工具Nmap的使用,并能利用工具扫描漏洞,更好地弥补安全不足。 二、实验预习提示
1、网络扫描概述
扫描是通过向目标主机发送数据报文,然后根据响应获得目标主机的情况。根据扫描对象的不同,可以分为基于主机的扫描和基于网络的扫描2种,其中基于主机的扫描器又称本地扫描器,它与待检查系统运行于同一节点,执行对自身的检查。通常在目标系统上安装了一个代理(Agent)或者是服务(Services),以便能够访问所有的文件与进程,它的主要功能为分析各种系统文件内容,查找可能存在的对系统安全造成威胁的漏洞或配置错误;而基于网络的扫描器又称远程扫描器,一般它和待检查系统运行于不同的节点上,通过网络来扫描远程计算机。根据扫描方式的不同,主要分为地址扫描、漏洞扫描和端口扫描3类。
(1)地址扫描
地址扫描是最简单、最常见的一种扫描方式,最简单的方法是利用Ping程序来判断某个IP地址是否有活动的主机,或者某个主机是否在线。其原理是向目标系统发送ICMP回显请求报文,并等待返回的ICMP回显应答。
传统的Ping扫描工具一次只能对一台主机进行测试,效率较低,现在如Fping(Fast ping)等工具能以并发的形式向大量的地址发出Ping请求,从而很快获得一个网络中所有在线主机地址的列表。但随着安全防范意识的提供,很多路由器和防火墙都会进行限制,只要加入丢弃ICMP回显请求信息的相关规则,或者在主机中通过一定的设置禁止对这样的请求信息应答,即可对ICMP回显请求不予响应,
(2)漏洞扫描
漏洞扫描是使用漏洞扫描器对目标系统进行信息查询,检查目标系统中可能包含的已知漏洞,从而发现系统中存在的不安全地方。其原理是采用基于规则的匹配技术,即根据安全专家对网络系统安全漏洞、黑客攻击案例的分析和系统管理员对网络系统安全配置的实际经验,形成一套标准的网络系统漏洞库,然后在此基础上构成相应的匹配规则,通过漏洞库匹配的方法来检查目标设备是否存在漏洞。在端口扫描后,即可知道目标主机开启的端口以及端口上提供的网络服务,将这些相关信息与漏洞库进行匹配,即可查看是否有满足匹配条件的漏洞存在。漏洞扫描大体包括CGI、POP3、FTP、HTTP和SSH漏洞扫描等。漏洞扫描的关键是所使用的漏洞库,漏洞库信息的完整性和有效性决定了漏洞扫描器的性能,漏洞库的修订和更新的性能也会影响漏洞扫描器运行的时间。
(3)端口扫描
端口是网络连接的附着点,不同的应用进程使用不同的端口,如果一个应用程序希望提供某种服务,它将自己附着在端口上等待客户请求的到来(即对端口进行监听),希望使用此服务的客户则在本地主机分配一个端口,与远程主机的服务端口连接,客户通过联系这些特殊的端口来获取特殊的服务。在网络连接中,服务器端的进程需要一直处于监听状态,并且持续使用相同端口;而客户端的进程则只需要在和服务器建立连接时动态地创建一个端口,并在连接结束后立即释放。一般来说,端口扫描的对象是前者,即作为网络服务开放的
端口。
由于网络端口是计算机和外界相连的通道,因此疏于管理可能留下严重的安全隐患。端口扫描是利用网络协议的安全漏洞,通过非常规的方法来确定连接在网络上目标主机的哪些端口是开放的技术。其原理是通过向目标系统的TCPhuoUDP端口发送一定数量、带有各种特殊标识的报文,然后记录目标系统反馈的报文信息,再分析判断其上端口的状态。
2、端口扫描的用途
一般来说,端口扫描有以下三种用途:
(1)获取目标系统上的端口信息,用于识别其上具有的TCP和UDP服务; (2)获得目标系统返回报文的某些特殊标识,识别目标系统的操作系统类型; (3)进一步结合其他技术得到具体端口的详细信息,从而识别某个特定服务的版本号。 3、端口扫描的方法 (1)基于连接的扫描 1)TCP全连接扫描
TCP全连接扫描是端口扫描的基本形式,扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接。建立连接成功时,目标主机回应一个SYN/ACK数据包,表明目标主机的目标端口处于监听(打开)状态;建立连接失败时,目标主机会向扫描主机发送RST响应,表明该目标端口处于关闭状态。TCP全连接扫描的优点是易于实现,系统中任何用户都有权限使用此调用;缺点是很容易被发觉并被过滤掉,目标计算机的日志文件会显示一连串的成功连接和连接出错的服务信息。
2)TCP SYN扫描
TCP SYN扫描也称半开放扫描,扫描程序向目标主机端口发送一个SYN数据包,若收到RST响应则表明目标端口关闭,若收到SYN/ACK响应则表明目标端口开放,处于侦听状态,此时扫描程序再发送一个RST信号给目标主机,终止建立连接。由于并未建立全连接,故常将此扫描方式称为半开放扫描。TCP SYN扫描的优点是一般不会在目标主机上留下记录,但缺点是需要有管理员权限才能建立自己的SYN数据包。
(2)隐蔽扫描
隐蔽扫描技术不含标准的TCP三次握手协议的任何一部分,比SYN扫描更隐蔽,很难被记录追踪。隐蔽扫描采用包含FIN标志的TCP包来探测端口,如果探测的端口处于关闭状态,则目标主机返回一个RST信号;如果探测的端口处于侦听状态,则目标主机会忽略对FIN数据包的回复,即目标主机不会返回RST信号。Xmas Tree和Null扫描方式是基于以上原理的变形和发展。Xmas Tree扫描打开FIN、URG和PSH标志,而Null扫描则关闭所有标志,这些组合的目的都是为了通过所谓的FIN标记监测器的过滤。隐蔽扫描的优点是比较隐蔽,不易被记录追踪,但通常用于UNIX系统及其他少数系统,对Windows系统不适用,同时与SYN扫描类似,也需要自己构造IP数据包。
(3)辅助扫描手段 1)分段扫描
分段扫描一般结合其他方法来提供更为隐蔽的扫描,它并不是直接发送TCP探测数据包,而是将原来封装在一个报文的探测信息(往往在TCP报头中)拆分至两个或多个较小的报文中,算好各自的偏移,并都置系统的标识,然后发送,使其难以被过滤。扫描器从IP分片中劈开TCP头,由于包过滤防火墙看不到一个完整的TCP头,无法对应相应的过滤规则,从而可绕过包过滤防火墙。
2)ACK扫描
ACK扫描并不能识别端口是否打开,但可以判断目标主机是否受到防火墙的保护,以及防火墙的类型。因为RFC文档规定对于来访的ACK报文,物理端口打开与否,均返回
RST报文。因此如果发送方通过这种方式得到RST报文,就可以判断目标主机上未安装防火墙或者只有简单的包过滤防火墙(它无法判断此ACK报文是否合法);如果发送方没有收到RST报文,则要么目标主机关机,要么受基于状态检测的防火墙保护,因为基于状态监测的防火墙会将突然来访的ACK报文全部丢弃,不作应答。
(4)非TCP扫描 1)UDP扫描
端口扫描一般是扫描TCP端口,因为TCP是面向连接的协议,目标系统通常会返回一些有用的信息;而UDP为不可靠的无连接协议,为了发现正在服务的UDP端口,通常产生一个内容为空的UDP数据包发往目标端口,若目标端口上有服务正在等待,则目标端口将返回表示错误的消息;如果目标端口处于关闭状态,则目标操作系统会发现一个ICMP Unreachable消息。
2)ICMP扫描
Ping命令发送ICMP请求包给目标IP地址,如果有应答则表示主机开机。如果要探测目标网络内主机的情况,可以构造ICMP广播报文,如果有机器响应,则可判断其开机。ICMP扫描方法也可用来探测局域网的地址分配结构(如果有一个以上的主机响应广播报文,则表示此广播地址就是目标网络的广播地址)。如果已设置了目标网络的网关默认将外来的IP广播地址转换成第二层的物理广播地址,则可以结合IP欺骗技术,通过发送Ping的广播报文对目标实现DDos分布式拒绝服务攻击。
3)操作系统指纹识别
不同的网络操作系统在处理网络信息时是不完全相同的,有着各自不同的特点,这些特点被称为系统的“指纹”。通过识别这些指纹可以实现网络系统的识别。
4、常见的扫描工具
常见的免费扫描工具有Nmap、Superscan、Nessus、流光、Microsoft的系统漏洞检测工具MBSA、X-Scan的那个,商业安全扫描产品有Symantec的NetRecon、NAI的CyberCops Scanner、Cisco的Secure Scanner、ISS的系列扫描产品等。
Nmap是一款开放源代码的网络探测和安全审核的工具,基本上包括了所有知名的扫描方式,并且提供了许多非常实用的辅助功能以对目标主机作进一步的侦测,如操作系统指纹识别、进程用户分析以及众多可选的方式来逃避目标系统的监测等。Nmap可任意指定主机、网段甚至整个网络作为扫描目标,扫描方式也可通过添加合适的选项按需组合。
Nmap运行通常会得到被扫描主机端口的列表、周知端口的服务名(如果可能)、端口号、状态和协议等信息。每个端口由Open、Filtered和Unfiltered三种状态,其中Open状态表明目标主机能够在此端口使用accept()系统调用接受路径;Filtered状态表明防火墙、包过滤和其他网络安全软件掩盖了此端口,禁止Nmap探测是否打开;Unfiltered状态表明此端口关闭,且无防火墙/包过滤软件来隔离Nmap的探测企图。
5、反扫描技术
(1)禁止不必要的服务 系统上开放的某一个端口,运行的每一个服务都可能为入侵者提供信息,成为入侵者攻击的目标。因此,对抗网络扫描的基本措施是将系统不必要的服务全部禁止。
(2)屏蔽敏感信息
系统中一些看起来无用的信息往往对入侵者来说比较重要,例如FTP服务的Banner等,入侵者通过这些信息,能够判断出操作系统的类型、服务软件的版本等。
(3)合理配置防火墙和入侵检测系统IDS。一台配置合理的防火墙能够过滤掉大多数的扫描;同样,配置合理的入侵检测系统IDS,也能发现和记录大部分的扫描行为。
(4)陷阱/蜜罐技术。将攻击者引导到一个蜜罐上,能够帮助用户收集最新的扫描,并
判断有什么样的扫描能穿过防火墙。
本实验通过实际操作,了解扫描技术的工作原理,加深对网络底层的理解,掌握常用扫描工具的基本用法。 三、实验过程和指导
(一)实验要求
1、阅读Nmap文档,了解命令行参数。
2、选择局域网中的主机作为扫描对象(不可非法扫描Internet中的主机),使用Nmap提供的默认配置文件,以及自行设定相关参数,对指定范围的主机进行全面TCP扫描、PING扫描、TCP connect扫描、UDP扫描、秘密扫描、操作系统指纹识别等,记录并分析扫描结果。
(二)实验准备
1、阅读教材有关章节,理解TCP/IP协议等扫描技术的相关工作原理。 2、阅读相关资料,熟悉Nmap的相关操作步骤和命令行参数的含义。 (三)上机实验
Nmap有命令行和GUI两种运行方式,这里以GUI的Zenmap 5.51为例。运行Zenmap程序后,在Target列表框中输入扫描的目标,在Command文本框中设置所需的扫描参数,单击Scan按钮,系统就开始进行扫描,结束后会显示扫描结果。
1、全面TCP扫描
这是一种基本的扫描模式,不需要任何命令选项开关,即可对目标主机进行全面TCP扫描,显示监听端口的服务情况。命令行格式为:nmap IP地址,如nmap 192.168.0.5,则可对目标主机192.168.0.5进行全面TCP扫描,输出结果如图3.1.1所示。
这种扫描模式的缺点是允许了日志服务的主机可以很容易地监测到这类扫描。要达到隐蔽功能,必须设置一些命令选项开关,从而实现较高级的功能。
2、PING扫描
如果想知道网络上有哪些主机是开放的,可以使用Ping扫描方式探测主机,nmap通过对指定的ip地址发送icmp的echo request信息包来做到这一点,有回应的主机就是开放的。命令行格式为:nmap –sn IP地址,如nmap –sn 192.168.0.5,则可对目标主机192.168.0.5进行探测,输出结果包括开放主机的IP地址和MAC地址,如图3.1.2所示。
3、TCP connect扫描
这是对TCP的最基本形式的侦测,也是nmap的默认扫描方式。操作系统提供的connect()系统调用可以用来对目标主机上感兴趣的端口进行连接试探,如果该端口处于监听状态,则连接成功,否则代表这个端口无法到达。该方式的优点是不需要任何权限,系统中任何用户都有权利使用此调用;使用非阻塞I/O允许设置一个低的时间用尽周期,通过同时打开多个套接字可以加速扫描。其缺点是很容易被察觉,并且被防火墙将扫描信息包过滤掉;目标主机的log文件会显示一连串的连接和连接出错信息,并且能很快使它关闭。命令行格式为:nmap –sT IP地址,如nmap –sT 192.168.0.5,则可对目标主机192.168.0.5进行TCP连接扫描,输出结果如图3.1.3所示。
图3.1.1 全面TCP扫描
图3.1.2 使用Ping扫描方式探测主机
图3.1.3 TCP连接扫描
4、UDP扫描
Nmap默认监听的是目标主机的TCP端口,由于现在防火墙设备的流行,TCP端口的
管理状态越来越严格,不会轻易开放,并且通信监视严格。UDP扫描可以用来确定主机上哪些UDP端口处于开放状态,其原理是通过发送零字节的UDP信息包到目标机器的各个端口,如果收到一个ICMP端口无法到达的回应,那么该端口是关闭的,否则可以认为它是开放的。该方式的优点是利用UDP端口关闭时返回的ICMP信息,不包含标准的TCP三次握手协议的任何部分,因此隐蔽性好。其缺点是由于UDP是不面向连接的,这种扫描使用的数据包在通过网络时容易被丢弃从而产生错误的探测信息,所以整个精度会比较低;同时,由于不同操作系统在实现ICMP协议的时候为了避免广播风暴都会有峰值速率的限制,因此扫描速度比较慢。这一扫描方法命令行格式为:nmap –sU IP地址,如nmap –sU 192.168.0.5,则可对目标主机192.168.0.5进行UDP扫描,输出结果如图3.1.4所示。
图3.1.4 UDP扫描
5、秘密扫描
1)TCP SYN扫描
这种方式是半开放式的TCP同步扫描,扫描程序不打开完整的TCP连接,发送一个SYN信息包并等待对方的回应。扫描原理参见“实验预习提示”中的“TCP SYN扫描”。这种扫描的的最大好处是可以进行更加隐蔽的扫描,防止被目标主机监测到,只有极少的站点会对它作出记录,但是需要有root权限来定制这些SYN包。命令行格式为:nmap –sS IP地址,如nmap –sS 192.168.0.5,则可对目标主机192.168.0.5进行TCP SYN扫描,输出结果如图3.1.5所示。将TCP SYN扫描与前面的TCP connect扫描进行对比,可以看出TCP SYN扫描的速度明显比TCP connect扫描快,扫描结果略有不同。
图3.1.5 TCP SYN扫描
SYN扫描在有些情况下仍不够隐蔽,一些防火墙及信息包过滤装置会在重要端口守护,只要安装了过滤和日志软件来检测同步空闲字符SYN,则-sS的隐蔽作用就失效了,SYN包在此时便会被截获,一些应用软件如Synlogger以及Courtney对侦测这种类型的扫描都是行家。所以,需要有更进一步的隐蔽扫描方式。
2)FIN扫描、Xmas Tree扫描和Null扫描
由于关闭的端口会对发送的探测信息返回一个RST,而打开的端口则对其忽略不理。所以,FIN扫描使用空的FIN信息包作为探针,Xmas Tree使用FIN、URG、PUSH标记,Null扫描则不用任何标记。需要注意的是此方法与系统的实现有一定的关系,由于微软的坚持和独特,对于运行Windows 95/98或NT的机器不管端口是否打开都会回复RST,因此FIN、Xmas Tree和Null扫描的结果都是端口关闭。命令行格式分别为:nmap –sF IP地址,nmap –sX IP地址,nmap –sN IP地址,如nmap –sF 192.168.0.5,则可对目标主机192.168.0.5进行FIN扫描,输出结果如图3.1.6所示;nmap –sX 192.168.0.5,则可对目标主机192.168.0.5进行Xmas Tree扫描,输出结果如图3.1.7所示;nmap –sN 192.168.0.5,则可对目标主机192.168.0.5进行Null扫描,输出结果如图3.1.8所示。
按照上述原理,这其实也是一个很好的区分Windows和Unix/Linux两种平台的方法,如果扫描发现了打开的端口,那就能知道目标主机运行的不是Windows;如果-sF、-sX、-sN的扫描显示所有端口都是关闭的,但一个SYN扫描却显示有打开端口,则能大致推断目标主机是Windows平台。当然,这只是一个简单应用,nmap有更彻底的操作系统辨别方法。
6、操作系统指纹识别
该方法经由TCP/IP来获取“指纹”,从而判别目标主机的操作系统类型,其原理是用一连串的信息包探测出所扫描的主机位于操作系统有关堆栈的信息,并区分其精细差异,以此判别操作系统。它用搜集到的信息建立一个“指纹”,用来同已知的操作系统的指纹相比较,这样判定操作系统就有了依据。命令行格式为:nmap –O IP地址,如nmap –O 192.168.0.5,则可对目标主机192.168.0.5进行操作系统类型探测,输出结果如图3.1.9所示。
图3.1.6 FIN扫描
图3.1.7 Xmas Tree扫描
图3.1.8 Null扫描
图3.1.9 操作系统指纹识别
注意,nmap的这种方式有时也会得到错误的诊断信息,比如系统有端口开放。但nmap返回不可识别的操作系统,这也是有可能的,这时可以用nmap的-d参数来测试,详见nmap参考文档。 7、其他应用
(1)扫描主机群
除了扫描单个目标主机,还可以同时扫描一个主机群,如:nmap –sT –O 192.168.0.1-10就可以同时扫描并探测IP地址在192.168.0.1-192.168.0.10之间的每一台主机。当然这需要更多的时间,耗费更多的系统资源和网络带宽,输出结果页可能会很长。此时可以用下面的命令将结果重定向输送到一个文件中:nmap –sT –O –oN scan_result.txt 192.168.0.1-10,输出结果如图3.1.10所示。
(2)其他常用参数
1)-I:进行TCP反向用户认证扫描,可以透露扫描用户信息。其原理是利用了Ident协议(RFC1413),Ident协议允许看到通过TCP连接的任何进程的拥有者的用户名,即使这个连接不是由该进程发起的。例如可以连接到一个http端口,然后通过ident来发现服务器是否正在以root权限运行。但这种扫描方式只能在和目标端口建立了一个完整的TCP全连接之后才有效,并且实际上很多主机都会关闭ident服务,因此在高版本Nmap中已不再支持这种扫描方式。命令行格式为:nmap –I IP地址,如nmap –I 192.168.0.5,则可对目标主机192.168.0.5进行TCP反向用户认证扫描,输出结果如图3.1.11所示。
图3.1.10 扫描主机群
图3.1.11 TCP反向用户认证扫描
2)-iR:进行随机主机扫描。命令行格式为:nmap –iR 扫描主机数,如nmap –iR 3,则可对3个随机目标主机进行扫描,输出结果如图3.1.12所示。
3)-p:扫描特定的端口范围,默认扫描的是从1到1024端口。命令行格式为:nmap –p 端口范围IP地址,如nmap –p 1025-3000 192.168.0.5,则可对目标主机192.168.0.5中1025-3000范围内的端口进行扫描,输出结果如图3.1.13所示。
图3.1.12 随机主机扫描
图3.1.13特定的端口范围扫描
4)-v:详细模式,能带来更多信息,进行长数据显示,-v –v是最长数据显示。命令行格式为:nmap –v IP地址,如nmap –v 192.168.0.5,则可对目标主机192.168.0.5进行详细模式扫描,输出结果如图3.1.14所示。
5)-host_timeout<毫秒数>:超时参数,具体制定nmap对某个IP的扫描时间总量,超过则作不通处理,默认值是不做设定。网络设备上被过滤掉的端口一般会大大延长侦测时间,设置超时参数有时可以显著降低扫描网络所需时间。Nmap会显示出哪些网络设备响应超时,这时就可以对这些设备进行个别处理,从而保证大范围网络扫描的整体速度。命令行格式为:nmap –host_timeout <毫秒数> IP地址,如nmap –host_timeout 4000 192.168.0.5,则可指定在4000 ms内对目标主机192.168.0.5进行扫描,输出结果如图3.1.15所示。
对Nmap的不同参数进行组合,可根据不同需要实现对目标主机的功能强大的灵活扫描,例如:对192.168.0.1-192.168.0.10范围内的主机进行SYN半开扫描,探测哪些主机提供FTP或者HTTP服务,并将扫描结果存放到ftphttpscan_result.txt文件中,则命令行为:Nmap –sS –p 23, 80 –oN ftphttpscan_result.txt 192.168.0.1-10,输出结果如图3.1.16所示。
图3.1.14 详细模式扫描
图3.1.15 指定超时参数扫描
图3.1.16 探测哪些主机提供FTP或者HTTP服务
(四)分析与思考
1、仔细阅读nmap参考文档,了解并尝试验证nmap其他参数的功能及不同参数的组合,并分析各自的技术原理和优缺点。
2、熟悉netstat等端口查看与管理工具。 3、如何对网络端口扫描进行防范?
4、编程实现一个简单的端口扫描程序。 四、实验提交材料
1、实验报告。
实验报告应包括以下内容:实验名称、实验目的、实验内容及要求、实验过程及结果、实验中的问题及心得。
实验格式参见“附录:实验报告样例”。
正在阅读:
网络端口扫描实验指导 - 图文05-02
周末趣事作文500字06-23
高一第一章物理公式推导与记忆05-26
(专题密卷)河北省衡水中学2014届高考数学 万卷检测 负数、算法、推理 文07-20
华为测试与练习05-15
2017年分管后勤副校长述职报告(2018参考价值极高)06-17
高二数学期中考试模拟卷03-06
中秋语录大全02-06
常用英语接待口语10-27
电缆支架制作安装方案03-30
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 端口
- 扫描
- 指导
- 实验
- 图文
- 网络
- 医疗废物流失、泄漏、扩散和意外事故应急预案
- 部编版二年级下册语文课内课外阅读训练集锦及部分参考答案
- 创新教育作业
- 8课实务课预习讲义
- 体育用品在线商店毕业论文 - 图文
- 《中国近现代史纲要》(第九章)同步练
- 不用鼠标操作全攻略
- 联想收购IBM PC业务案例分析
- 试题15 化工 职业技能鉴定
- 2017版《三年高考两年模拟》生物汇编专题:019专题十九 种群与群
- 华为招聘600基础题
- 卫星海洋学
- 华师版历史七上学案(胡明理)
- 电机拖动复习
- 石油地质学复习资料(2)
- 基于DSP的数字逆变电源的设计(毕业设计)
- “十三五”规划重点-铝铬砖项目建议书(立项报告)
- 第一章-古代文学-复习资料
- 《C语言程序设计》实验指导书答案
- 商务谈判B卷及答案