不乱于心,不困于情。
不畏将来,不念过往。如此,安好。

高级Nmap侦察

信息收集是渗透入侵最重要的准备步骤之一。正您必须知道操作系统,端口,服务,应用程序,有时甚至是目标语言才有效。如果您没有花时间收集此信息,那么您很可能会浪费时间。

黑客工具箱nmap中使用最广泛,最有价值的侦察工具。还有许多其他侦查工具也很有用,例如hping和xprobe,但是nmap是判断所有其他工具的标准,强烈建议您掌握nmap。

 

这篇文章将带您了解一些更高级的功能,以便它对您来说是更有用的工具。首先,让我们启动Kali Linux并打开nmap。

 

步骤1在Kali中打开Nmap

在Kali中打开一个终端,然后键入nmap。

kali> Nmap

 

这样做时,nmap将显示如下的帮助屏幕。

 

在第一个屏幕的底部,您将看到一个名为SCAN TECHNIQUES的部分。

使用nmap的基本语法:

nmap <scantype> IP地址

我们得到如下所示的结果,其中显示了在目标计算机上打开的所有TCP端口以及该端口的默认服务。

 

 

步骤2扫描特定的端口或端口范围

有时我们正在寻找特定的端口或端口范围。Nmap使用-p开关来指定端口或端口范围。因此,如果我们只寻找端口25-150,则可以使用:

kali> nmap 192.168.89.191 -p25-150

 

如您所见,此命令仅扫描并显示该端口范围内的端口。

步骤3扫描子网

通常,我们想扫描的不止一个IP地址。Nmap允许我们使用CIDR表示法指定整个子网。因此,例如,如果我们想在整个C类子网(256个主机)上扫描端口80是否打开,我们可以输入:

kali> nmap 192.168.89.0/24 -p80

 

正如您在nmap输出的最后一行中看到的那样,它扫描了子网中的所有256个地址,并发现“ 2台主机已启动”。一台主机打开了80端口,而另一台则没有。

 

步骤4欺骗与诱饵扫描

当我们扫描不属于我们的机器时,我们经常想要隐藏我们的IP(我们的身份)。显然,每个数据包都必须包含我们的源地址,否则目标系统的响应将不知道返回到哪里。

使用nmap欺骗IP时也是如此。我们可以用nmap欺骗我们的IP地址(-S),但是结果是,我们尝试收集的任何响应和任何信息都将返回到欺骗的IP。如果我们正在扫描信息收集,则不是很有用。

更好的解决方案是混淆我们的IP地址。换句话说,将我们的IP地址掩埋在许多IP地址中,以使网络/安全管理员无法查明扫描源。Nmap允许我们使用诱饵IP地址,以便看起来许多IP地址正在扫描目标。

我们可以通过使用-D开关来做到这一点,例如:

nmap -sS 192.168.89.191 -D 10.0.0.1,10.0.0.2,10.0.0.4

 

此扫描将使用三个诱饵IP地址,但也会使用我们自己的地址。这样,我们就可以得到响应和目标的信息,并且系统的管理员可以同时看到来自四个系统的扫描。这样,他就无法轻松地确定扫描的真正来源。

 

步骤5躲避防火墙

许多防火墙和路由器阻止或丢弃ICMP(回显请求,回显应答)ping。这旨在掩盖防火墙后主机的存在,并使用ping数据包防止可能的DoS。

当您使用nmap扫描系统或网络时,默认情况下,它会发出ping命令以查看主机是否启动,并且是否获得响应,然后会发送指定的数据包以扫描系统。如果ping被阻止或丢弃,nmap将放弃并说“主机已关闭”。

为了绕开阻止或丢弃ping的防火墙和路由器,我们需要抑制nmap发出初始ping的默认行为,并越过阻止我们的防火墙。我们可以使用-P0开关来做到这一点:

kali> nmap -sS -P0 192.168.89.191

 

 

