30 Nmap实例

376 阅读6分钟

本教程展示了30个Nmap使用实例,与以前发表在Linux Hint的文章中解释的主题有关。

例子包括从主机发现到漏洞审计,网络诊断等等。它们中的大多数是在真实或模拟场景中产生的,因此对网络管理员或学生有真正的价值。

实施本教程中描述的例子是非常简单的,就像运行一个命令。

本文涉及的所有主题包括。

注意: 本教程的最后一次更新是在2021年10月。

用Nmap Ping扫瞄

Ping扫频是一种用来发现网络或范围内的实时主机的技术。

Nmap ping扫频的例子在Nmap ping扫频中得到了深入解释。

要用Nmap执行ping扫频,您需要执行-sP或-sn选项,它们指示Nmap在发现后避免端口扫描。

在下面的例子中,一个通配符被实现,指示Nmap发现所有在线的C类网络主机或设备。

nmap -sP192.168.0.*

在前面的例子中,Nmap只确认主机是活的,没有扫描目标。相反的是 -Pn选项,它指示Nmap开始扫描而不检查主机是否活着。

nmap -Pn192.168.0.2-240

最后,它将打印实时主机的总数,如下面的截图所示。

你可以看到,从239个扫描的地址中,有10个是在线设备。

用Nmap的-p标志定义端口

定义用Nmap扫描的端口很容易,只要在端口后面加上标志 -p后面是端口,或用逗号分隔的端口,如下图所示。

nmap -p 80,22,139,21,23192.168.0.*

在下面的例子中,端口范围用连字符定义,以扫描22到80的Linux提示端口范围。

nmap -p 22-80 linuxhint.com

下面的例子显示Nmap扫描由逗号分隔的两个不同的端口范围。

nmap -p 20-80,100-600 192.168.0.3-14

有许多方法可以指定用Nmap扫描的端口。我们已经发布了一个教程,展示了用Nmap扫描所有端口的不同方法。其中一种扫描目标上所有端口的方法需要实现-p-选项,如下例所示。

nmap -p-linuxhint.com

本节的最后一个例子显示通过Nmap套件的一部分Nping执行的ARP扫描,它继承了Nmap的标志来定制ARP扫描。

nping--arp-typeARP 192.168.1.100-104

如您所见,Nping用适当的MAC地址识别了每个IP。

Nmap FIN扫描例子

下一个例子是对一个端口范围进行积极的FIN扫描。

nmap -sF -T4192.168.0.3-14

这是一个针对单个设备的疯狂的FIN扫描的例子。

nmap -sF -T5192.168.0.3

为了结束FIN扫描的例子,让我们对一个metasploit虚拟设备做一个不太积极的扫描。

nmap -sF -T2192.168.56.1

Nmap NULL扫描例子

下面的例子显示了对linuxhint.com80端口进行的NULL扫描。记住Nmap的NULL、Xmas和FIN扫描在许多情况下不能区分开放和过滤的端口。

sudo nmap -v -sN -p 80linuxhint.com

现在,让我们试试对路由器进行疯狂的扫描。

nmap -sN -T5192.168.56.1

通常NULL、Xmas和FIN扫描在端口开放时无法区分过滤和开放的端口,下一个例子包括了-sV选项来帮助它区分,但加入这个选项会导致扫描不那么隐蔽。

nmap -sN -T2 -sV-p80,22,21,139192.168.56.1

Nmap Xmas扫描例子

用Nmap进行Xmas扫描在这篇文章中已经深入解释了。

下面,您可以看到一个对目标192.168.56.1进行积极的Xmas扫描的例子。

nmap -sX -T4192.168.56.1

现在,对80和22号端口进行一次不太积极的Xmas扫描。

nmap -sX -T2-p80,22192.168.0.3

下面的例子类似于上面的例子,但包括了2级粗暴性。

nmap -sX -T2 -v2-p80,22192.168.0.3

正如你所看到的,最后一个输出显示了比前面的输出更多的信息。

更新脚本数据库

Nmap包含一套具有附加功能的脚本。这个套件被称为NmapNSE

在使用Nmap NSE之前,通过运行下面的命令更新数据库。

nmap --script-updatedb

一旦更新,您可以继续使用Nmap NSE。

通过SMB协议获取设备操作系统、工作组、域、设备名称

下面的例子使用NSE脚本-script smb-os-discovery(https://nmap.org/nsedoc/scripts/smb-os-discovery.html)对网络172.31.X.X的最后2个八位字节进行搜索

nmap -p 445 --scriptsmb-os-discovery172.31.*.*

正如你在下面的截图中看到的,第一个可能受攻击的目标是一个。

下面的截图显示,发现了一个新的易受攻击的目标。

发现了两台Windows XP电脑,是进行空闲扫描的最佳人选,本教程下文将对此进行解释。

为空闲扫描寻找僵尸

下面的例子显示了如何通过使用NSE脚本ipidseq(https://nmap.org/nsedoc/scripts/ipidseq.html)扫描10.100.100.X网络的最后一个八位数来搜索僵尸候选者来执行空闲扫描。

nmap -p80 --脚本ipidseq 10.100.100.*

另一种方法是找到潜在的僵尸候选人进行空闲扫描。

nmap -Pn -O -v192.168.56.102

执行空闲扫描

使用在上一步找到的候选者运行一个空闲扫描。

nmap -Pn -sI10.100.100.108 -p80,21,22,443172.31.124.141

使用相同的候选人对网关进行另一次空闲扫描。

nmap -Pn -sI172.31.100.108 -p80,21,22,443172.31.99.2

使用Windows 98虚拟设备对路由器的FTP进行空闲扫描。

nmap -Pn -sI192.168.56.102-p21192.168.0.1

漏洞的扫描范围

下面的例子显示了通配符的实现,以扫描整个八位数的范围。

nmap -v --scriptvuln 172.31.100.*

下面,你可以看到一个输出样本。

扫描smb-vuln-ms08-067漏洞

下面的扫描使用NSE脚本smb-vuln-ms08-067(https://nmap.org/nsedoc/scripts/smb-vuln-ms08-067.html),通过实现两次通配符,在网络的最后两个八位数上搜索远程执行漏洞。

nmap -p445 --scriptsmb-vuln-ms08-067172.31.*.*

用Nmap NSE对SSH进行蛮力攻击

Nmap NSE (Nmap Scripting Engine)在Nmap NSE教程中已深入介绍。这个例子显示了如何使用Nmap脚本引擎对目标SSH进行暴力破解。

对于这个攻击,我们将使用NSE脚本,名为ssh-brute.nse

nmap --scriptssh-brute.nse 192.168.0.3

如你所见,NSE将读取一个包括用户名和密码对的列表。当然,你可以向NSE提供你的自定义列表。

总结

我希望本教程中展示的所有Nmap例子对您有用。Nmap可能是市场上最好的网络扫描器。尽管有更快的解决方案,比如Mass Scan,Nmap以多种功能和附加脚本领先。您也可以写您自己的NSE脚本来和Nmap一起使用。

正如您所看到的,尽管Nmap很强大,但任何Linux级别的用户都可以轻松执行。深入学习Nmap对任何处理网络问题的人都非常有利。

谢谢您阅读这个展示30个Nmap例子的教程。继续关注Linux Hint,了解更多的Linux技巧和教程。