Skip to main content
有关 naabu 的所有可用标志和选项,请务必查看使用说明页面。在本页中,我们将分享使用特定标志和目标运行 httpx 的示例,以及您可以从每个示例中得到的输出。
如果您有疑问,请通过帮助联系我们。

基本示例

运行 Naabu

要在目标上运行工具,只需使用以下命令。
naabu -host hackerone.com
这将对 hackerone.com 运行工具。您可以在此命令中传递许多配置选项。可以使用详细开关 -v 显示详细信息。
naabu -host hackerone.com

                  __
  ___  ___  ___ _/ /  __ __
 / _ \/ _ \/ _ \/ _ \/ // /
/_//_/\_,_/\_,_/_.__/\_,_/ v2.0.3

    projectdiscovery.io

[WRN] Use with caution. You are responsible for your actions
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
[INF] Running SYN scan with root privileges
[INF] Found 4 ports on host hackerone.com (104.16.100.52)

hackerone.com:80
hackerone.com:443
hackerone.com:8443
hackerone.com:8080
可以通过 -p 参数指定要在主机上扫描的端口(UDP 端口必须表示为 u:port)。它采用 nmap 格式的端口并对其进行枚举。
naabu -p 80,443,21-23,u:53 -host hackerone.com
默认情况下,Naabu 检查 nmap 的 Top 100 端口。它支持以下内置端口列表:
标志描述
-top-ports 100扫描 nmap 前 100 个端口
-top-ports 1000扫描 nmap 前 1000 个端口
-p - 扫描全部端口 1-65535
您还可以指定要从扫描中排除的特定端口。
naabu -p - -exclude-ports 80,443
要在主机列表上运行 naabu,可以使用 -list 选项。
naabu -list hosts.txt
要在 ASN 上运行 naabu,可以使用 AS 输入。它获取给定 ASN 可用的 IP 地址并对其进行枚举。
echo AS14421 | naabu -p 80,443

216.101.17.249:80
216.101.17.249:443
216.101.17.248:443
216.101.17.252:443
216.101.17.251:80
216.101.17.251:443
216.101.17.250:443
216.101.17.250:80
您还可以使用 -json 开关获取 json 格式的输出。此开关以 JSON lines 格式保存输出。
naabu -host 104.16.99.52 -json

{"ip":"104.16.99.52","port":443}
{"ip":"104.16.99.52","port":80}
发现的端口也可以通过管道传输到其他工具。例如,您可以将 naabu 发现的端口通过管道传输到 httpx,后者将在主机上找到运行的 http 服务器。
echo hackerone.com | naabu -silent | httpx -silent

http://hackerone.com:8443
http://hackerone.com:443
http://hackerone.com:8080
http://hackerone.com:80
速度可以通过更改 rate 标志的值来控制,该标志表示每秒的数据包数。在处理主机时增加它可能会导致误报率上升。因此建议将其保持在合理的数量。

IPv4 和 IPv6

Naabu 同时支持 IPv4 和 IPv6。两种范围可以作为输入通过管道一起传递。如果使用 IPv6,必须正确配置连接性,网络接口必须分配 IPv6 地址 (inet6) 和默认网关。
echo hackerone.com | dnsx -resp-only -a -aaaa -silent | naabu -p 80 -silent

104.16.99.52:80
104.16.100.52:80
2606:4700::6810:6434:80
2606:4700::6810:6334:80
选项 -ip-version 6 使工具在解析域名时使用 IPv6 地址。
echo hackerone.com | ./naabu -p 80 -ip-version 6

                  __
  ___  ___  ___ _/ /  __ __
 / _ \/ _ \/ _ \/ _ \/ // /
/_//_/\_,_/\_,_/_.__/\_,_/ v2.0.8

      projectdiscovery.io

Use with caution. You are responsible for your actions
Developers assume no liability and are not responsible for any misuse or damage.
[INF] Running CONNECT scan with non root privileges
[INF] Found 1 ports on host hackerone.com (2606:4700::6810:6334)
hackerone.com:80
要扫描两个版本的所有 IP,可以将 ip-version 4,6-scan-all-ips 标志一起使用。
echo hackerone.com | ./naabu -iv 4,6 -sa -p 80 -silent

