第 4 章 · 03 终端与沙箱工具 本节摘要:本节讲透 Strix 的后两个核心工具。持久 Bash 终端运行在 Docker 沙箱内,工作目录与环境跨命令持久,支持多会话并行、后台任务、交互式响应——代理通过它调用所有预装安全工具。沙箱工具集跑在 Kali Linux 容器里,预装了七大类工具(侦察 / Web 测试 / 自动化扫描 / JS 分析 / 源码感知 / 密钥检测 / 容器供应链)。
本节摘要:本节讲透 Strix 的后两个核心工具。持久 Bash 终端运行在 Docker 沙箱内,工作目录与环境跨命令持久,支持多会话并行、后台任务、交互式响应——代理通过它调用所有预装安全工具。沙箱工具集跑在 Kali Linux 容器里,预装了七大类工具(侦察 / Web 测试 / 自动化扫描 / JS 分析 / 源码感知 / 密钥检测 / 容器供应链)。本节重点给出 11 个常用 CLI 工具(nmap / nuclei / sqlmap / ffuf / httpx / katana / naabu / subfinder / semgrep / python / 及相关)的命令速查表——每个工具干什么、agent 安全基线命令、典型模式与关键正确性规则,让你既看得懂代理在跑什么,也能手动复现。
内容来源:原项目文档
docs/tools/terminal.mdx+docs/tools/sandbox.mdx+strix/skills/tooling/*.md(nmap/nuclei/sqlmap/ffuf/httpx/katana/naabu/subfinder/semgrep/python 共 10 篇 CLI 手册),汉化并合并。
⚠️ 仅限授权测试:沙箱内所有工具仅对授权目标使用;命令示例中的
target.tld/example.com仅为占位。
阅读完本节,你应当能够:
-noninteractive、naabu 的 -timeout 是毫秒)。Strix 代理能访问一个运行在 Docker 沙箱内的持久 bash 终端。通过它,代理能调用所有预装安全工具。
| 能力 | 说明 |
|---|---|
| 持久状态 | 工作目录和环境在命令之间持久保留(上一条的 cd / export 在下一条仍生效) |
| 多会话 | 并行运行多个终端做并发操作 |
| 后台任务 | 启动长时间运行的进程而不阻塞(如起一个监听器) |
| 交互式 | 响应提示、控制运行中的进程 |
代理能并发运行多个终端会话,典型分工:
# 1. 运行安全工具(子域名枚举 / 漏洞扫描 / SQL 注入测试) subfinder -d example.com nuclei -u https://example.com sqlmap -u "https://example.com/page?id=1" # 2. 代码分析(快速 SAST 分诊 / 结构化 AST 搜索 / 密钥检测 / 供应链) semgrep --config auto ./src sg scan ./src gitleaks detect --source ./ trufflehog filesystem ./ trivy fs ./ # 3. 自定义脚本(跑 Python exploit / 执行 shell 脚本) python3 exploit.py ./test_auth_bypass.sh
💡 终端是工具的统一入口:浏览器、代理是专用工具,但 nmap/nuclei/sqlmap 这类命令行工具都通过终端调用。终端的「持久状态」特别重要——代理可以在一条命令里
cd到工作目录、export变量,后续命令直接复用,不用每次重设。
Strix 跑在基于 Kali Linux 的 Docker 容器里,预装了一整套安全工具。下表按七大分类列出(完整说明见各分类的速查表与官方文档):
| 分类 | 代表工具 |
|---|---|
| 侦察 | Subfinder、Naabu、httpx、Katana、ffuf、Nmap |
| Web 测试 | Arjun、Dirsearch、wafw00f、GoSpider |
| 自动化扫描 | Nuclei、SQLMap、Wapiti、ZAP |
| JavaScript 分析 | JS-Snooper、jsniper、Retire.js、ESLint、js-beautify、JSHint |
| 源码感知分析 | Semgrep、ast-grep(sg)、Tree-sitter、Bandit |
| 密钥检测 | TruffleHog、Gitleaks |
| 容器与供应链 | Trivy |
另有 HTTP 代理(Caido)与浏览器(Playwright)两大基础工具,详见本章 02 节。
⚠️ 所有工具预配置即用:代理根据正在测试的漏洞类型选择合适工具。下文速查表里的是「agent 安全基线」——这些命令经过收敛,适合自动化跑(带超时、限速、结构化输出),也是你在手动复现时该参照的模板。
七大类工具与典型流水线关系:
持久 Bash 终端 │ ├─ 侦察类 ───── subfinder ──► httpx ──► naabu ──► nmap(富集) │ │ ├─ Web 测试 ─── katana(爬)──► ffuf/dirsearch(目录)──► nuclei(漏扫) │ │ ├─ 利用类 ────── sqlmap(SQLi 注入/导出) │ ├─ 源码感知 ──── semgrep + ast-grep + tree-sitter(白盒分诊) │ │ ├─ 密钥/供应链 ── gitleaks/trufflehog + trivy fs │ └─ 自定义 ────── python3 + caido_api(代理自动化/exploit)
💡 工具不是孤立调用:侦察产出喂给 Web 测试(子域名→爬虫→fuzz→漏扫),白盒分诊产出指导利用(sqlmap/python 验证),密钥与供应链检查并行。终端的「持久状态」让这条流水线跨命令衔接。
下面是 11 个常用工具的速查。每个工具给出:用途定位、agent 安全基线命令、典型模式、关键正确性规则。
用途:网络扫描与服务版本检测。规范语法 nmap [Scan Type(s)] [Options] {target}。两趟扫描法(发现趟 + 富集趟)。
Agent 安全基线:
nmap -n -Pn --open --top-ports 100 -T4 --max-retries 1 --host-timeout 90s -oA nmap_quick <host>
典型模式:
# 快速首趟(Top 100 端口) nmap -n -Pn --top-ports 100 --open -T4 --max-retries 1 --host-timeout 90s <host> # 重点小端口集 nmap -n -Pn -p 22,80,443,8080,8443 --open -T4 --max-retries 1 --host-timeout 90s <host> # 对已发现端口做服务/脚本富集 nmap -n -Pn -sV -sC -p <逗号分隔端口> --script-timeout 30s --host-timeout 3m -oA nmap_services <host> # 无 root 回退(TCP connect 扫描) nmap -n -Pn -sT --top-ports 100 --open --host-timeout 90s <host>
关键规则:始终显式设目标范围;优先两趟扫描(发现 + 富集);必设 --host-timeout,涉及 NSE 脚本时加 --script-timeout;发现趟用小端口集,沙箱里避免 -p- / 高 --top-ports / 宽主机范围;广端口发现优先用 naabu,nmap 用于有范围的验证/富集。失败恢复:主机意外 down 重跑加 -Pn;扫描卡住收紧 -p 或降 --top-ports 并降重试。
💡 Nmap vs Naabu 分工:naabu 适合广端口发现(快、轻),nmap 适合对已发现端口做服务版本与 NSE 脚本富集(深、准)。代理默认「naabu 发现 + nmap 富集」的两趟配合。
用途:基于模板的漏洞扫描器。规范语法 nuclei [flags]。
Agent 安全基线:
nuclei -l targets.txt -as -s critical,high -rl 50 -c 20 -bs 20 -timeout 10 -retries 1 -silent -j -o nuclei.jsonl
典型模式:
# 聚焦严重度 nuclei -u https://target.tld -s critical,high -silent -o nuclei_high.txt # 列表驱动受控扫描 nuclei -l targets.txt -as -rl 50 -c 20 -bs 20 -timeout 10 -retries 1 -j -o nuclei.jsonl # 按 tag 驱动 nuclei -l targets.txt -tags cve,misconfig -s critical,high,medium -silent # 显式模板 nuclei -l targets.txt -t http/cves/ -t dns/ -rl 30 -c 10 -bs 10 -j -o nuclei_templates.jsonl # 确定性非 OAST 运行(禁用带外交互) nuclei -l targets.txt -as -s critical,high -ni -stats -rl 30 -c 10 -bs 10 -timeout 10 -retries 1 -j -o nuclei_no_oast.jsonl
关键规则:必须提供模板选择方式(-as / -t / -tags),避免无范围的宽跑;显式设 -rl / -c / -bs 保证资源可预测;出站 interactsh/OAST 流量不被允许时用 -ni;自动化用结构化输出(-j -o <file>)。失败恢复:性能降先降 -c/-bs 再降 -rl;发现意外为空核对模板选择;时长膨胀则收紧目标集与模板/严重度过滤。
用途:自动 SQL 注入检测与利用。规范语法 sqlmap -u "<target_url_with_params>" [options]。
Agent 安全基线:
sqlmap -u "https://target.tld/item?id=1" -p id --batch --level 2 --risk 1 --threads 5 --timeout 10 --retries 1 --random-agent
典型模式:
# 基线注入检测 sqlmap -u "https://target.tld/item?id=1" -p id --batch --level 2 --risk 1 --threads 5 # POST 参数测试 sqlmap -u "https://target.tld/login" --data "user=admin&pass=test" -p pass --batch --level 2 --risk 1 # 表单驱动测试 sqlmap -u "https://target.tld/login" --forms --batch --level 2 --risk 1 --random-agent # 枚举数据库 sqlmap -u "https://target.tld/item?id=1" -p id --batch --dbs # 枚举某库的表 sqlmap -u "https://target.tld/item?id=1" -p id --batch -D appdb --tables # 导出指定列 sqlmap -u "https://target.tld/item?id=1" -p id --batch -D appdb -T users -C id,email,role --dump
关键规则:自动化必带 --batch 避免交互提示;尽量用 -p 显式指定目标参数;请求/profile 改动后重测用 --flush-session;从保守起手(--level 1-2、--risk 1),按需升级。失败恢复:结果与手工测试冲突用 --flush-session 重跑;被 WAF/过滤拦截降 --threads 并试定向 --tamper 链;初检漏掉疑似注入逐步升 --level/--risk。
⚠️
--batch是自动化红线:不带--batch,sqlmap 会在关键决策点停下等你输入,在代理/脚本里直接卡死。代理跑 sqlmap 必带--batch。
用途:对任意输入位置(路径 / header / body / vhost)做精准 fuzz。规范语法 ffuf -w <wordlist> -u <url_with_FUZZ> [flags]。
Agent 安全基线:
ffuf -w wordlist.txt -u https://target.tld/FUZZ -mc 200,204,301,302,307,401,403,405 -ac -t 20 -rate 50 -timeout 10 -noninteractive -of json -o ffuf.json
典型模式:
# 基本路径 fuzz ffuf -w /path/wordlist.txt -u https://target.tld/FUZZ -mc 200,204,301,302,307,401,403 -ac -t 40 -rate 200 -noninteractive # vhost fuzz ffuf -w vhosts.txt -u https://target.tld -H 'Host: FUZZ.target.tld' -fs 0 -ac -noninteractive # 参数值 fuzz ffuf -w values.txt -u 'https://target.tld/search?q=FUZZ' -mc all -fs 0 -ac -t 30 -noninteractive # POST body fuzz ffuf -w payloads.txt -u https://target.tld/login -X POST -H 'Content-Type: application/x-www-form-urlencoded' -d 'username=admin&password=FUZZ' -fc 401 -noninteractive # 递归发现 ffuf -w dirs.txt -u https://target.tld/FUZZ -recursion -recursion-depth 2 -ac -t 30 -noninteractive # 经代理的运行 ffuf -w wordlist.txt -u https://target.tld/FUZZ -x http://127.0.0.1:48080 -mc 200,301,302,403 -ac -noninteractive
关键规则:FUZZ 关键字必须正好出现在 URL/header/body 的变异点;用 -w file:KEYWORD 时该 KEYWORD 必须出现在 URL/header/body 里;代理/脚本执行必带 -noninteractive,否则 ffuf 进交互控制台会吞掉后续 shell 命令;用 -of json -o <file> 存结构化输出便于解析。失败恢复:误入交互模式发 C-c 重跑加 -noninteractive;响应噪声大收紧 -mc/-fc/-fs 而非加负载;时长太长降 -rate/-t 收紧范围。
💡 ffuf vs dirsearch 分工:需要精准 fuzz 任意输入位置(header/body/vhost)或精细过滤控制 → 用 ffuf;需要快速广扫、零配置 → 用
dirsearch -u <url> -e php,html,js,json(自带精选字典、合理默认、内置递归)。
用途:ProjectDiscovery 的 HTTP 探测,一次性给状态码/标题/服务器/技术指纹。规范语法 httpx [flags]。
Agent 安全基线:
httpx -l hosts.txt -sc -title -server -td -fr -timeout 10 -retries 1 -rl 50 -t 25 -silent -j -o httpx.jsonl
典型模式:
# 快速存活 + 指纹 httpx -l hosts.txt -sc -title -server -td -silent -o httpx.txt # 探测已知管理路径 httpx -l hosts.txt -path /,/login,/admin -sc -title -silent -j -o httpx_paths.jsonl # 显式双 scheme 探测 httpx -l hosts.txt -nf -sc -title -silent # vhost 检测趟 httpx -l hosts.txt -vhost -sc -title -silent -j -o httpx_vhost.jsonl # 经代理探测 httpx -l hosts.txt -sc -title -proxy http://127.0.0.1:48080 -silent -j -o httpx_proxy.jsonl # 存响应供下游解析 httpx -l hosts.txt -fr -sr -srd recon/httpx_store -sc -title -server -cl -ct -location -probe -silent
关键规则:机器解析优先 -j -o <file>;显式设 -rl 与 -t 保证吞吐可复现;仅需从 host 输入做双 scheme 探测时用 -nf;用 -path 或 -ports 时收紧范围避免扫描膨胀;下游需原始响应时用 -sr -srd <dir>。失败恢复:超时多降 -rl/-t 或升 -timeout;输出噪声大加 -fc 或 -fd 去重;只探 HTTPS 漏了 HTTP 服务重跑加 -nf(避免 -nfs)。
💡 配套 wafw00f:httpx 确认存活后,跑一次
wafw00f <url>指纹目标前面的 WAF/CDN(Cloudflare、Akamai、AWS WAF 等)——WAF 身份决定后续是限速 fuzz、换规避 payload 集、还是假定会被封堵改走别的路。
用途:ProjectDiscovery 的 Web 爬虫,支持深度/JS/已知文件爬取与无头模式。规范语法 katana [flags]。
Agent 安全基线:
mkdir -p crawl && katana -u https://target.tld -d 3 -ct 10m -mdp 2000 -fsu -jc -kf robotstxt -c 10 -p 10 -rl 50 -timeout 10 -retry 1 -ef png,jpg,jpeg,gif,svg,css,woff,woff2,ttf,eot,map -silent -j -o crawl/katana.jsonl
典型模式:
# 快速爬取基线 katana -u https://target.tld -d 3 -jc -silent # 更深的 JS 感知爬(收窄目标,务必限时) katana -u https://target.tld -d 5 -ct 15m -jc -jsl -kf all -c 10 -p 10 -rl 50 -o katana_urls.txt # 多目标 + JSONL 输出 katana -list urls.txt -d 3 -jc -silent -j -o katana.jsonl # 本地 Chrome 无头爬 katana -u https://target.tld -hl -sc -nos -xhr -j -o crawl/katana_headless.jsonl # 经代理的无头爬 katana -u https://target.tld -hl -sc -ho proxy-server=http://127.0.0.1:48080 -j -o crawl/katana_proxy.jsonl
关键规则:-kf 后必跟 all / robotstxt / sitemapxml 之一;无头模式用文档化的 -hl;-proxy 期望单个代理 URL 字符串(如 http://127.0.0.1:8080);-ho 期望逗号分隔 Chrome 选项;-kf 时深度至少 -d 3;写文件前确保父目录存在。
⚠️ Katana 无默认页数上限——输出会爆:
-jsl/-kf all/ 高-d在大站点上会让输出急剧膨胀。务必用-fs fqdn(或正则)限定范围、-mdp <n>限每域页数、-fsu折叠相似 URL、-ct/-d限时限深;只需端点时用-f url输出纯 URL 列表而非-j;跑完用du -sh <out>体检,超量就收紧重跑。配套:gospider -s https://target.tld -d 3 -c 10 -t 20做第二趟爬虫补 Katana 漏掉的;~/tools/JS-Snooper/js_snooper.sh <domain>与~/tools/jsniper.sh/jsniper.sh <domain>做域名级 JS 端点/密钥快速扫。
用途:ProjectDiscovery 的快速端口扫描。规范语法 naabu [flags]。
Agent 安全基线:
naabu -list hosts.txt -top-ports 100 -scan-type c -Pn -rate 300 -c 25 -timeout 1000 -retries 1 -verify -silent -j -o naabu.jsonl
典型模式:
# Top 端口 + 受控速率 naabu -list hosts.txt -top-ports 100 -scan-type c -rate 300 -c 25 -timeout 1000 -retries 1 -verify -silent -o naabu.txt # 聚焦 Web 端口扫 naabu -list hosts.txt -p 80,443,8080,8443 -scan-type c -rate 300 -c 25 -timeout 1000 -retries 1 -verify -silent # 单主机快查 naabu -host target.tld -p 22,80,443 -scan-type c -rate 300 -c 25 -timeout 1000 -retries 1 -verify # root SYN 模式(若可用) sudo naabu -list hosts.txt -top-ports 100 -scan-type syn -rate 500 -c 25 -timeout 1000 -retries 1 -verify -silent
关键规则:无 root/特权原始 socket 时用 -scan-type connect;始终显式设 -timeout,单位是毫秒(不是秒);显式设 -rate 避免不稳定或噪声大;端口范围收紧(优先显式重要端口或小 -top-ports);交给后续扫描器前优先 -verify。失败恢复:特权 socket 报错切 -scan-type c;扫描慢/丢包降 -rate、降 -c、收紧 -p/-top-ports;多主机显示 down 对比有无 -Pn。
⚠️ Naabu 的
-timeout是毫秒:这是最易踩的坑——写成-timeout 10意图 10 秒,实际是 10 毫秒,几乎全部超时。毫秒单位,显式设。
用途:跨多源的被动子域名聚合(含 CT 日志)。规范语法 subfinder [flags]。
Agent 安全基线:
subfinder -d example.com -all -recursive -rl 20 -timeout 30 -silent -oJ -o subfinder.jsonl
典型模式:
# 标准被动枚举 subfinder -d example.com -silent -o subs.txt # 广源被动枚举 subfinder -d example.com -all -recursive -silent -o subs_all.txt # 多域名运行 subfinder -dL domains.txt -all -recursive -rl 20 -silent -o subfinder_out.txt # 带源归因的 JSONL 输出 subfinder -d example.com -all -oJ -cs -o subfinder_sources.jsonl # 经显式代理的被动枚举 subfinder -d example.com -all -recursive -proxy http://127.0.0.1:48080 -silent -oJ -o subfinder_proxy.jsonl
关键规则:-cs 仅与 JSON 输出(-oJ)搭配才有用;很多源需要在 provider 配置里填 API key——结果少可能是配置问题而非目标问题;-nW 做主动解析/过滤会丢掉仅被动命中的项;先被动枚举,再用 httpx 验证。失败恢复:结果意外少重跑加 -all 并核对 provider 配置/API key;provider 报错降 -rl 并按源加 -rls;跑太久降范围或拆分域名批次。
💡 Subfinder → httpx 流水线:Subfinder 产出的是「可能存在的子域名」,还需 httpx 验证存活。两者用 JSON 输出串联(
subfinder -oJ→httpx -l),是侦察的标准流水线,详见本章 04 节。
用途:快速 SAST 分诊与自定义规则匹配。规范语法 semgrep scan [flags]。
Agent 安全基线:
semgrep scan --config p/default --metrics=off --json --output semgrep.json --quiet --jobs 4 --timeout 20 /workspace
典型模式:
# 默认安全扫描 semgrep scan --config p/default --metrics=off --json --output semgrep.json --quiet /workspace # 聚焦高严重度 semgrep scan --config p/default --severity ERROR --metrics=off --json --output semgrep_high.json --quiet /workspace # OWASP 取向扫描 semgrep scan --config p/owasp-top-ten --metrics=off --sarif --output semgrep.sarif --quiet /workspace # 按语言/框架选规则 semgrep scan --config p/python --config p/secrets --metrics=off --json --output semgrep_python.json --quiet /workspace # 限定目录扫描 semgrep scan --config p/default --metrics=off --json --output semgrep_api.json --quiet /workspace/services/api # Pro 引擎检查或运行 semgrep scan --config p/default --pro --metrics=off --json --output semgrep_pro.json --quiet /workspace
关键规则:始终带 --metrics=off——Semgrep 默认发遥测;始终显式提供 --config,别依赖模糊默认;机器可读下游优先 --json --output <file> 或 --sarif --output <file>;目标路径显式,尽量用绝对或清晰范围的路径而非 .;Pro 可用性重要时先跑一条有界命令检查再假定跨文件分析存在。失败恢复:扫描太慢收窄目标路径并减少活跃规则集再动引擎设置;超时适度升 --timeout 或降 --jobs;输出太宽收紧 --config、加 --severity、排除无关路径;Pro 失败用 --oss-only 或去 --pro 重跑(注明丢失跨文件覆盖)。
⚠️
--metrics=off是 Semgrep 红线:不带这个标志,Semgrep 默认向其服务器发送遥测/指标。代理跑 Semgrep 必带--metrics=off,尤其在合规/离线环境。
用途:写并执行自定义 exploit 脚本;通过沙箱烤进的 caido_api 模块做代理自动化。没有独立的 Strix Python 执行器,通过 exec_command 跑 python3。
工作流(迭代式 exploit):
apply_patch 创建/编辑任务专属脚本(如 poc_<task-id>.py,避免覆盖项目文件或其他代理脚本);exec_command 运行:python3 poc_<task-id>.py;代理自动化示例(从捕获流量里找含 id=/user= 的 POST 请求):
import asyncio from caido_api import list_requests, view_request async def main(): posts = await list_requests( httpql_filter='req.method.eq:"POST" AND req.path.cont:"/api/"', first=50, ) candidates = [] for edge in posts.edges: request_id = edge.node.request.id body = await view_request(request_id, part="request") raw = body.request.raw.decode("utf-8", errors="replace") if "id=" in raw or "user=" in raw: candidates.append(request_id) print(f"{len(candidates)} candidates") print(candidates[:10]) asyncio.run(main())
预装库(直接 import,免安装):requests、httpx、beautifulsoup4(bs4)、lxml、pyjwt(jwt)、cryptography。
装额外包(用 uv,比 pip 快得多):
uv pip install --python /app/.venv/bin/python <package>
⚠️
shell参数的陷阱:exec_command的shell参数用于切换 POSIX shell(bash/zsh/sh),不是用于选解释器。把解释器调用放进cmd:cmd="python3 -c '...'",而不是shell=python3, cmd="..."。shell=<interpreter>快捷方式会以微妙方式失效——python3只在login=False时工作(SDK 会加-l/-i),其他解释器(node/ruby/perl)取-e而非-c,即便login=False也失败。
💡 Python 是 exploit 的终极工具:当现成工具(nuclei/sqlmap/...)测不出某个漏洞,或漏洞逻辑太独特需要定制 PoC 时,Python 登场。配合
caido_api,Python 脚本能直接复用代理抓到的真实请求做批量/复杂测试——这是 Strix 区别于「只会跑预设规则」的扫描器的关键能力。详见本章 02 节对caido_api的展开。
把上述工具浓缩成一张总表,方便快速对照:
| 工具 | 一句话用途 | 关键标志/纪律 |
|---|---|---|
| nmap | 网络扫描与服务富集 | 两趟(发现+富集),必设 --host-timeout;广发现用 naabu |
| nuclei | 模板化漏洞扫描 | 必给模板选择(-as/-t/-tags),显式 -rl/-c/-bs |
| sqlmap | SQL 注入检测与利用 | 必带 --batch,从 --level 2 --risk 1 起手 |
| ffuf | 任意位置精准 fuzz | 必带 -noninteractive,FUZZ 在变异点 |
| httpx | HTTP 探测与指纹 | 机器解析用 -j -o,配套 wafw00f 查 WAF |
| katana | Web 爬虫 | 无默认页数上限,必限时限深限范围 |
| naabu | 快速端口扫描 | -timeout 是毫秒,交给后续扫描器前 -verify |
| subfinder | 被动子域名枚举 | 先被动枚举再 httpx 验证,源少查 API key 配置 |
| semgrep | SAST 与自定义规则 | 必带 --metrics=off,显式 --config |
| python | 自定义 exploit + 代理自动化 | 通过 exec_command 跑 python3,用 caido_api |
| dirsearch | 目录/文件广扫(零配置) | dirsearch -u <url> -e php,html,js,json,ffuf 的互补 |
--host-timeout;广端口发现优先 naabu,nmap 做有范围验证/富集。-as/-t/-tags),显式设 -rl/-c/-bs,结构化输出 -j -o,禁 OAST 用 -ni。--batch 避免交互卡死,显式 -p,从保守起手,改 profile 后用 --flush-session。-noninteractive 避免吞命令,FUZZ 在变异点,结构化输出 -of json -o;广扫零配置用 dirsearch。-j -o,配套 wafw00f);katana 爬虫(无默认页数上限,必限时限深);naabu 快端口(-timeout 是毫秒);subfinder 被动枚举(先枚举再 httpx 验证)。--metrics=off 与显式 --config;python 通过 exec_command 跑 python3,预装常用库,用 caido_api 做代理自动化,shell 参数不是选解释器。下一节,我们用这些侦察工具组合出一套完整的资产发现方法论——从证书透明度、TLS SAN 枢轴、被动 DNS 到 ASN/IP 枚举,找到字典爆破找不到的主机。