ProjectDiscovery 系列工具

161

工具一览表

发现

在发现阶段,目标是绘制整个在线存在,找到子域、开放端口和其他有价值的端点。该类别中的工具有助于揭示目标景观的全面视图。此阶段包括以下工具:

Subfinder

子域名枚举工具,提供目标在线资产的整体视图。

Cloudlist

用于枚举多个云厂商资产的综合工具。

Naabu

一款快如闪电的端口扫描器,旨在快速识别目标主机上开放的端口。

Katana

下一代网络抓取框架,旨在高效地导航和解析网络内容,揭示网络资产的隐藏细节。

Chaos

Chaos提供互联网范围的资产数据源 ,对于扩大您的资产发现工作范围至关重要。

Uncover

旨在搜索和突显各种API中暴露的主机,确保在发现阶段不遗余力。

ASNmap

使用自主系统编号(ASN)信息快速映射组织的网络范围。

alterx

使用DSL快速且可定制的子域单词列表生成器

shuffle

massDNS包装器到暴力,并使用通配符处理支持解决子域。

...

丰富

一旦发现资产,下一步就是丰富收集的数据。这个阶段涉及了解资产的性质、背后的技术及其暴露水平。此阶段包括以下工具:

httpx

一个基本的HTTP工具包,用于探测服务,识别有关Web服务器、状态码和其它有价值的元数据的关键细节。

dnsx

一个多功能的DNS工具包,允许大规模DNS解析、通配符测试等高效操作。

tlsx

Tlsx专门用于基于TLS的数据收集,提供对目标证书、密码套件和其它SSL/TLS详细信息的见解。

...

检测

查明可利用的漏洞,确保进行彻底的风险评估。此阶段包括以下工具:

Nuclei

一种漏洞扫描器,旨在通过庞大的模板库识别攻击表面的可利用弱点,用于各种已知漏洞。

interactsh

带外(OOB)交互收集库,对于识别通过常规扫描方式可能无法立即显示的漏洞至关重要。

ptdm 管理工具

用于管理 ProjectDiscovery 的所有开源项目。

Usage:
  ./pdtm [flags]

Flags:
CONFIG:
   -config string            指定 CLI 标志配置文件的路径,默认为 "$HOME/.config/pdtm/config.yaml"
   -bp, -binary-path string  指定项目二进制文件的自定义位置,默认为 "$HOME/.pdtm/go/bin"

INSTALL:
   -i, -install string[]  安装单个或多个项目,通过项目名称指定,多个项目名称之间用逗号分隔
   -ia, -install-all      安装所有项目
   -ip, -install-path     将路径追加到 PATH 环境变量

UPDATE:
   -u, -update string[]         更新单个或多个项目,通过项目名称指定,多个项目名称之间用逗号分隔
   -ua, -update-all             更新所有项目
   -up, -self-update            更新 pdtm 到最新版本
   -duc, -disable-update-check  禁用自动 pdtm 更新检查

REMOVE:
   -r, -remove string[]  移除单个或多个项目,通过项目名称指定,多个项目名称之间用逗号分隔
   -ra, -remove-all      移除所有项目
   -rp, -remove-path     从 PATH 环境变量中移除路径

DEBUG:
   -sp, -show-path          显示当前二进制文件路径,然后退出
   -version                 显示项目的版本号
   -v, -verbose             显示详细输出
   -nc, -no-color           禁用输出内容着色(ANSI 转义码)
   -disable-changelog, -dc  禁用输出中的版本更改日志

pdtm -ia 安装所有工具

Subfinder

subfinder 是一个子域发现工具,使用被动在线来源为网站返回有效的子域。它具有简单、模块化架构,并针对速度进行了优化。subfinder 仅为做一件事而构建——被动子域枚举

Usage:
  ./subfinder [flags]

Flags:

INPUT:
  -d, -domain string[]    要查找子域名的域名
  -dL, -list string       包含要进行子域名发现的域名列表的文件

SOURCE:
  -s, -sources string[]             用于发现的特定来源 (-s crtsh,github)。使用 -ls 显示所有可用来源。
  -recursive                        仅使用可以递归处理子域名的来源(例如 subdomain.domain.tld vs domain.tld)
  -all                              使用所有来源进行枚举(较慢)
  -es, -exclude-sources string[]    从枚举中排除的来源 (-es alienvault,zoomeyeapi)

FILTER:
  -m, -match string[]   匹配的子域名或子域名列表(文件或逗号分隔)
  -f, -filter string[]  要过滤的子域名或子域名列表(文件或逗号分隔)

RATE-LIMIT:
  -rl, -rate-limit int   每秒发送的最大 http 请求数
  -rls value             每秒发送的最大 http 请求数(以 key=value 格式为四个提供者指定,如 -rls "hackertarget=10/s,shodan=15/s")
  -t int                 用于解析的并发 goroutines 数量(仅对 -active 生效)(默认为 10)