[INF] Found 1 ports on host hackerone.com (104.16.100.52)
hackerone.com:80
[INF] Found 1 ports on host hackerone.com (104.16.99.52)
hackerone.com:80
[INF] Found 1 ports on host hackerone.com (2606:4700::6810:6334)
hackerone.com:80
[INF] Found 1 ports on host hackerone.com (2606:4700::6810:6434)
hackerone.com:80

主机发现

Naabu 可选择支持多种执行主机发现的选项,如下所述。如果进程有足够的权限,在开始 connect/syn 扫描之前会自动完成主机发现。-sn 标志指示工具仅执行主机发现。-Pn 标志跳过主机发现阶段。主机发现使用多种内部方法完成;可以通过设置可用选项来指定执行主机发现的所需方法。 执行主机发现的可用选项:
  • ARP ping (-arp)
  • TCP SYN ping (-ps 80)
  • TCP ACK ping (-pa 443)
  • ICMP echo ping (-pe)
  • ICMP timestamp ping (-pp)
  • ICMP address mask ping (-pm)
  • IPv6 neighbor discovery (-nd)

配置文件

Naabu 支持默认位于 $HOME/.config/naabu/config.yaml 的配置文件,它允许您在配置文件中定义任何标志并设置默认值,以包含在所有扫描中。

Nmap 集成

我们已经集成了 nmap 支持,用于服务发现或 nmap 支持的任何其他扫描,以扫描 Naabu 发现的结果,请确保您已安装 nmap 以使用此功能。 使用时,nmap-cli 标志可以在 nmap 命令后使用,例如:
echo hackerone.com | naabu -nmap-cli 'nmap -sV -oX nmap-output'
                  __       
  ___  ___  ___ _/ /  __ __
 / _ \/ _ \/ _ \/ _ \/ // /
/_//_/\_,_/\_,_/_.__/\_,_/ v2.0.0        

    projectdiscovery.io

[WRN] Use with caution. You are responsible for your actions
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
[INF] Running TCP/ICMP/SYN scan with root privileges
[INF] Found 4 ports on host hackerone.com (104.16.99.52)

hackerone.com:443
hackerone.com:80
hackerone.com:8443
hackerone.com:8080

[INF] Running nmap command: nmap -sV -p 80,8443,8080,443 104.16.99.52

Starting Nmap 7.01 ( https://nmap.org ) at 2020-09-23 05:02 UTC
Nmap scan report for 104.16.99.52
Host is up (0.0021s latency).
PORT     STATE SERVICE       VERSION
80/tcp   open  http          cloudflare
443/tcp  open  ssl/https     cloudflare
8080/tcp open  http-proxy    cloudflare
8443/tcp open  ssl/https-alt cloudflare

CDN/WAF 排除

Naabu 还支持排除 CDN/WAF IP 被端口扫描。如果使用,这些 IP 只会扫描 80443 端口。可以通过使用 exclude-cdn 标志启用此功能。 目前支持排除 cloudflareakamaiincapsulasucuri IP。

扫描状态

Naabu 在本地端口上向 localhost 公开 json 扫描信息,地址为 http://localhost:63636(可以通过 -metrics-port 标志更改端口)

将 naabu 用作库

以下示例程序扫描 scanme.sh80 端口。结果通过 OnResult 回调返回:
package main

import (
	"log"

	"github.com/projectdiscovery/goflags"
	"github.com/projectdiscovery/naabu/v2/pkg/result"
	"github.com/projectdiscovery/naabu/v2/pkg/runner"
)

func main() {
	options := runner.Options{
		Host:      goflags.StringSlice{"scanme.sh"},
		ScanType: "s",
		OnResult: func(hr *result.HostResult) {
			log.Println(hr.Host, hr.Ports)
		},
		Ports: "80",
	}

	naabuRunner, err := runner.NewRunner(&options)
	if err != nil {
		log.Fatal(err)
	}
	defer naabuRunner.Close()

	naabuRunner.RunEnumeration()
}