当前位置:首页 > 技术 > 正文内容

Naabu 端口扫描工具指南

访客 技术 2026年6月26日 1

工具概述

Naabu 是一款基于 Go 语言开发的高性能端口扫描工具,专注于快速且精准地枚举主机上的开放端口。作为 ProjectDiscovery 工具生态系统的一部分,它在渗透测试和网络安全评估中表现出色。

基本使用方法

naabu [选项参数]

参数解析

目标输入配置

  • -target string[]: 指定扫描目标,支持单个或多个主机(用逗号分隔)。例如:-target 192.168.1.1,192.168.1.2
  • -targets-file string: 从文件加载目标列表,每行一个主机地址。例如:-targets-file hosts.txt
  • -ignore-hosts string: 排除特定主机扫描。例如:-ignore-hosts 192.168.1.100
  • -ignore-file string: 通过文件指定排除的目标列表。例如:-ignore-file excluded_hosts.txt

端口设置选项

  • -ports string: 定义要扫描的端口,可以是单个、列表或范围格式。例如:-ports 80-ports 1-1000
  • -common-ports string: 扫描最常用的端口集合,可选值为full1001000。默认扫描前100个常用端口。
  • -exclude-ports string[]: 排除某些端口的扫描。例如:-exclude-ports 22,3389
  • -ports-list-file string[]: 从文件读取端口列表进行扫描。例如:-ports-list-file ports_list.txt
  • -port-limit int: 设置端口数量阈值,超过该数值的主机将被跳过。
  • -skip-cdn: 忽略 CDN/WAF 的全端口扫描,仅检查标准 HTTP/HTTPS 端口。
  • -show-cdn-info: 输出与目标相关的 CDN 信息。

速率管理

  • -workers int: 并发线程数,默认值为25。例如:-workers 100
  • -packet-rate int: 控制每秒发送的数据包数量,默认值为1000。例如:-packet-rate 5000

更新相关

  • -update-now: 自动升级到最新版本。
  • -disable-update-check: 禁止自动检查更新。

结果导出

  • -save-output string: 将扫描结果保存至指定文件。例如:-save-output output.txt
  • -list-output-options: 查看所有可用的输出字段。
  • -filter-output-fields string[]: 根据条件过滤输出字段。
  • -json-format: 使用 JSON 格式化输出。
  • -csv-format: 使用 CSV 格式化输出。

高级功能

  • -config-path string: 指定配置文件路径,默认位于用户主目录下的.config/naabu/config.yaml
  • -scan-all-ips: 对 DNS 解析得到的所有 IP 地址进行全面扫描。
  • -ip-version string[]: 限定扫描的 IP 版本(4或6)。例如:-ip-version 4
  • -scan-mode string: 设置扫描模式为 SYN 或 CONNECT,默认为后者。
  • -source-address string: 指定源 IP 和端口,格式为x.x.x.x:yyy
  • -payload-data string: 在 CONNECT 扫描时附加负载数据。
  • -network-interfaces: 列出系统中的网络接口及公网 IP。
  • -use-interface string: 强制使用某个网络接口进行扫描。例如:-use-interface eth0
  • -run-nmap string: 调用 nmap 命令执行进一步扫描(已废弃)。
  • -nmap-command string: 直接运行自定义的 nmap 命令。例如:-nmap-command 'nmap -sV'
  • -custom-dns string: 指定自定义 DNS 解析器,支持单个或多个地址。例如:-custom-dns 8.8.8.8,1.1.1.1
  • -proxy-server string: 配置 SOCKS5 代理服务器。例如:-proxy-server socks5://127.0.0.1:9050
  • -proxy-authentication string: 提供代理认证凭据,格式为username:password
  • -resume-scan: 继续上次未完成的扫描任务。
  • -stream-mode: 启用流模式以禁用恢复、nmap 和验证等功能。
  • -passive-scan: 利用 Shodan InternetDB API 获取被动端口信息。

主机探测

  • -detect-hosts: 仅执行主机发现而不扫描端口。
  • -skip-detection: 跳过主机发现过程直接开始扫描。
  • -enable-detection: 显式启用主机发现功能。
  • -tcp-syn-probe string[]: 发送 TCP SYN 数据包进行探测。
  • -tcp-ack-probe string[]: 使用 TCP ACK 数据包检测存活主机。
  • -icmp-request-probe: 发送 ICMP echo 请求。
  • -icmp-timestamp-probe: 发送 ICMP 时间戳请求。
  • -icmp-mask-probe: 发送 ICMP 地址掩码请求。
  • -arp-ping-probe: 使用 ARP 数据包探测局域网内的主机。
  • -ipv6-discovery: 启用 IPv6 邻居发现机制。
  • -reverse-ptr: 执行反向 PTR 查询。

服务识别

  • -find-services: 自动识别开放端口对应的服务类型。
  • -identify-service-version: 获取服务的具体版本信息。

优化调整

  • -retry-count int: 设置失败后的重试次数,默认为3次。
  • -timeout-duration value: 定义超时时间,默认为1秒。例如:-timeout-duration 2s
  • -warmup-period int: 在不同扫描阶段之间增加预热时间,默认为2秒。
  • -ping-test: 在正式扫描前先对目标进行 Ping 测试。
  • -validate-ports: 验证端口状态以减少误报。

