新人博客,已发布文章会持续更新,有短缺请见谅,会尽快补齐,欢迎评论区提出,谢谢
本文后续会补充图片,感谢期待

1. Nmap 简介与基础用法

Nmap(Network Mapper)是 Kali Linux 中不可或缺的网络探测和安全审计工具,能够快速扫描大规模网络,识别存活主机、开放端口、操作系统及运行的服务版本。它既适合安全工程师进行渗透测试,也适合网络管理员进行资产管理。

在 Kali 中,Nmap 默认已安装,直接在终端输入 nmap 即可使用。最基础的用法是指定目标 IP 或域名:

nmap 192.168.1.1

该命令会扫描目标的 1000 个常用端口,并输出端口状态(open、closed、filtered)。如果想快速了解目标网络的大致情况,这行命令足够起步。

2. 主机发现技巧

在大规模扫描前,先快速发现网络中的存活主机可以大幅提高后续扫描效率。Nmap 提供了多种主机发现技术,技巧在于选择合适的 -sn-Pn 等参数组合。

  • Ping 扫描(仅存活探测)nmap -sn 192.168.1.0/24 可快速列出网段中所有存活主机,不进行端口扫描。适用于内网 IP 段快速摸底。
  • 跳过主机发现:当目标防火墙可能过滤 ICMP 包时,使用 -Pn 参数跳过存活探测,直接假设所有目标在线并进行端口扫描。例如 nmap -Pn 10.0.0.1-100 可有效应对禁 ping 的主机。
  • 指定探测协议:Nmap 默认使用 ICMP echo、TCP SYN、TCP ACK 等组合探测。若需指定,可使用 -PE(ICMP echo)、-PS80(TCP SYN 到 80 端口)、-PA80(TCP ACK)等参数。组合多种探测能更准确地发现存活主机,如 nmap -PE -PS80 -PA443 10.10.10.0/24

灵活运用主机发现技巧,可以在渗透测试的信息收集阶段节约大量时间。

3. 端口扫描技巧

端口扫描是 Nmap 的核心功能,不同扫描类型适用于不同场景,掌握它们能绕过防火墙限制并提高隐蔽性。

  • TCP SYN 扫描(半开扫描)-sS 是默认扫描方式(需要 root 权限),发送 SYN 包后收到 SYN/ACK 即认为端口开放,不完成三次握手,速度较快且相对隐蔽。
  • TCP 连接扫描-sT 适用于非 root 用户,会完成完整三次握手,记录在目标日志中的可能性更高。
  • UDP 扫描-sU 扫描 UDP 端口,例如 nmap -sU 192.168.1.1。UDP 扫描易受速率限制,建议同时使用 --min-rate 提升速度。
  • NULL、FIN、Xmas 扫描-sN-sF-sX 通过发送无标志的 TCP 包来探测,可能绕过某些非状态防火墙。用法示例:nmap -sN target
  • 指定端口范围:用 -p 参数灵活指定端口,如 -p 22,80,443-p 1-1000-p-(扫描全部 65535 个端口)。结合 -F 则只扫描最常用的 100 个端口。

一个实用的技巧是先用 -F -T4 快速过一遍常用端口,再针对可疑主机进行全端口扫描,兼顾效率与全面性。

4. 服务版本与操作系统探测

确定开放端口后,进一步获取服务版本和操作系统指纹是安全评估关键步骤。

  • 服务版本检测-sV 参数会向开放端口发送探测包,识别服务程序名和版本号。例如 nmap -sV 192.168.1.1。若想提高探测强度,可加 --version-intensity 从 0(轻量)到 9(全面)。
  • 操作系统探测-O 参数基于 TCP/IP 协议栈指纹识别目标操作系统。需要 root 权限。使用 --osscan-guess 可让 Nmap 给出最可能的猜测,适合不太确定时。
  • 综合扫描:将端口扫描、版本检测、操作系统探测合并,常采用 nmap -A target。它会启用 -sV-O-sC(常用脚本)和 --traceroute,适合对单个目标深度分析。
  • 痕迹伪造:某些情况下为避免被测目标察觉,可配合 --spoof-mac 伪造 MAC 地址,或使用 -D 参数添加诱饵 IP 混淆探测源。

在实际渗透中,-A 通常在已获得授权且需要详尽信息时使用;若仅为初步侦察,单独使用 -sV 更低调。

5. Nmap 脚本引擎(NSE)实用技巧

Nmap 脚本引擎(NSE)是其强大扩展能力的核心,数百个内置脚本可完成漏洞检测、暴力破解、信息收集等高级任务。

  • 默认安全扫描-sC--script=default 运行一组安全且较常用的脚本,适合快速评估。
  • 按分类执行脚本:使用 --script=类别名,如 --script=vuln 运行所有漏洞相关脚本,--script=auth 运行认证相关脚本。也可以组合多类别,如 --script=vuln,intrusive
  • 执行单个或通配脚本:例如 --script=http-headers 获取 HTTP 头信息,--script=smb-* 运行所有 SMB 相关脚本。
  • 暴力破解技巧:常见脚本如 ftp-brutessh-brutehttp-brute,需配合 --script-args 传入用户名/密码字典。如 nmap -p 22 --script ssh-brute --script-args userdb=users.txt,passdb=pass.txt target
  • 获取脚本帮助:使用 nmap --script-help 脚本名 查看详细参数说明,这是掌握脚本用法的快速途径。
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