Nmap 初学者:获得端口扫描的实践经验

如果您曾经执行过任何网络监控,那么您应该熟悉 Nmap。 它是一个强大的端口扫描器,允许管理员定位其网络中的薄弱环节。

您可以使用单个 nmap 命令调查整个网络、查看正在运行的服务并发现已知漏洞。 本指南展示了在 Linux 中使用 nmap 分析网络服务的一些有用方法。

如何使用 Nmap 扫描网络

Nmap 可以扫描整个网络以查找可用主机和开放端口。 有多种扫描方法可供选择。 积极扫描类型会产生更多信息,但防火墙可能会标记它们。 另一方面,隐身扫描更适合现实世界的场景。

nmap -sT scanme.nmap.org

这是一个 TCP 连接扫描。 这些类型的扫描完成了与主机的三次 TCP 握手。 但是,它也使主机可以轻松阻止此类扫描。 此外,它们还需要更长的时间才能完成。

另一方面,SYN 扫描不会完成整个三次握手。 因此,它比 TCP 连接扫描更难阻塞和更快。

>nmap -sS scanme.nmap.org

由于大多数 Web 使用 TCP,UDP 扫描的频率较低。 但是,您可以使用它们来查找 DNS、SNMP 和 DHCP 服务。

nmap -sU scanme.nmap.org

SCTP INIT 扫描是 Linux 中 nmap 的另一个强大功能。 但是,并非所有设备都使用此协议。 因此,监视面可能会更短。 无论如何,这些扫描是快速、隐蔽和准确的。

nmap -sY scanme.nmap.org

如何在 Linux 中使用 Nmap 指定主机

Nmap 允许管理员以多种方法分析网络。 您可以扫描单个 IP、IP 范围和选定的 IP。

nmap -sS 192.168.1.1
nmap -sS 192.168.1.1/24
nmap -sS 192.168.1.1 192.168.1.101 192.168.1.201

所有这些 nmap 扫描都在本地网络上执行。 你也可以用同样的方法扫描远程网络。

如果您不想遇到法律挑战,请确保您拥有所需的权限。 我们建议创建一个虚拟机 (VM) 来测试这些 nmap 命令。 这是使用虚拟机的更实际的原因之一。

如何在 Nmap 中指定端口

Nmap 默认扫描最流行的 1000 个端口。 但是,它们通常需要更多时间,并且可以触发防火墙或入侵检测系统。 我们可以指定远程端口来解决这个问题。

nmap -sS -p 80,443 192.168.1.1
nmap -sS -p 21-25,80,139,8080 192.168.1.1

您可以使用添加任意数量的端口 -p 选项。 这 -F 选项选择快速模式,基本上扫描比默认扫描更少的端口。

nmap -sS -F 192.168.1.1

–top-ports 选项允许管理员指定最流行的端口。 这对大规模侦察很有帮助。

nmap -sS --top-ports 10 192.168.1.1

如何检测服务和版本信息

Nmap 擅长查找服务及其版本信息。 在大多数情况下,这些数据非常准确。 您可以通过添加版本检测到您的 nmap 扫描 -SV 选项。

nmap -sS -sV -p 80,443 192.168.1.1

Nmap 利用多种技术来获取版本信息。 您可以使用 –版本强度 选项。 强度越大,结果越准确。 但是,它们也需要更多的时间。

nmap -sS -sV --version-intensity 9 192.168.1.1

您还可以使用 nmap 来检测操作系统版本。 这非常有帮助,因为您会立即发现过时的服务。

nmap -sS -O -p 80,443 192.168.1.1

–osscan-猜测 在某些情况下,选项可能会提供更多信息。 但是,它更具侵入性。

nmap -sS --osscan-guess 192.168.1.1

您还可以使用 -一种 用于启用版本和操作系统检测以及跟踪路由的选项。

nmap -sS -A -p 80,443 192.168.1.1

如何在 Linux 中使用 Nmap 脚本?

Nmap 脚本结合了强大和灵活性。 管理员可以从各种社区驱动的 NSE 脚本中进行选择,也可以自己创建自定义脚本。 Nmap 对默认脚本进行分类以使其更易于使用。

nmap --script=version 192.168.1.1

Nmap 脚本用 Lua 编写并存储在 /usr/share/nmap/nselib/. 其他一些有趣的 NSE 脚本包括 auth、vulns、exploit 和 brute。 您可以使用逗号分隔的列表来使用多个脚本。

nmap --script=version,auth 192.168.1.1

在逗号之间添加空格会中断扫描。 确保避免它们。 您还可以使用指定相关脚本 bash风格的通配符。

nmap --script=http* 192.168.1.1

您可以随时使用 –脚本帮助 选项。

nmap --script-help "discovery"

如何在 Linux 中控制 Nmap 的扫描时间

Nmap 提供开箱即用的出色性能。 但是,您也可以调整满足扫描目标的时间。 这 -T 选项允许我们在零到五之间设置时间模板。 更高的值指定更快的扫描。

nmap -sS -T 2 --top-ports 10 192.168.1.1

用户还可以指定 nmap 发送的每个探测之间的延迟。 您可以使用它来规避防火墙。 延迟以秒为单位指定。

nmap -sS --scan-delay 1 --top-ports 10 192.168.1.1

如何避开 Nmap 扫描的防火墙?

自 Nmap 发布以来,技术已经取得了长足的进步。 今天的大多数防火墙都可以检测端口扫描并完全阻止源地址。 Nmap 提供了几种逃避防火墙和 IDS 的方法。

nmap -sS -D 192.168.1.111 --top-ports 10 192.168.1.1

-D 选项设置诱饵 IP 地址。 不过,这不会掩盖您的 IP。 相反,它看起来像是多个主机正在发送相同的扫描探测。

nmap -sS -e wlp2s0 -S 192.168.1.111 --top-ports 10 192.168.1.1

您可以使用 -S 欺骗您的 IP 地址的选项。 您将需要使用 -e 不过,用于欺骗您的源地址的选项。 它将接口名称作为参数。 您还可以欺骗 MAC 地址。

nmap -sS --spoof-mac 0 --top-ports 10 192.168.1.1

指定零值 –spoof-mac 告诉 nmap 为该会话生成一个随机 MAC。 您始终可以使用自定义地址。

如何管理 Nmap 输出

Nmap 提供了几种处理扫描输出的方法。 您可以将扫描会话的结果保存到特定文件。

nmap -sS -p 80,443 -oN scan-output 192.168.1.1

许多管理员喜欢将输出保存为 XML。 这使得解析更容易。

nmap -sS -p 80,443 -oX scan-output 192.168.1.1

我个人喜欢将输出保存在 grepable 文件中。 这使得使用流行的 Unix 工具(如 grep、cut 和 awk)更容易解析数据。

nmap -sS -p 80,443 -oG scan-output 192.168.1.1

使用 Nmap 分析网络服务

Nmap 使网络发现变得毫不费力。 您可以从多种扫描技术中进行选择,以满足不同的目标。 此外,强大的 NSE 脚本集合使查找易受攻击的服务变得更加容易。