调试辅助

  • -diagnostic-check: 运行诊断程序检查环境配置。
  • -debugging: 显示详细的调试信息。
  • -verbose-mode: 开启详细输出模式。
  • -disable-color: 关闭终端颜色显示。
  • -quiet-mode: 仅输出最终结果。
  • -version-info: 查看当前 Naabu 的版本号。

云端集成

  • -cloud-auth: 配置访问 ProjectDiscovery Cloud API 的密钥。
  • -auth-config string: 指定 API 密钥配置文件路径。
  • -upload-to-dashboard: 将扫描结果上传至 PDCP UI 仪表板。
  • -team-id string: 指定上传的目标团队 ID。
  • -asset-id string: 将数据关联到现有的资产 ID。
  • -asset-name string: 定义资产组名称。
  • -upload-output string: 直接上传输出文件到 PDCP。

实际操作示例

基础扫描

# 单独扫描一个主机
naabu -target 192.168.1.1

# 同时扫描多个主机
naabu -target 192.168.1.1,192.168.1.2

# 从文件导入目标列表
naabu -targets-file targets_list.txt

端口范围扫描

# 指定具体端口
naabu -target 192.168.1.1 -ports 80,443,8080

# 扫描连续端口区间
naabu -target 192.168.1.1 -ports 1-1000

# 扫描前1000个常用端口
naabu -target 192.168.1.1 -common-ports 1000

# 全面扫描所有端口
naabu -target 192.168.1.1 -common-ports full

高级配置

# 使用 SYN 扫描模式(需管理员权限)
sudo naabu -target 192.168.1.1 -scan-mode syn

# 提升并发度和发送速率
naabu -target 192.168.1.1 -workers 100 -packet-rate 5000

# 配置代理服务器
naabu -target 192.168.1.1 -proxy-server socks5://127.0.0.1:9050

# 替换默认 DNS 解析器
naabu -target example.com -custom-dns 8.8.8.8,1.1.1.1

输出控制

# 将结果存储到文件
naabu -target 192.168.1.1 -save-output results.txt

# 输出 JSON 格式的扫描报告
naabu -target 192.168.1.1 -json-format -save-output results.json

# 生成 CSV 文件
naabu -target 192.168.1.1 -csv-format -save-output results.csv

# 静默模式下只打印关键信息
naabu -target 192.168.1.1 -quiet-mode

主机探测

# 专门执行主机发现
naabu -targets-file targets_list.txt -detect-hosts

# 结合多种探测方式
naabu -targets-file targets_list.txt -enable-detection \
  -icmp-request-probe \
  -tcp-syn-probe 80,443 \
  -arp-ping-probe

服务识别

# 查找开放的服务
naabu -target 192.168.1.1 -find-services

# 获取服务版本详情
naabu -target 192.168.1.1 -identify-service-version

# 结合 nmap 进行深入分析
naabu -target 192.168.1.1 -nmap-command 'nmap -sV -sC -A'

优化扫描

# 跳过 CDN 主机的全面扫描
naabu -targets-file targets_list.txt -skip-cdn

# 展示 CDN 的相关信息
naabu -targets-file targets_list.txt -show-cdn-info

# 调整重试次数和超时时间
naabu -targets-file targets_list.txt -retry-count 5 -timeout-duration 2s

# 开启端口状态验证
naabu -targets-file targets_list.txt -validate-ports

实用技巧

# 管道输入处理
cat targets_list.txt | naabu -quiet-mode

# 与其他工具联动
subfinder -d example.com -quiet-mode | naabu -quiet-mode -save-output ports.txt

# 批量扫描并汇总结果
for ip in $(seq 1 254); do
  naabu -target 192.168.1.$ip -common-ports 100 -quiet-mode
done > all_ports.txt

典型应用场景

渗透测试中的信息收集

# 快速定位目标的开放端口
naabu -targets-file targets_list.txt -common-ports 1000 -packet-rate 2000 -workers 50 -quiet-mode > open_ports.txt

企业资产盘点

# 探测内网中的活动服务
naabu -targets-file corporate_ips.txt -ports 1-65535 -packet-rate 1000 -skip-cdn -validate-ports -json-format > assets.json

漏洞扫描预备工作

# 筛选出 Web 类型的服务
naabu -targets-file targets_list.txt -ports 80,443,8080,8443 -quiet-mode > web_targets.txt

持续监控与审计

# 定期记录网络变化情况
naabu -targets-file monitored_hosts.txt -common-ports 100 -save-output "scan_$(date +%Y%m%d).txt"

注意事项

  • 权限需求: 如果选择 SYN 扫描,则需要具备 root 或管理员权限。
  • 合法合规: 仅针对已授权的目标执行扫描。
  • 性能影响: 高并发扫描可能对网络性能产生一定压力。
  • 准确性保障: 使用-validate-ports参数降低误报率。
  • CDN 处理: 通过-skip-cdn避免不必要的扫描。

故障排查

常见问题

# 1. SYN 扫描失败
# 错误:缺乏必要权限
# 解决方案:添加 sudo 或切换至 CONNECT 模式

# 2. 扫描速度较慢
# 解决方案:提高-workers-packet-rate参数值

# 3. 结果不够精确
# 解决方案:启用-validate-ports验证端口状态

# 4. 内存占用过高
# 解决方案:采用-stream-mode处理大规模文件

调试命令

# 执行健康检查
naabu -diagnostic-check

# 开启详细日志输出
naabu -target 192.168.1.1 -verbose-mode

# 查看内部调试信息
naabu -target 192.168.1.1 -debugging

# 查阅可用网络接口
naabu -network-interfaces

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。