工具使用要点60 条

nmap 基础扫描用法

nmap 是端口与服务识别的基础工具:先做主机发现,再对授权目标扫描;-sS 需要原始套接字权限,-sT 适合低权限场景,两者结果需注明。

nmap 是什么

nmap 是最常用的网络探测与端口扫描工具:先做主机发现,再向目标端口发包并根据回包判断端口状态(open 有服务响应、closed 明确拒绝、filtered 被丢弃或静默)。扫描方式分两类,-sS 半开扫描发 SYN 不等完整握手,速度快但需要原始套接字权限(root 或 CAP_NET_RAW);-sT 走系统 connect 调用,普通用户可运行但速度慢。Linux 发行版用包管理器安装,Windows 使用官方安装包。

基本信息

默认行为主机发现 + 常见 1000 个端口
常用参数-sS / -sT / -Pn / --top-ports / -p / -oA
权限要求-sS 需 root 或 CAP_NET_RAW;-sT 普通用户可用
前置条件授权网段、报备时间窗口与限速策略
产出开放端口清单,并标注扫描方式与时间

典型使用场景

  • 项目启动时摸清授权网段的开放端口,为后续服务识别排优先级
  • 验证防火墙策略是否只放行了业务必要端口
  • 变更后复核:新上线的服务是否把端口暴露到了不该暴露的网段
  • 给客户输出暴露面清单时提供端口级证据
  • 排查业务不通:先确认目标端口是 filtered 还是 closed

最小示例

最小示例
nmap -sn 10.0.10.0/24              # 先做主机发现,避免对不存在的地址发包
nmap -sS -p 22,80,443 10.0.10.5    # 扫描指定端口(需 root)
nmap -sT -Pn -p 1-1000 10.0.10.5   # 低权限场景,跳过主机发现直接扫端口
nmap -sS --top-ports 100 10.0.10.0/24   # 只扫最常见 100 个端口,控制噪音
nmap -sS -T3 --min-rate 200 -p- 10.0.10.5   # 全端口扫描时显式限速
nmap -oA scan-10.0.10.5            # 三种格式留档,便于复核与复现

输出逐列读法

字段含义正常与异常
PORT端口号与协议只关注授权范围内的端口
STATEopen / closed / filteredfiltered 多为防火墙丢弃,不等于端口关闭
SERVICE按端口号推断的服务名默认推断不可靠,需 -sV 复核
REASON判定依据,如 syn-ack、reset、no-response跨网段扫描出现大量 no-response 时先怀疑拦截设备
-sT 走系统 connect 调用,速度慢但权限要求低;同一目标用 -sS 与 -sT 结果可能不同(中间设备对半开连接的响应策略不一样),报告里要写明所用方式。
扫描频率过高会被 IPS 判为攻击行为并触发封禁:扫描前与客户监控团队同步时间窗口与出口 IP,发现被阻断后先联系解封再继续。

易错点

  • 未设 --top-ports 直接对整网段默认扫描:1000 端口乘数百 IP 的流量容易触发告警甚至被阻断
  • 把单次扫描结果当资产全量端口结论:状态防火墙与负载均衡会造成漏报,结论必须写清扫描方式与时间
  • 用 -Pn 跳过主机发现后不核对存活:中间设备回包可能让不存在的地址被误判为开放
  • 忽略出口 IP 被临时封禁的影响:后续所有测试都被牵连,需要提前报备并预留恢复时间

数据来源与参考

  • Nmap 官方文档(端口扫描技术)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