Documentation Index
Fetch the complete documentation index at: https://projectdiscovery.sec-lab.cn/llms.txt
Use this file to discover all available pages before exploring further.
有关 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 选项。
要在 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 只会扫描 80 和 443 端口。可以通过使用 exclude-cdn 标志启用此功能。
目前支持排除 cloudflare、akamai、incapsula 和 sucuri IP。
扫描状态
Naabu 在本地端口上向 localhost 公开 json 扫描信息,地址为 http://localhost:63636(可以通过 -metrics-port 标志更改端口)
将 naabu 用作库
以下示例程序扫描 scanme.sh 的 80 端口。结果通过 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()
}