当前位置: 首页 > 科技观察

Linux下NMAP常用扫描介绍(二)_0

时间:2023-03-19 22:06:18 科技观察

在我们之前的NMAP安装文章中,列出了10种不同的ZeNMAP扫描模式,其中大部分使用不同的参数。各种不同的参数代表要执行的不同扫描模式。之前我们介绍过两种扫描类型,PING扫描和UDP扫描,本文将介绍剩下的两种常用的扫描类型。四种通用扫描类型下面列出四种最常用的扫描类型:PING扫描(-sP)TCPSYN扫描(-sS)TCPConnect()扫描(-sT)UDP扫描(-sU)当我们使用NMAP来执行时一次扫描,这四种扫描类型是我们需要掌握的。更重要的是,你需要知道这些命令是做什么的,你需要知道这些命令是如何完成的。本文将介绍两种类型的TCP扫描-TCPSYN扫描和TCPConnect()扫描。TCPSYN扫描(-sS)TCPSYN扫描是默认的NMAP扫描方法。为了运行TCPSYN扫描,您需要拥有root权限。TCPSYN扫描的目的是在被扫描的系统上找到打开的端口。使用NMAP扫描扫描防火墙另一端的系统。通过防火墙扫描时,扫描时间会增加,因为数据包会变慢。TCPSYN扫描的工作方式是启动“三次握手”。如另一篇文章所述,两个系统之间发生“三次握手”。首先,源系统向目标系统发送一个数据包,这是一个同步(SYN)请求。然后目标系统将以同步/确认(SYN/ACK)响应。接下来,源系统将以确认(ACK)响应,从而建立通信连接,然后数据可以在两个系统之间传输。TCPSYN扫描通过执行以下步骤工作:源系统向目标系统发送同步请求,其中包括端口号。如果在上一步中添加的请求端口号是开放的,那么目标系统将以SYN/ACK响应源系统。源系统通过重置(RST)响应目标系统,从而断开连接。目标系统可以通过重置/确认(RST/ACK)来响应源系统。这个连接已经开始建立,所以这被认为是半开连接。因为连接状态是由NMAP管理的,所以你需要有root权限。如果正在扫描的端口已关闭,则执行以下步骤:源系统向目标系统发送一个同步(SYN)请求,其中包括一个端口号。由于端口已关闭,目标系统使用重置(RST)响应源系统。如果目标系统在防火墙后面,ICMP传输或响应将被防火墙阻止。在这种情况下,将执行以下步骤:源系统向目标系统发送一个同步(SYN)请求,其中包括一个端口号。没有响应,因为请求被防火墙过滤了。这种情况下,端口可能被过滤了,也可能是开放的,也可能是不开放的。防火墙可以设置为禁止指定端口上的所有数据包出站。防火墙可以阻止所有进入指定端口的数据包,因此目标系统不会收到请求。注意:在启用了防火墙的系统上可能不会出现任何响应。即使在本地网络上,您也可能会发现端口被过滤。我将对单个系统(10.0.0.2)执行TCPSYN扫描,如图1所示。使用命令sudonmap-sS执行扫描。可以改为单个IP地址,如图1所示,也可以使用一组IP地址。图1可以看到下面没有显示997过滤端口。NMAP发现两个开放端口:139和445。注意:请记住,NMAP只会扫描最知名的1000多个端口。后面会介绍其他可以扫描所有端口或者特定端口的扫描。扫描由WireShark捕获,如图2所示。在这里,您可以看到对目标系统的初始地址解析协议(ARP)请求。ARP请求下方是一长串到达目标系统端口的TCP请求。第4行到达http-alt端口(8080)。源系统的端口号是47128。如图3所示,许多SYN请求只有在得到响应后才会发送。图2图3在图3的第50行和第51行,您可以看到向目标系统发送了一个重置??(RST)数据包。第53和55行显示来自目标系统的RST/ACK(重置/确认)。第50行用于“microsoft-ds”端口(445),第51行用于“netbios-ssn”端口(135),如我们所见,两个端口均已打开。(LCTT译注:在第50和51行之前,目标系统发回了一个SYN/ACK响应,表示端口是开放的。)除了这些端口,没有其他的ACK(响应)来自目标系统。每个请求可以发送1000次以上。如图4所示,目标系统是Windows系统,我关闭了系统防火墙,再次运行扫描。现在,我们看到997个关闭端口而不是997个过滤端口。目标系统上的端口135之前被防火墙阻止,现在已启用。图4TCPConnect()扫描(-sT)虽然TCPSYN扫描需要Root权限,但TCPConnect()扫描不需要。在此扫描期间执行完整的“三次握手”。由于不需要root权限,因此此扫描在无法获得root权限的网络上很有用。TCPConnect()扫描也通过执行“三次握手”来工作。如上所述,“三次握手”发生在两个系统之间。源系统向目标系统发送同步(SYN)请求。然后目标系统将以同步/确认(SYN/ACK)响应。最后,源系统以确认(ACK)响应,建立连接,然后数据可以在两个系统之间传输。TCP连接扫描通过执行以下步骤来工作:源系统向目标系统发送同步(SYN)请求,其中包括端口号。如果上一步请求的端口是开放的,目标系统将以同步/确认(SYN/ACK)响应源系统。源系统用确认(ACK)响应目标系统以完成会话创建。然后,源系统向目标系统发送一个重置(RST)数据包以关闭会话。目标系统可以使用同步/确认(SYN/ACK)响应源系统。如果执行了步骤2,则源系统知道步骤1中指定的端口已打开。如果端口关闭,那么会发生与TCPSYN扫描相同的事情。在第2步中,目标系统将使用重置(RST)数据包响应源系统。可以使用命令nmap-sT执行扫描。可以改为单个IP地址,如图5,也可以使用一组IP地址。TCPConnect()扫描的结果如图5所示。在这里,您可以看到打开了两个端口:139和445,正如TCPSYN扫描所发现的那样。端口80已关闭。其余未显示的端口被过滤。图5让我们关闭防火墙重新扫描,扫描结果如图6所示。图6关闭防火墙后,我们可以看到发现了更多的端口。就像TCPSYN扫描一样,关闭防火墙后,发现139端口和445端口是开放的。我们还发现2869端口也打开了。还发现996个端口被关闭。端口80现在是996关闭端口的一部分——不再被防火墙过滤。在某些情况下,TCPConnect()扫描可以在更短的时间内完成。TCPConnect()扫描也可以找到比TCPSYN扫描更多的开放端口