第 4 章 · 03 终端与沙箱工具


文档摘要

第 4 章 · 03 终端与沙箱工具 本节摘要:本节讲透 Strix 的后两个核心工具。持久 Bash 终端运行在 Docker 沙箱内,工作目录与环境跨命令持久,支持多会话并行、后台任务、交互式响应——代理通过它调用所有预装安全工具。沙箱工具集跑在 Kali Linux 容器里,预装了七大类工具(侦察 / Web 测试 / 自动化扫描 / JS 分析 / 源码感知 / 密钥检测 / 容器供应链)。

第 4 章 · 03 终端与沙箱工具

本节摘要:本节讲透 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 仅为占位。

学习目标

阅读完本节,你应当能够:

  1. 描述持久 Bash 终端的四项能力与会话管理方式。
  2. 列举沙箱预装工具的七大分类及代表工具。
  3. 命令速查表查到 11 个常用工具的 agent 安全基线与典型模式。
  4. 说清每个工具干什么、何时该用它。
  5. 复述各工具的关键正确性规则(如 ffuf 必带 -noninteractive、naabu 的 -timeout 是毫秒)。
  6. 理解 nmap 与 naabu、ffuf 与 dirsearch 的分工关系。

一、持久 Bash 终端

Strix 代理能访问一个运行在 Docker 沙箱内的持久 bash 终端。通过它,代理能调用所有预装安全工具。

1.1 四项能力

能力 说明
持久状态 工作目录和环境在命令之间持久保留(上一条的 cd / export 在下一条仍生效)
多会话 并行运行多个终端做并发操作
后台任务 启动长时间运行的进程而不阻塞(如起一个监听器)
交互式 响应提示、控制运行中的进程

1.2 会话管理

代理能并发运行多个终端会话,典型分工:

  • 主会话:做主要测试;
  • 副会话:做监控;
  • 后台进程:跑服务器或 watcher。

1.3 三类常见用途

# 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 验证),密钥与供应链检查并行。终端的「持久状态」让这条流水线跨命令衔接。

三、CLI 工具命令速查表

下面是 11 个常用工具的速查。每个工具给出:用途定位agent 安全基线命令典型模式关键正确性规则

3.1 Nmap — 网络扫描与服务识别

用途:网络扫描与服务版本检测。规范语法 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 富集」的两趟配合。

3.2 Nuclei — 模板化漏洞扫描

用途:基于模板的漏洞扫描器。规范语法 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;发现意外为空核对模板选择;时长膨胀则收紧目标集与模板/严重度过滤。

3.3 SQLMap — 自动 SQL 注入检测与利用

用途:自动 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

3.4 ffuf — 快速 Web fuzzer

用途:对任意输入位置(路径 / 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(自带精选字典、合理默认、内置递归)。

3.5 httpx — HTTP 探测与分析

用途: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 集、还是假定会被封堵改走别的路。

3.6 Katana — Web 爬虫

用途: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 端点/密钥快速扫。

3.7 Naabu — 快速端口扫描

用途: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 毫秒,几乎全部超时。毫秒单位,显式设。

3.8 Subfinder — 被动子域名枚举

用途:跨多源的被动子域名聚合(含 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 -oJhttpx -l),是侦察的标准流水线,详见本章 04 节。

3.9 Semgrep — 快速 SAST 与自定义规则

用途:快速 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,尤其在合规/离线环境。

3.10 Python — 自定义 exploit 与代理自动化

用途:写并执行自定义 exploit 脚本;通过沙箱烤进的 caido_api 模块做代理自动化。没有独立的 Strix Python 执行器,通过 exec_commandpython3

工作流(迭代式 exploit):

  1. apply_patch 创建/编辑任务专属脚本(如 poc_<task-id>.py,避免覆盖项目文件或其他代理脚本);
  2. exec_command 运行:python3 poc_<task-id>.py;
  3. 编辑重跑直到 PoC 可靠。

代理自动化示例(从捕获流量里找含 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,免安装):requestshttpxbeautifulsoup4(bs4)、lxmlpyjwt(jwt)、cryptography

装额外包(用 uv,比 pip 快得多):

uv pip install --python /app/.venv/bin/python <package>

⚠️ shell 参数的陷阱:exec_commandshell 参数用于切换 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 的展开。

3.11 速查总表

把上述工具浓缩成一张总表,方便快速对照:

工具 一句话用途 关键标志/纪律
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_commandpython3,用 caido_api
dirsearch 目录/文件广扫(零配置) dirsearch -u <url> -e php,html,js,json,ffuf 的互补

本节要点回顾

  1. 持久终端四能力:持久状态、多会话、后台任务、交互式——工作目录与环境跨命令保留,是所有 CLI 工具的统一入口。
  2. 沙箱七大类工具:侦察 / Web 测试 / 自动化扫描 / JS 分析 / 源码感知 / 密钥检测 / 容器供应链,另有 Caido 代理与 Playwright 浏览器(02 节)。
  3. nmap:网络扫描与服务富集,两趟法(发现+富集),必设 --host-timeout;广端口发现优先 naabu,nmap 做有范围验证/富集。
  4. nuclei:模板化漏扫,必给模板选择(-as/-t/-tags),显式设 -rl/-c/-bs,结构化输出 -j -o,禁 OAST 用 -ni
  5. sqlmap:SQL 注入,必带 --batch 避免交互卡死,显式 -p,从保守起手,改 profile 后用 --flush-session
  6. ffuf:任意位置精准 fuzz,必带 -noninteractive 避免吞命令,FUZZ 在变异点,结构化输出 -of json -o;广扫零配置用 dirsearch。
  7. httpx/katana/naabu/subfinder:httpx 探测+指纹(-j -o,配套 wafw00f);katana 爬虫(无默认页数上限,必限时限深);naabu 快端口(-timeout 是毫秒);subfinder 被动枚举(先枚举再 httpx 验证)。
  8. semgrep/python:semgrep 必带 --metrics=off 与显式 --config;python 通过 exec_commandpython3,预装常用库,用 caido_api 做代理自动化,shell 参数不是选解释器。

下一节,我们用这些侦察工具组合出一套完整的资产发现方法论——从证书透明度、TLS SAN 枢轴、被动 DNS 到 ASN/IP 枚举,找到字典爆破找不到的主机。


发布者: 作者: 灏天文库 转发
评论区 (0)
U