rustscan 的定位
rustscan 用高并发 TCP 握手先把开放端口快速筛出来,再通过 -- 把目标交给 nmap 做服务识别与脚本扫描。它省掉的是全端口扫描中最耗时的发现阶段,适合大网段初筛;代价是探测行为集中且噪音大,容易触发防护告警与临时封禁,使用前需要报备并控制并发。
基本信息
| 定位 | 快速端口发现,服务识别交给 nmap |
|---|---|
| 联动 | -- 之后的参数原样传给 nmap |
| 调优 | --ulimit 文件描述符上限、--tries 重试次数、-b 批大小 |
| 输出 | 默认逐行列出开放端口,--greppable 便于管道处理 |
| 前置 | 确认目标范围与源 IP 已报备,评估窗口内执行 |
典型使用场景
- 大网段初筛:先用全端口快速发现,再对开放主机的端口做深度识别
- 时间受限的窗口:把端口发现压缩到分钟级,把评估时间留给手工验证
- 资产核对:与台账比对,找出未登记却开着服务的端口
- 与 nmap 分工:rustscan 负责发现,-sV 与脚本扫描保证识别质量
- 结果导出:用 --greppable 把端口清单喂给后续脚本做批量检测
使用示例
使用示例
# 全端口快速发现,随后交给 nmap 做版本与脚本扫描
rustscan -a 10.0.10.5 --ulimit 5000 -p 1-65535 -- -sV -sC
# 小范围目标减少重试,降低对老旧设备的打扰
rustscan -a 10.0.10.0/24 --tries 2 -b 500 -- -sV
# 只验证已知端口,输出便于脚本消费
rustscan -a 10.0.10.5 -p 80,443 --greppable
# 加超时,避免个别主机拖慢整体进度
rustscan -a 10.0.10.5 -p 1-1000 --timeout 1500 -- -sV输出逐列读法
| 输出内容 | 含义 | 使用注意 |
|---|---|---|
| Open 10.0.10.5:22 | 握手成功的开放端口 | 不代表服务可用,需 nmap 复核 |
| Nmap 段 Port 与 State | 端口状态与协议 | open、filtered、closed 含义不同 |
| Nmap 段 Service | 服务名与版本线索 | 版本线索需与厂商公告核对 |
| ulimit 报错 | 本机文件描述符不足 | 调低 -b 或提高 ulimit 后重跑 |
对同一目标高频重试可能触发封禁与安全告警:用 --tries 与端口范围收窄控制,并在窗口内执行。
记录要包含 nmap 阶段:只留 rustscan 的端口清单会被质疑服务识别依据,完整命令与输出一起归档,同时记下执行时间窗与所用源 IP,方便客户事后关联告警日志。