UPDATE:
   -up, -update                 更新 subfinder 到最新版本
   -duc, -disable-update-check  禁用自动 subfinder 更新检查

OUTPUT:
  -o, -output string         写入输出的文件
  -oJ, -json                 以 JSONL(ines) 格式写入输出
  -oD, -output-dir string    写入输出的目录(仅对 -dL 有效)
  -cs, -collect-sources      在输出中包含所有来源(仅对 -json 有效)
  -oI, -ip                   在输出中包含主机 IP(仅对 -active 有效)

CONFIGURATION:
  -config string                标志配置文件 (默认为 "$CONFIG/subfinder/config.yaml")
  -pc, -provider-config string  提供者配置文件 (默认为 "$CONFIG/subfinder/provider-config.yaml")
  -r string[]                   用于解析的逗号分隔的解析器列表
  -rL, -rlist string            包含要使用的解析器列表的文件
  -nW, -active                  仅显示活动的子域名
  -proxy string                 与 subfinder 一起使用的 http 代理
  -ei, -exclude-ip              从域名列表中排除 IP 地址

DEBUG:
  -silent             仅在输出中显示子域名
  -version            显示 subfinder 的版本号
  -v                  显示详细输出
  -nc, -no-color      在输出中禁用颜色
  -ls, -list-sources  列出所有可用来源

OPTIMIZATION:
  -timeout int   超时前等待的秒数(默认为 30)
  -max-time int  等待枚举结果的分钟数(默认为 10)

subfinder 可以在安装后立即使用,但某些服务需要配置API密钥才能工作,配置文件位于 $CONFIG/subfinder/provider-config.yaml

CensysPassiveTotalFofaIntellix360quake等来源的组合密钥需要用冒号(:)分开。

subfinder -d xxx.com -all -nW -v

💡 使用技巧

发现的子域名可以管道传输到其他工具。例如,您可以将发现的子域传输到httpx,然后找到主机上正在运行的HTTP服务器。

echo xxx.com | subfinder -silent | httpx -silent

Naabu

Naabu是一个用Go编写的端口扫描工具,允许您以快速可靠的方式枚举主机的有效端口。这是一个非常简单的工具,可以在主机/主机列表中进行快速SYN/CONNECT/UDP扫描,并列出所有返回的端口。

Usage:
  ./naabu [flags]

INPUT:
   -host string[]              要扫描端口的主机(逗号分隔)
   -list, -l string            要扫描端口的主机列表文件
   -exclude-hosts, -eh string  从扫描中排除的主机(逗号分隔)
   -exclude-file, -ef string   从扫描中排除的主机列表文件

PORT:
   -port, -p string            要扫描的端口(80,443,100-200)
   -top-ports, -tp string      要扫描的热门端口(默认为100)[full,100,1000]
   -exclude-ports, -ep string  从扫描中排除的端口(逗号分隔)
   -ports-file, -pf string     要扫描的端口列表文件
   -port-threshold, -pts int   为主机跳过端口扫描的端口阈值
   -exclude-cdn, -ec           跳过 CDN/WAF 的完整端口扫描(仅扫描端口80,443)
   -display-cdn, -cdn          在结果中显示正在使用的 CDN

RATE-LIMIT:
   -c int     一般的内部工作线程数(默认为25)
   -rate int  每秒发送的数据包数(默认为1000)

UPDATE:
   -up, -update                 更新 naabu 到最新版本
   -duc, -disable-update-check  禁用自动 naabu 更新检查

OUTPUT:
   -o, -output string  要写入结果的输出文件(可选)
   -j, -json           以 JSON lines 格式写入输出
   -csv                以 CSV 格式写入输出

