Kali Linux Web渗透测试手册(第二版) - 2.3 - 使用Nmap进行扫描和识别应用服务
翻译来自:掣雷小组
成员信息:
thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt,
这个公众号,一定要关注哦,慢慢会跟上面老哥们一起分享很多干货哦~~
标记红色的部分为今日更新内容。
第二章:侦察
介绍
2.1、被动信息收集
2.2、使用Recon-ng收集信息
2.3、使用Nmap扫描和识别应用服务
2.4、标识web应用程序防火墙
2.5、确定HTTPS加密参数
2.6、使用浏览器的开发工具分析和更改基本行为
2.7、获取和修改cookie
2.8、利用robots.txt
2.3、使用Nmap进行扫描和识别应用服务
Nmap是世界上使用最多的端口扫描器,它可以用于识别活动主机、扫描TCP和UDP开放端口、检测防火墙、获取在远程主机上运行的服务版本,甚至使用脚本发现和利用漏洞。
在此小节中,我们将使用Nmap来识别在目标应用服务器上运行的所有服务及版本,为了方便学习,我们将在对Nmap的几次演示中进行此操作,也可以使用一条命令完成。
准备
我们需要让我们的靶机 vm_1 运行起来
怎么做…
本小节的所有任务都可以通过一个命令来完成,为了更好的说明它们的功能和结果,这里分别展示了它们:
首先,我们想要知道服务器是否响应ping,或者主机是否是启动状态:
# nmap -sn 192.168.56.11
现在,我们可以知道这个主机是在启动的状态,让我们看看它的哪些端口是打开的:
# nmap 192.168.56.11
现在我们将告诉Nmap向服务器询问它正在运行的服务版本,并且据此来猜测操作系统:
# namp -sV -o 192.168.56.11
我们可以看到,我们的 vm_1 很可能是一个Linux操作系统(Nmap无法准确的确定它)。它使用Apache 2.2.14 web服务器、PHP 5.3p1、Jetty 6.1.25等等。
它是如何工作的…
Nmap是一个端口扫描器;这代表着它将数据包发送到指定IP地址上的一些TCP或UDP端口,并且检查是否有响应。如果有,则表示端口是开放的;即服务在该端口上运行。
在第一条命令中,对于-sn参数,我们指示Nmap只检查该服务器是否响应ICMP请求(或者是ping)。我们的服务器给出了响应,所以该主机是在存活状态的。
第二个命令是调用Nmap最简单的方法;它只指定目标IP地址。它所做的是ping服务器;如果它做出响应,那么Nmap将向1000个TCP端口的列表发送探测器,以查看哪个端口响应以及如何响应,然后它报告结果,显示哪些端口是打开的。
第三条命令在第二条命令的基础上添加了以下两个参数:
-
-sV:请求找到每个开放端口banner-header或自我标识,也就是每个端口运行服务的版本
-
-o:告诉Nmap尝试使用从开放端口和版本信息的信息来猜测目标上运行的操作系统。
更多…
使用Nmap时的其他有用参数如下所示:
-
-sT:默认情况下,当它作为root用户运行时,Nmap使用一种称为SYN扫描的扫描类型。使用这个参数,我们强制扫描器执行完全连接扫描,它速度较慢,并且会在服务器日志中留下一条记录,但不太可能被入侵检测系统检测到或被防火墙阻止。
-
-Pn:如果我们已经知道主机时存活的但是没有响应ping,我们可以使用这个参数告诉Nmap跳过ping测试并扫描所有指定的目标(假设它们已经启动)
-
-v:这是冗长模式。Nmap将展示更多关于它正在扫描中的信息。这个参数可以在同一个命令中多次使用,使用的越多,得到的反馈就越多(-vv或-v –v –v –v )
-
-p N1,N2,…N3:如果要测试特定端口或一些非标准端口,我们可能需要使用这个参数,其中N1到Nn时我们希望Nmap扫描的端口号。例如,要扫描21、80到90和137,参数奖是-p 21,80-90,137。另外,使用-p- Nmap将扫描0到65之间的所有端口和536端口
-
--script=script_name:Nmap包含许多有用的脚本,用于漏洞检查,扫描或者识别,登录测试,命令执行,用户枚举等等。使用此参数告诉Nmap在目标的开放端口上运行脚本。您可能想了解以下Nmap使用的一些脚本:https://nmap.org/nsedoc/scripts/。
另请参阅
尽管Nmap是最流行的,但它并不是唯一可用的端口扫描器,根据不同的环境,它可能不是最好的选择。Kali Linux中还有其他的一些替代方案,例如:
-
Unicornscan
-
Hping3
-
Masscan
-
Amap
-
Metasploit’s scanning modules