步骤6收集版本信息

当nmap运行端口扫描时,它将检索端口信息(打开/关闭/过滤),然后为我们提供在该端口上运行的默认服务。由于可以在任何端口上运行任何服务,因此这可能不是足够的信息。如果我们的攻击需要在特定端口上提供特定服务,则收集默认信息可能还不够。

我们需要知道该端口上实际正在运行什么服务,而不是默认服务。例如,知道端口80是开放的并且正在运行http是很好的了解,但是如果我们的攻击特定于Apache,则如果目标在该端口上运行了Microsoft的IIS,它将无法正常工作。我们经常需要端口上的服务。

Nmap具有查询在每个扫描端口上运行的服务的功能。可以与-V开关一起使用,例如:

kali> nmap -V 192.168.89.191

 

请注意,在上面的输出中,服务器正在端口80上运行IIS的较早版本。

 

步骤7UDP扫描

到目前为止,我们所有的扫描都是针对TCP端口的。一些服务和端口使用UDP与外界通信。我们之前的扫描类型(-sS和-sT)将找不到UDP端口,因为它们仅在寻找TCP端口。某些服务仅在UDP上运行,例如NTP(端口123)和SNMP(端口161)。要找到这些端口和服务,我们需要进行UDP扫描。我们可以使用-sU开关来做到这一点:

kali> nmap -sU 192.168.89.191

 

如您所见,UDP扫描揭示了我们的TCP扫描找不到的端口和服务。

 

步骤8原因

请注意,在上述UDP扫描的输出中,某些端口被报告为已打开/已过滤。这表明nmap无法确定端口是打开的还是被防火墙等设备过滤。

与TCP端口在关闭时以RST数据包响应不同,UDP端口在关闭时以ICMP数据包响应。由于中间设备(防火墙或路由器)经常会阻止或丢弃ICMP响应,这会使扫描的可靠性大大降低。

Nmap有一个开关,它将返回将特定端口置于特定状态的原因。例如,我们可以使用–reason开关运行与上面相同的UDP扫描,而nmap将返回相同的结果,但这一次将为我们提供确定端口的特定状态的原因。

kali> nmap -sU–reason 192.168.89.191

 

请注意,在上面的屏幕快照中,我突出显示了nmap发现端口123已打开或已过滤的“原因”。Nmap告诉我们它收到“无响应”,因此它不知道该端口是打开还是过滤。

 

步骤9使用清单

很多时候,我们想扫描一个IP地址列表,而不是整个子网。我们可以使用任何文本编辑器来创建IP地址列表,并将其“馈入” nmap。在这里,我使用的是内置于Kali中的Leafpad(可以使用任何文本编辑器)来汇总我要扫描的IP地址列表。

 

然后,我可以在nmap中使用此IP地址列表,而不必在每次扫描时都重新键入这些IP地址。

kali> nmap -iL scanlist.txt

 

如您所见,nmap扫描了我在文本文档中列出的所有五个IP地址,但仅发现两个已启动。

 

步骤10输出到文件

如果我们要扫描多个IP地址,则可能需要将输出保存到文件中以供以后参考。尽管nmap有许多保存输出的方式和格式,但我更喜欢-oN(正常输出)开关。

只需在命令末尾添加-oN开关,并在其中添加要将输出保存到的文件名即可。在这里,我使用了一个名为“ portscan.txt”的文件:

kali> nmap -sS 192.168.89.191 -oN portscan

 

当我运行命令时,我将相同的输出显示到屏幕上,但是我也将该输出保存到文件中。我可以使用cat来查看该文件的内容,更多或更少的命令。在这里,我使用了cat命令。

kali>cat portscan.txt

 

如您所见,通过nmap扫描始终出现在屏幕上的输出现在已保存到文件中,以供以后参考和永久使用。

 

赞(0) 打赏
未经允许不得转载:seo优化_前端开发_渗透技术 » 高级Nmap侦察

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