扫描主机

判断存活性

nmap在探测前会把域名通过DNS解析器解析为IP地址,也可以使用指定的DNS解析器进行解析,使用--dns-servers参数指定

使用ICMP

扫描端口

强制扫描端口

在扫描目标机器时,跳过“Ping探测”阶段,直接强制扫描端口,以此来绕过防火墙的拦截。

在默认情况下,当你使用 Nmap 扫描一个 IP 时,它会先发送一个 ICMP 请求(也就是俗称的 Ping) 去试探一下目标主机是否“活着”。

  • 如果主机有回应,Nmap 才会接着扫描它的具体端口。
  • 如果主机没有回应(Ping不通),Nmap 就会认为这台机器没开机或不存在,直接停止后续的扫描。

很多服务器为了安全,会开启防火墙并禁止 Ping(也就是拦截 ICMP 数据包)。

  • 如果你不用 -Pn 参数:Nmap 会因为 Ping 不通目标而放弃扫描,导致你获取不到任何端口信息,即使这台机器其实是正常运行的。
  • 如果你加上 -Pn 参数: 你就是在告诉 Nmap:“别管这台机器能不能 Ping 通,直接假设它是活着的,给我硬扫它的端口。”

指定端口扫描

使用命令-p m-n扫描之间的所有端口

端口的情况说明

  • Open 表示端口处于开放状态
  • Closed 表示端口处于关闭状态
  • Filterd 表示端口处于过滤无法收到信息
  • UnFilterd 表示端口收到返回的probe,但是无法确认
  • Open/UnFilterd 表示端口处于开放或者未过滤状态
  • Closed/UnFilterd 表示端口处于关闭或者为过滤状态

识别指纹

为了确保有一个成功的渗透测试或网络设备监控,必须需要知道目标系统中服务的指纹信息。服务指纹信息包括服务端口、服务名和版本等。

通过分析目标往Nmap发送的数据包中某些协议标记、选项和数据,我们可以推断发送这些数据包的操作系统等。

nmap通过向目标主机发送多个UDP与TCP数据包并分析其响应来进行操作系统指纹识别工作

全面扫描

-A通常用于对目标进行深度且全面的扫描,并实时查看扫描进度。

  • -A (全面扫描 / 综合扫描) 这是一个“强力”参数(Aggressive scan options)。启用它相当于同时开启了 Nmap 的四个高级功能,可以一次性获取目标机器极其丰富的指纹和配置信息:
    1. 操作系统探测 (-O):尝试识别目标机器运行的操作系统类型及版本。
    2. 服务版本探测 (-sV):探测开放端口上具体运行的服务及版本号(也就是你上一节记的内容)。
    3. 默认脚本扫描 (-sC):使用 Nmap 脚本引擎 (NSE) 中的默认脚本集合对目标进行自动化安全测试(比如检测常见漏洞、获取更详细的服务信息)。
    4. 路由追踪 (--traceroute):追踪从你的电脑到目标主机之间经过的路由节点。
    • 注意:因为动作很大,发送的数据包非常多,所以扫描速度较慢,且极易被目标防火墙或 IDS(入侵检测系统)记录和拦截。

其他参数

详细输出

  • -v (详细输出模式 / Verbose)
    • 由于 nmap 扫描极其耗时,如果什么都不加,终端界面会一直卡在那里没有任何反馈,让人误以为程序死机了。
    • 加上 -v 后,Nmap 会在扫描过程中实时打印出它正在做什么(例如:“发现了一个开放的 80 端口”、“正在尝试识别操作系统”等)。
    • 提示:如果想看更底层的详细信息,可以使用 -vv(双重详细)。

常见使用