专业级Nmap使用指南:从基础扫描到高级脚本应用

本文详细介绍了Nmap网络扫描工具的专业使用技巧,包括基本扫描选项、版本探测、主机发现跳过、全端口扫描等核心功能,以及SSH、FTP、HTTP等服务的枚举脚本应用场景和操作方法。

Shenetworks推荐:像专业人士一样使用Nmap

某天工作中,我接到一个案例:客户无法连接到新服务器的管理接口。我让客户更改管理接口的IP地址后尝试连接,测试成功了。客户很困惑,询问为什么原始IP地址无法使用。我让他们ping旧地址,客户惊讶地收到了响应——该IP地址已分配给网络中其他位置的设备。虽然现在有新程序可以帮助管理IP地址和范围,但这仍然是网络中的常见问题,通常由文档不完善和配置陈旧引起。客户随后需要追踪这个非法IP地址。你会从哪里开始这个过程?我认为Nmap是完美工具。

Nmap在防御者和攻击者中都极受欢迎。它最初由作者Gordon “Fyodor” Lyon于1997年在Phrack杂志上发布。自发布以来,Nmap已发展成更复杂、更强大的工具。

作为网络工程师,我使用Nmap扫描库存并检查可用性和运行时间。作为渗透测试员,我使用Nmap收集目标信息,通过一些脚本,Nmap的用途远不止侦察。

由于Nmap有太多选项,解析它们以查看哪些对你有益可能会让人不知所措。下一节讨论我经常使用和推荐的Nmap选项和脚本。

基本的默认Nmap扫描会探测目标并检查响应。一旦Nmap验证主机可达,就会探测开放端口。默认Nmap扫描很有用,但通过一些选项,我们可以获得更多信息。

Nmap [扫描类型] [选项] {目标}

图1:Nmap帮助页面选项列表

-sL – 列表扫描

你可能想审计一系列IP地址,知道其中一些未使用。使用带-sL选项的Nmap会探测给定范围内的每个IP地址并进行反向DNS查找。域名通常有助于识别有价值的目标。结果将是可达主机及其域名的列表(如果适用)。

-sV – 版本发现

Nmap选项-sV会尝试发现主机上每个开放端口的版本信息。这些信息在任务中极其有价值。这将帮助你识别正在探测的主机类型和版本号。识别版本有助于优先处理有趣目标并识别可用漏洞。

-Pn – 跳过主机发现

网络管理员禁用ICMP协议或过滤到特定主机的流量很常见。选项-Pn跳过主机发现,假定每个IP地址都分配给主机且在线。使用此选项,Nmap可以发现更多目标,但会显著增加扫描时间。

-p- – 扫描所有端口

默认情况下,Nmap扫描1000个端口。某些服务可能开放但无法通过标准扫描发现。使用-p-选项将扫描每个端口1-65535。此选项会增加扫描持续时间。

-T4 – 激进扫描

-T4会减少扫描完成时间,如果你有快速可靠的连接,应使用此选项。

-oX {文件路径、文件名和类型} – 将结果输出到XML文件

我建议将Nmap输出保存到文件中,以便在任务后期参考。-oX选项将以XML格式保存输出。保存为XML可以轻松解析结果。当查找具有特定开放端口(如SQL或SMB)的主机时,这种解析很有帮助。

-sC – 脚本扫描

渗透测试员使用各种专用工具,但有些人可能不知道相同的任务可以通过额外的Nmap脚本完成。使用Nmap脚本快速高效。通过Nmap脚本引擎(NSE),用户可以利用各种目的的脚本集合,如发现开放端口和协议的更多细节以进行进一步枚举和暴力破解。

以下是几个Nmap脚本及其描述。这些是我经常使用的脚本。完整可用脚本列表请见:https://nmap.org/nsedoc/scripts/

  • sshv1:检查SSH服务器是否支持过时且安全性较低的SSH协议版本1。
  • DHCP discover:向UDP 67上的主机发送DHCPINFORM请求,以获取所有本地配置参数而不分配新地址。
  • ftp-anon:检查FTP服务器是否允许匿名登录。
  • ftp-brute:对FTP服务器执行暴力密码审计。
  • http-enum:枚举流行Web应用程序和服务器使用的目录。
  • http-passwd:通过尝试检索etc/passwd或\boot(ini)来检查Web服务器是否易受目录遍历攻击。
  • http-methods:通过发送OPTIONS请求找出HTTP服务器支持的选项。
  • ms-sql-info:尝试确定Microsoft SQL服务器实例的配置和版本信息。
  • mysql-enum:利用漏洞对MySQL服务器执行有效用户枚举。
  • NSF-showmount:显示NFS导出,类似于showmount -e命令。
  • rdp-enum-encryption:确定RDP服务支持的加密级别。
  • smb-enum-shares:尝试列出共享。
  • tftp-enum:通过测试常见文件名列表来枚举TFTP文件名。

Nmap是一把瑞士军刀,在紧急情况下可以替代你的一些常用工具。还有更多Nmap脚本可供探索和使用。有关Nmap的更多信息,请查看其专用网站和GitHub https://github.com/nmap/nmap 了解如何为项目做贡献。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计