3.2.1 Nmap
Nmap是一款开源、免费的针对大型网络的端口扫描工具。Nmap可以检测目标主机是否在线、主机端口开放情况、主机运行的服务类型及版本信息、操作系统与设备类型等信息。该工具被默认集成在Kali Linux中,也可以访问官方网站https://nmap.org/获得其他系统环境下的Nmap版本。
如图3-1所示,通过在终端中执行nmap--help命令,可以获得关于参数使用的帮助信息。
图3-1 nmap--help命令执行结果示意图
其中我们将广泛使用如下命令进行收集操作。
上述命令将调用Nmap的-sC、-sV、-v、-A共4个参数,其含义分别如下。
❑-sC:根据端口识别服务自动调用默认脚本,即Nmap将根据识别到的具体服务自动化使用对应的默认脚本进行服务详情检测。
❑-sV:扫描目标主机的端口和软件版本,即Nmap将在探测端口的前提下继续对其版本信息进行探测。
❑-v:详细信息输出,通过该参数我们将实时获得探测进度等详细信息。
❑-A:综合扫描,包含1~10000的端口ping扫描,包括操作系统扫描、脚本扫描、路由跟踪、服务探测等。
通过上述参数的组合,Nmap将对目标主机1~10000的端口进行扫描,并对扫描过程中检测到的开放端口进行服务和软件版本的探测,同时将调用对相关服务的默认脚本配置进行详情探测,并在扫描过程中实时输出详细信息。
在此基础上,如下的附加参数也经常被使用。
❑-p:指定端口,用于指定Nmap对特定端口进行单独扫描。例如,要扫描445端口,使用-p 445参数即可。如果使用-p-参数,则意味着Nmap将对目标主机1~65535的所有端口进行探测。
❑--script:调用特定Nmap脚本,使用该参数我们可以指定Nmap执行特定的检测功能。例如,当我们希望Nmap进行常规漏洞检测时,我们可以使用--script vuln参数,该参数将要求Nmap使用所有与漏洞检测相关的脚本进行漏洞检测。
作为最常用的端口扫描及服务发现工具,Nmap将被广泛用于本书的实战环节,我们将在第4~7章以及第10、11章演示该工具的使用。