CONFIGURATION:
   -scan-all-ips, -sa               扫描与 DNS 记录关联的所有 IP
   -ip-version, -iv string[]        要扫描的主机的 IP 版本(4,6)- (默认为4)
   -scan-type, -s string            端口扫描类型(SYN/CONNECT)(默认为"s")
   -source-ip string                源 IP 和端口(x.x.x.x:yyy)
   -interface-list, -il             列出可用的接口和公共 IP
   -interface, -i string            用于端口扫描的网络接口
   -nmap                            在目标上调用 nmap 扫描(必须安装 nmap)- 已弃用
   -nmap-cli string                 在找到的结果上运行的 nmap 命令(示例:-nmap-cli 'nmap -sV')
   -r string                        自定义解析器 DNS 解析的列表(逗号分隔或从文件中读取)
   -proxy string                    socks5 代理(ip[:port] / fqdn[:port]
   -proxy-auth string               socks5 代理身份验证(用户名:密码)
   -resume                          使用 resume.cfg 恢复扫描
   -stream                          流模式(禁用恢复、nmap、验证、重试、洗牌等)
   -passive                         使用 shodan internetdb api 显示被动打开的端口
   -irt, -input-read-timeout value  输入读取超时(默认为3m0s)
   -no-stdin                        禁用 Stdin 处理

HOST-DISCOVERY:
   -sn, -host-discovery           仅执行主机发现
   -Pn, -skip-host-discovery      跳过主机发现
   -ps, -probe-tcp-syn string[]   TCP SYN Ping(需要启用主机发现)
   -pa, -probe-tcp-ack string[]   TCP ACK Ping(需要启用主机发现)
   -pe, -probe-icmp-echo          ICMP 回显请求 Ping(需要启用主机发现)
   -pp, -probe-icmp-timestamp     ICMP 时间戳请求 Ping(需要启用主机发现)
   -pm, -probe-icmp-address-mask  ICMP 地址掩码请求 Ping(需要启用主机发现)
   -arp, -arp-ping                ARP ping(需要启用主机发现)
   -nd, -nd-ping                  IPv6 Neighbor Discovery(需要启用主机发现)
   -rev-ptr                       输入 IP 的反向 PTR 查找

OPTIMIZATION:
   -retries int       端口扫描的重试次数(默认为3)
   -timeout int       超时前等待的毫秒数(默认为1000)
   -warm-up-time int  扫描阶段之间的时间间隔(默认为2)
   -ping              用于验证主机的 ping 探测
   -verify            使用 TCP 验证再次验证端口

DEBUG:
   -health-check, -hc        运行诊断检查
   -debug                    显示调试信息
   -verbose, -v              显示详细输出
   -no-color, -nc            在 CLI 输出中禁用颜色
   -silent                   仅在输出中显示结果
   -version                  显示 naabu 的版本
   -stats                    显示正在运行的扫描的统计信息(已弃用)
   -si, -stats-interval int  显示统计信息更新之间的秒数(已弃用)(默认为5)
   -mp, -metrics-port int    在其上公开 nuclei 指标的端口(默认为63636)

扫描IP或者域名,默认扫描top100端口

集成了nmap支持服务发现或nmap对Naabu发现的结果支持的任何其他扫描

echo ksklefd.top | naabu -cdn -tp full -nmap-cli 'nmap -sV'

Katana

新一代爬虫框架,快速且完全可配置的网络爬行。

Usage:
  ./katana [flags]

Flags:

INPUT:
   -u, -list string[]  目标 URL / 要爬取的列表

CONFIGURATION:
   -r, -resolvers string[]       自定义解析器的列表(文件或逗号分隔)
   -d, -depth int                最大爬取深度(默认为3)
   -jc, -js-crawl                启用在 JavaScript 文件中进行端点解析 / 爬取
   -jsl, -jsluice                 启用在 JavaScript 文件中进行 jsluice 解析(内存密集型)
   -ct, -crawl-duration value    爬取目标的最大持续时间(s, m, h, d)(默认为秒)
   -kf, -known-files string      启用已知文件的爬取(all, robotstxt, sitemapxml)
   -mrs, -max-response-size int  要读取的最大响应大小(默认为9223372036854775807)
   -timeout int                  请求等待时间(默认为10秒)
   -aff, -automatic-form-fill    启用自动表单填充(实验性)
   -fx, -form-extraction         在 JSONL 输出中提取表单、输入、文本区域和选择元素
   -retry int                    重试请求的次数(默认为1)
   -proxy string                 使用的 http/socks5 代理
   -H, -headers string[]         在所有 http 请求中包含的自定义标头/cookie(文件中的标头:值格式)
   -config string                katana 配置文件的路径
   -fc, -form-config string      自定义表单配置文件的路径
   -flc, -field-config string    自定义字段配置文件的路径
   -s, -strategy string          访问策略(depth-first, breadth-first)(默认为 "depth-first")
   -iqp, -ignore-query-params    忽略带有不同查询参数值的相同路径的爬取
   -tlsi, -tls-impersonate       启用实验性的客户端 hello(ja3)tls 随机化

DEBUG:
   -health-check, -hc        运行诊断检查
   -elog, -error-log string  要写入已发送请求错误日志的文件

HEADLESS:
   -hl, -headless                    启用无头混合爬取(实验性)
   -sc, -system-chrome               使用本地安装的 chrome 浏览器而不是 katana 安装的浏览器
   -sb, -show-browser                在屏幕上显示带有无头模式的浏览器
   -ho, -headless-options string[]   使用额外选项启动无头 chrome
   -nos, -no-sandbox                 以 --no-sandbox 模式启动无头 chrome
   -cdd, -chrome-data-dir string     存储 chrome 浏览器数据的路径
   -scp, -system-chrome-path string  用于无头爬取的指定 chrome 浏览器的路径
   -noi, -no-incognito               以非隐身模式启动无头 chrome
   -cwu, -chrome-ws-url string       使用在其他地方启动的 chrome 浏览器实例,其调试器在此 URL 上监听
   -xhr, -xhr-extraction             在 JSONL 输出中提取 xhr 请求的 url 和 method

SCOPE:
   -cs, -crawl-scope string[]       爬取器要遵循的 URL 正则表达式范围
   -cos, -crawl-out-scope string[]  由爬虫排除的 URL 正则表达式范围
   -fs, -field-scope string  预定义的范围字段(dn, rdn, fqdn)或自定义正则表达式(例如 '(company-staging.io|company.com)')(默认为 "rdn")
   -ns, -no-scope                   禁用基于主机的默认范围
   -do, -display-out-scope          显示来自范围爬取的外部端点

FILTER:
   -mr, -match-regex string[]       输出 url 上的正则表达式或正则表达式列表(cli, 文件中)
   -fr, -filter-regex string[]      输出 url 上的正则表达式或正则表达式列表以进行过滤(cli, 文件中)
   -f, -field string                输出中显示的字段(url, path, fqdn, rdn, rurl, qurl, qpath, file, ufile, key, value, kv, dir, udir)
   -sf, -store-field string         存储在每个主机输出中的字段(url, path, fqdn, rdn, rurl, qurl, qpath, file, ufile, key, value, kv, dir, udir)
   -em, -extension-match string[]   为给定扩展名匹配输出(例如,-em php, html, js)
   -ef, -extension-filter string[]  为给定扩展名过滤输出(例如,-ef png, css)
   -mdc, -match-condition string    使用基于 DSL 的条件匹配响应
   -fdc, -filter-condition string   使用基于 DSL 的条件过滤响应

RATE-LIMIT:
   -c, -concurrency int          并发使用的获取器的数量(默认为10)
   -p, -parallelism int          处理的并发输入数(默认为10)
   -rd, -delay int               请求之间的每个请求的延迟(秒)
   -rl, -rate-limit int          每秒发送的最大请求数(默认为150)
   -rlm, -rate-limit-minute int  每分钟发送的最大请求数

UPDATE:
   -up, -update                 更新 katana 到最新版本
   -duc, -disable-update-check  禁用自动 katana 更新检查

OUTPUT:
   -o, -output string                要写入输出的文件
   -sr, -store-response              存储 http 请求/响应
   -srd, -store-response-dir string  存储 http 请求/响应到自定义目录
   -or, -omit-raw                    从 jsonl 输出中省略原始请求/响应
   -ob, -omit-body                   从 jsonl 输出中省略响应正文
   -j, -jsonl                        以 jsonl 格式写入输出
   -nc, -no-color                    禁用输出内容的着色(ANSI 转义代码)
   -silent                           仅显示输出
   -v, -verbose                      显示详细输出
   -debug                            显示调试输出
   -version                          显示项目版本

对于主流的前端框架,无头模式可能更好用一点

katana -u http://95.xxx.xxx.128 -jc -headless -no-sandbox

过滤掉 css,js,html 等,便于聚焦结果

katana -u http://95.xxx.xxx.128 -jc -headless -no-sandbox -ef css,js,html,json -mdc 'status_code == 200'

Nuclei

不用多说的漏洞扫描器,渗透必备神器!

用法:
  nuclei [命令]

命令:
目标:
   -u, -target string[]                  指定扫描的目标URL/主机(多个目标则指定多个-u参数)
   -l, -list string                      指定包含要扫描的目标URL/主机列表的文件路径(一行一个)
   -resume string                        使用指定的resume.cfg文件恢复扫描(将禁用请求聚类)
   -sa, -scan-all-ips                    扫描由目标解析出来的所有IP(针对域名对应多个IP的情况)
   -iv, -ip-version string[]             要扫描的主机名的IP版本(4,6)-(默认为4)

模板:
   -nt, -new-templates                    仅运行最新发布的nuclei模板
   -ntv, -new-templates-version string[]  仅运行特定版本中添加的新模板
   -as, -automatic-scan                   基于Wappalyzer技术的标签映射自动扫描
   -t, -templates string[]                指定要运行的模板或者模板目录(以逗号分隔或目录形式)
   -turl, -template-url string[]          指定要运行的模板URL或模板目录URL(以逗号分隔或目录形式)
   -w, -workflows string[]                指定要运行的工作流或工作流目录(以逗号分隔或目录形式)
   -wurl, -workflow-url string[]          指定要运行的工作流URL或工作流目录URL(以逗号分隔或目录形式)
   -validate                              使用nuclei验证模板有效性
   -nss, -no-strict-syntax                禁用对模板的严格检查
   -td, -template-display                 显示模板内容
   -tl                                    列出所有可用的模板
   -sign                                  使用NUCLEI_SIGNATURE_PRIVATE_KEY环境变量中的私钥对模板进行签名
   -code                                  启用加载基于协议的代码模板

过滤:
   -a, -author string[]                  执行指定作者的模板(逗号分隔,文件)
   -tags string[]                        执行带指定tag的模板(逗号分隔,文件)
   -etags, -exclude-tags string[]        排除带指定tag的模板(逗号分隔,文件)
   -itags, -include-tags string[]        执行带有指定tag的模板,即使是被默认或者配置排除的模板
   -id, -template-id string[]            执行指定id的模板(逗号分隔,文件)
   -eid, -exclude-id string[]            排除指定id的模板(逗号分隔,文件)
   -it, -include-templates string[]      执行指定模板,即使是被默认或配置排除的模板
   -et, -exclude-templates string[]      排除指定模板或者模板目录(逗号分隔,文件)
   -em, -exclude-matchers string[]       排除指定模板matcher
   -s, -severity value[]                 根据严重程度运行模板,可选值有:info,low,medium,high,critical   
   -es, -exclude-severity value[]        根据严重程度排除模板,可选值有:info,low,medium,high,critical
   -pt, -type value[]                    根据类型运行模板,可选值有:dns, file, http, headless, network, workflow, ssl, websocket, whois
   -ept, -exclude-type value[]           根据类型排除模板,可选值有:dns, file, http, headless, network, workflow, ssl, websocket, whois
   -tc, -template-condition string[]     根据表达式运行模板
   

输出:
   -o, -output string                    输出发现的问题到文件
   -sresp, -store-resp                   将nuclei的所有请求和响应输出到目录
   -srd, -store-resp-dir string          将nuclei的所有请求和响应输出到指定目录(默认:output)
   -silent                               只显示结果
   -nc, -no-color                        禁用输出内容着色(ANSI转义码)
   -j, -jsonl                            输出格式为jsonL(ines)
   -irr, -include-rr                     在JSON、JSONL和Markdown中输出请求/响应对(仅结果)[已弃用,使用-omit-raw替代]
   -or, -omit-raw                        在JSON、JSONL和Markdown中不输出请求/响应对
   -ot, -omit-template           省略JSON、JSONL输出中的编码模板
   -nm, -no-meta                         在cli输出中不打印元数据
   -ts, -timestamp                       在cli输出中打印时间戳
   -rdb, -report-db string               本地的nuclei结果数据库(始终使用该数据库保存结果)
   -ms, -matcher-status                  显示匹配失败状态
   -me, -markdown-export string          以markdown格式导出结果
   -se, -sarif-export string             以SARIF格式导出结果
   -je, -json-export string              以JSON格式导出结果
   -jle, -jsonl-export string            以JSONL(ine)格式导出结果


配置:
   -config string                        指定nuclei的配置文件
   -fr, -follow-redirects                为HTTP模板启用重定向
   -fhr, -follow-host-redirects          允许在同一主机上重定向
   -mr, -max-redirects int               HTTP模板最大重定向次数(默认:10)
   -dr, -disable-redirects               为HTTP模板禁用重定向
   -rc, -report-config string            指定nuclei报告模板文件
   -H, -header string[]                  指定在所有http请求中包含的自定义header、cookie,以header:value的格式指定(cli,文件)
   -V, -var value                        以key=value格式自定义变量
   -r, -resolvers string                 指定包含DNS解析服务列表的文件
   -sr, -system-resolvers                当DNS错误时使用系统DNS解析服务
   -dc, -disable-clustering              关闭请求聚类功能
   -passive                              启用被动模式处理本地HTTP响应数据
   -fh2, -force-http2                    强制使用http2连接
   -ev, env-vars                         启用在模板中使用环境变量
   -cc, -client-cert string              用于对扫描的主机进行身份验证的客户端证书文件(PEM 编码)
   -ck, -client-key string               用于对扫描的主机进行身份验证的客户端密钥文件(PEM 编码)
   -ca, -client-ca string                用于对扫描的主机进行身份验证的客户端证书颁发机构文件(PEM 编码)
   -sml, -show-match-line                显示文件模板的匹配值,只适用于提取器
   -ztls                                 使用ztls库,带有自动回退到标准库tls13 [已弃用] 默认情况下启用对ztls的自动回退
   -sni string                           指定tls sni的主机名(默认为输入的域名)
   -lfa, -allow-local-file-access        允许访问本地文件(payload文件)
   -lna, -restrict-local-network-access  阻止对本地/私有网络的连接
   -i, -interface string                 指定用于网络扫描的网卡
   -at, -attack-type string              payload的组合模式(batteringram,pitchfork,clusterbomb)
   -sip, -source-ip string               指定用于网络扫描的源IP
   -rsr, -response-size-read int         最大读取响应大小(默认:10485760字节)
   -rss, -response-size-save int         最大储存响应大小(默认:1048576字节)
   -reset                                删除所有nuclei配置和数据文件(包括nuclei-templates)
   -tlsi, -tls-impersonate               启用实验性的Client Hello(ja3)TLS 随机化功能


交互:
   -inserver, -ineractsh-server string   使用interactsh反连检测平台(默认为oast.pro,oast.live,oast.site,oast.online,oast.fun,oast.me)
   -itoken, -interactsh-token string     指定反连检测平台的身份凭证
   -interactions-cache-size int          指定保存在交互缓存中的请求数(默认:5000)
   -interactions-eviction int            从缓存中删除请求前等待的时间(默认为60秒)
   -interactions-poll-duration int       每个轮询前等待时间(默认为5秒)
   -interactions-cooldown-period int     退出轮询前的等待时间(默认为5秒)
   -ni, -no-interactsh                   禁用反连检测平台,同时排除基于反连检测的模板


模糊测试:
   -ft, -fuzzing-type string             覆盖模板中设置的模糊测试类型(replace、prefix、postfix、infix)
   -fm, -fuzzing-mode string             覆盖模板中设置的模糊测试模式(multiple、single)


UNCOVER引擎:
   -uc, -uncover                         启动uncover引擎
   -uq, -uncover-query string[]          uncover查询语句
   -ue, -uncover-engine string[]         指定uncover查询引擎 (shodan,censys,fofa,shodan-idb,quake,hunter,zoomeye,netlas,criminalip,publicwww,hunterhow) (默认 shodan)
   -uf, -uncover-field string            查询字段 (ip,port,host) (默认 "ip:port")
   -ul, -uncover-limit int               查询结果数 (默认 100)
   -ur, -uncover-ratelimit int           查询速率,默认每分钟60个请求(默认 60)


限速:
   -rl, -rate-limit int                  每秒最大请求量(默认:150)
   -rlm, -rate-limit-minute int          每分钟最大请求量
   -bs, -bulk-size int                   每个模板最大并行检测数(默认:25)
   -c, -concurrency int                  并行执行的最大模板数量(默认:25)
   -hbs, -headless-bulk-size int         每个模板并行运行的无头主机最大数量(默认:10)
   -headc, -headless-concurrency int     并行指定无头主机最大数量(默认:10)


优化:
   -timeout int                          超时时间(默认为10秒)
   -retries int                          重试次数(默认:1)
   -ldp, -leave-default-ports            指定HTTP/HTTPS默认端口(例如:host:80,host:443)
   -mhe, -max-host-error int             某主机扫描失败次数,跳过该主机(默认:30)
   -te, -track-error string[]            将给定错误添加到最大主机错误监视列表(标准、文件)
   -nmhe, -no-mhe                        disable skipping host from scan based on errors
   -project                              使用项目文件夹避免多次发送同一请求
   -project-path string                  设置特定的项目文件夹
   -spm, -stop-at-first-path             得到一个结果后停止(或许会中断模板和工作流的逻辑)
   -stream                               流模式 - 在不整理输入的情况下详细描述
   -ss, -scan-strategy value             扫描时使用的策略(auto/host-spray/template-spray) (默认 auto)
   -irt, -input-read-timeout duration    输入读取超时时间(默认:3分钟)
   -nh, -no-httpx                        禁用对非URL输入进行httpx探测
   -no-stdin                             禁用标准输入

无界面浏览器:
    -headless                            启用需要无界面浏览器的模板
    -page-timeout int                    在无界面下超时秒数(默认:20)
    -sb, -show-brower                    在无界面浏览器运行模板时,显示浏览器
    -ho, -headless-options string[]      使用附加选项启动无界面浏览器
    -sc, -system-chrome                  不使用Nuclei自带的浏览器,使用本地浏览器
    -lha, -list-headless-action          列出可用的无界面操作

调试:
    -debug                               显示所有请求和响应
    -dreq, -debug-req                    显示所有请求
    -dresp, -debug-resp                  显示所有响应
    -p, -proxy string[]                  使用http/socks5代理(逗号分隔,文件)
    -pi, -proxy-internal                 代理所有请求
    -ldf, -list-dsl-function             列出所有支持的DSL函数签名
    -tlog, -trace-log string             写入跟踪日志到文件
    -elog, -error-log string             写入错误日志到文件
    -version                             显示版本信息
    -hm, -hang-monitor                   启用对nuclei挂起协程的监控
    -v, -verbose                         显示详细信息
    -profile-mem string                  将Nuclei的内存转储成文件
    -vv                                  显示额外的详细信息
    -svd, -show-var-dump                 显示用于调试的变量输出
    -ep, -enable-pprof                   启用pprof调试服务器
    -tv, -templates-version              显示已安装的模板版本
    -hc, -health-check                   运行诊断检查

升级:
    -up, -update                         更新Nuclei到最新版本
    -ut, -update-templates               更新Nuclei模板到最新版
    -ud, -update-template-dir string     指定模板目录
    -duc, -disable-update-check          禁用nuclei程序与模板更新

统计:
    -stats                               显示正在扫描的统计信息
    -sj, -stats-json                     将统计信息以JSONL格式输出到文件
    -si, -stats-inerval int              显示统计信息更新的间隔秒数(默认:5)
    -mp, -metrics-port int               更改metrics服务的端口(默认:9092)

云服务:
   -auth                配置projectdiscovery云(pdcp)API密钥
   -cup, -cloud-upload  将扫描结果上传到pdcp仪表板

例子:
扫描一个单独的URL:
	$ nuclei -target example.com

对URL运行指定的模板:
	$ nuclei -target example.com -t http/cves/ -t ssl

扫描hosts.txt中的多个URL:
	$ nuclei -list hosts.txt

输出结果为JSON格式:
	$ nuclei -target example.com -json-export output.json

使用已排序的Markdown输出(使用环境变量)运行nuclei:
	$ MARKDOWN_EXPORT_SORT_MODE=template nuclei -target example.com -markdown-export nuclei_report/

httpx

资产探测神器

输入:
  -l, -list string       包含要处理的主机列表的输入文件
  -rr, -request string   包含原始请求的文件
  -u, -target string[]   要探测的目标主机(可以是多个)

探测:
  -sc, -status-code      显示响应状态码
  -cl, -content-length   显示响应内容长度
  -ct, -content-type     显示响应内容类型
  -location              显示响应重定向位置
  -favicon               显示'/favicon.ico'文件的mmh3哈希
  -hash string           显示响应主体哈希(支持:md5,mmh3,simhash,sha1,sha256,sha512)
  -jarm                  显示jarm指纹哈希
  -rt, -response-time    显示响应时间
  -lc, -line-count       显示响应主体的行数
  -wc, -word-count       显示响应主体的单词数
  -title                 显示页面标题
  -bp, -body-preview     显示响应主体的前N个字符(默认100)
  -server, -web-server   显示服务器名称
  -td, -tech-detect      显示基于wappalyzer数据集的使用技术
  -method                显示HTTP请求方法
  -websocket             显示使用WebSocket的服务器
  -ip                    显示主机IP
  -cname                 显示主机CNAME
  -asn                   显示主机ASN信息
  -cdn                   显示使用的CDN/WAF
  -probe                 显示探测状态

无头模式:
  -ss, -screenshot                  启用保存页面截图
  -system-chrome                    使用本地安装的Chrome进行截图
  -esb, -exclude-screenshot-bytes   在JSON输出中排除截图字节
  -ehb, -exclude-headless-body      在JSON输出中排除无头正文

匹配器:
  -mc, -match-code string            使用指定状态码匹配响应(-mc 200,302)
  -ml, -match-length string          使用指定内容长度匹配响应(-ml 100,102)
  -mlc, -match-line-count string     使用指定行数匹配响应主体(-mlc 423,532)
  -mwc, -match-word-count string     使用指定单词数匹配响应主体(-mwc 43,55)
  -mfc, -match-favicon string[]      使用指定favicon哈希匹配响应(-mfc 1494302000)
  -ms, -match-string string          使用指定字符串匹配响应(-ms admin)
  -mr, -match-regex string           使用指定正则表达式匹配响应(-mr admin)
  -mcdn, -match-cdn string[]         使用指定CDN提供商匹配主机(leaseweb,stackpath,cloudfront,fastly,google)
  -mrt, -match-response-time string  使用指定响应时间匹配响应(-mrt '< 1')
  -mdc, -match-condition string      使用DSL表达式条件匹配响应

提取器:
  -er, -extract-regex string[]       使用匹配的正则表达式显示响应内容
  -ep, -extract-preset string[]      使用预定义的正则表达式(url,ipv4,mail)显示响应内容

过滤器:
  -fc, -filter-code string            使用指定状态码过滤响应(-fc 403,401)
  -fep, -filter-error-page            使用基于ML的错误页面检测过滤响应
  -fl, -filter-length string          使用指定内容长度过滤响应(-fl 23,33)
  -flc, -filter-line-count string     使用指定行数过滤响应主体(-flc 423,532)
  -fwc, -filter-word-count string     使用指定单词数过滤响应主体(-fwc 423,532)
  -ffc, -filter-favicon string[]      使用指定favicon哈希过滤响应(-ffc 1494302000)
  -fs, -filter-string string          使用指定字符串过滤响应(-fs admin)
  -fe, -filter-regex string           使用指定正则表达式过滤响应(-fe admin)
  -fcdn, -filter-cdn string[]         使用指定CDN提供商过滤主机(leaseweb,stackpath,cloudfront,fastly,google)
  -frt, -filter-response-time string  使用指定响应时间过滤响应(-frt '> 1')
  -fdc, -filter-condition string      使用DSL表达式条件过滤响应
  -strip                              剥离响应中的所有标签,支持格式:html,xml(默认html)

速率限制:
  -t, -threads int              要使用的线程数(默认50)
  -rl, -rate-limit int          每秒发送的最大请求数(默认150)
  -rlm, -rate-limit-minute int  每分钟发送的最大请求数

杂项:
  -pa, -probe-all-ips        探测与同一主机关联的所有IP
  -p, -ports string[]        要探测的端口(nmap语法:例如http:1,2-10,11,https:80)
  -path string               要探测的路径或路径列表(逗号分隔,文件)
  -tls-probe                 在提取的TLS域上发送HTTP探测(dns_name)
  -csp-probe                 在提取的CSP域上发送HTTP探测
  -tls-grab                  执行TLS(SSL)数据抓取
  -pipeline                  探测并显示支持HTTP1.1流水线的服务器
  -http2                     探测并显示支持HTTP2的服务器
  -vhost                     探测并显示支持VHOST的服务器
  -ldv, -list-dsl-variables  列出支持DSL匹配器/过滤器的JSON输出字段键名

更新:
  -up, -update                 更新httpx到最新版本
  -duc, -disable-update-check  禁用自动httpx更新检查

输出:
  -o, -output string                  要写入输出结果的文件
  -oa, -output-all                    以所有格式写入输出结果的文件名
  -sr, -store-response                将HTTP响应存储到输出目录
  -srd, -store-response-dir string    将HTTP响应存储到自定义目录
  -csv                                以CSV格式存储输出
  -csvo, -csv-output-encoding string  定义输出编码
  -j, -json                           以JSONL(ines)格式存储输出
  -irh, -include-response-header      在JSON输出中包含HTTP响应(标头)(仅限-json)
  -irr, -include-response             在JSON输出中包含HTTP请求/响应(标头+正文)(仅限-json)
  -irrb, -include-response-base64     在JSON输出中包含Base64编码的HTTP请求/响应(仅限-json)
  -include-chain                      在JSON输出中包含HTTP重定向链(仅限-json)
  -store-chain                        在响应中包含HTTP重定向链(仅限-sr)
  -svrc, -store-vision-recon-cluster  在截图和响应中包含视觉重建聚类(仅限-ss和-sr)

配置:
  -config string                httpx配置文件的路径(默认$HOME/.config/httpx/config.yaml)
  -r, -resolvers string[]       自定义解析器的列表(文件或逗号分隔)
  -allow string[]               允许处理的IP/CIDR列表(文件或逗号分隔)
  -deny string[]                拒绝处理的IP/CIDR列表(文件或逗号分隔)
  -sni, -sni-name string        自定义TLS SNI名称
  -random-agent                 启用随机用户代理使用(默认true)
  -H, -header string[]          使用请求一起发送的自定义HTTP头
  -http-proxy, -proxy string    要使用的HTTP代理(例如http://127.0.0.1:8080)
  -unsafe                       发送跳过Golang规范化的原始请求
  -resume                       使用resume.cfg恢复扫描
  -fr, -follow-redirects        跟随HTTP重定向
  -maxr, -max-redirects int     每个主机要跟随的最大重定向次数(默认10)
  -fhr, -follow-host-redirects  在同一主机上跟随重定向
  -rhsts, -respect-hsts         尊重重定向请求的HSTS响应头
  -vhost-input                  以vhost列表作为输入
  -x string                     要探测的请求方法,使用'all'以探测所有HTTP方法
  -body string                  要包含在HTTP请求中的POST正文
  -s, -stream                   流模式 - 开始处理输入目标而不排序
  -sd, -skip-dedupe             禁用对输入项的去重(仅在流模式下使用)
  -ldp, -leave-default-ports    在主机头中保留默认的HTTP/HTTPS端口(例如http://host:80 - https://host:443)
  -ztls                         使用ztls库,并自动回退到标准TLS 1.3
  -no-decode                    避免解码正文
  -tlsi, -tls-impersonate       启用实验性的客户端hello(ja3)TLS随机化
  -no-stdin                     禁用标准输入处理

调试:
  -health-check, -hc        运行诊断检查
  -debug                    在CLI中显示请求/响应内容
  -debug-req                在CLI中显示请求内容
  -debug-resp               在CLI中显示响应内容
  -version                  显示httpx版本
  -stats                    显示扫描统计信息
  -profile-mem string       可选的httpx内存配置文件转储文件
  -silent                   静默模式
  -v, -verbose              详细模式
  -si, -stats-interval int  显示统计更新之间等待的秒数(默认:5)
  -nc, -no-color            在CLI输出中禁用颜色

优化:
  -nf, -no-fallback                  显示两种探测协议(HTTPS和HTTP)
  -nfs, -no-fallback-scheme          使用输入中指定的协议方案进行探测
  -maxhr, -max-host-error int        每个主机跳过剩余路径之前的最大错误次数(默认30)
  -ec, -exclude-cdn                  跳过CDN/WAF的完整端口扫描(仅检查80,443)
  -eph, -exclude-private-hosts       跳过任何具有私有IP地址的主机
  -retries int                       重试次数
  -timeout int                       超时时间(默认10)
  -delay value                       每个HTTP请求之间的持续时间(例如:200ms,1s)(默认-1ns)
  -rsts, -response-size-to-save int  要保存的最大响应大小(字节,默认2147483647)
  -rstr, -response-size-to-read int  要读取的最大响应大小(字节,默认2147483647)

基本用法

httpx -l ~/Downloads/url.txt -path /test.jsp -sc -cl -title -probe

图片-btel.png

其它工具懒得写了,都不咋好用。