一键导入
asset-discovery
用于授权范围内的资产发现、DNS 验证、端口发现、HTTP 存活探测和基础指纹识别。适合用户提供域名、IP、CIDR、主机列表或已有扫描结果时使用。会指导智能体组合 subfinder、amass、dnsx、naabu、nmap、masscan、httpx、whatweb、wafw00f。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
用于授权范围内的资产发现、DNS 验证、端口发现、HTTP 存活探测和基础指纹识别。适合用户提供域名、IP、CIDR、主机列表或已有扫描结果时使用。会指导智能体组合 subfinder、amass、dnsx、naabu、nmap、masscan、httpx、whatweb、wafw00f。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
用于扫描代码仓库、源码目录、文件系统和配置文件中的密钥、依赖漏洞、IaC 错误配置和常见安全问题。适合组合 gitleaks、trufflehog、semgrep-offline、semgrep、trivy 对项目进行本地安全检查。
用于漏洞研究、公开 PoC 线索检索、Exploit-DB 查询、Metasploit 模块查询、payload 选型研究和 Linux 本地提权线索判断。适合用户提供产品版本、CVE、服务指纹、扫描结果、系统版本或内核版本时使用。
用于对授权目标执行 Nuclei 模板检查并整理结果。适合已有 URL、主机列表、技术栈线索或 CVE 线索时使用。重点指导模板选择、速率控制、JSONL 输出、结果复核和后续验证。
为单目标或少量目标的深入渗透测试提供场景化方法论和判断线索。适合用户提供域名、URL、IP、CIDR、靶机地址、系统入口或已有扫描结果,并要求“测一下”“深入测试”“做黑盒测试”“开始渗透测试”“继续往下验证”等场景。帮助理解当前证据、选择高价值测试方向、串联专项技能、识别误区并判断何时从广度发现转向深入验证。
用于在授权目标上使用 sqlmap 验证疑似 SQL 注入。适合用户提供 URL、参数、原始 HTTP 请求、Nuclei 发现或手工测试线索时使用。默认采用低风险低强度参数,优先证明问题存在,不默认导出数据或执行系统命令。
用于检查授权目标的 TLS 配置、证书、协议版本、加密套件和常见 TLS 风险。适合用户提供域名、IP、端口、HTTPS URL 或服务清单时使用。会指导 testssl.sh、sslscan、openssl 的组合使用。
| name | asset-discovery |
| description | 用于授权范围内的资产发现、DNS 验证、端口发现、HTTP 存活探测和基础指纹识别。适合用户提供域名、IP、CIDR、主机列表或已有扫描结果时使用。会指导智能体组合 subfinder、amass、dnsx、naabu、nmap、masscan、httpx、whatweb、wafw00f。 |
这份技能提供资产发现中的判断方法和可复用命令。下面的路径适合常见场景,但可根据已有结果、目标规模和授权边界跳过、重排或替换。
把用户给出的授权范围整理成后续测试可直接使用的资产清单:
可以从以下任一输入开始:
example.com。执行前先确认:
masscan 和部分 nmap 模式。如果授权范围不清楚,先只做整理和低影响查询,不做大规模端口扫描。
资产发现阶段一般不值得临时拉取大型数据集。
subfinder 和 amass 的效果更多取决于 provider 配置,而不是单次任务里的临时更新。
默认策略:
seclists、wordlists 或大型资产数据集。资产发现工具的结果质量更多取决于数据源和 API key,而不是临时更新工具本身。
普通任务通常无需在执行过程中更新工具或大字典。
如果 subfinder 或 amass 缺少 provider 配置,可以继续运行,但要在结果限制里说明“未配置 API key,覆盖面可能较低”。
不要临时拉取大型字典或未知来源的资产数据集。普通任务中使用镜像内置字典和工具即可。
这条路径体现“被动线索 → 解析确认 → 端口与服务确认 → Web 分流”的证据递进关系,不代表所有目标都要完整执行。
mkdir -p recon/{input,raw,clean,final,notes}
如果输入是根域名:
cat > recon/input/domains.txt <<'EOF'
example.com
EOF
如果输入是主机或 IP:
cat > recon/input/hosts.txt <<'EOF'
host-or-ip
EOF
适合域名目标。先用 subfinder 快速拿结果,再用 amass 补充。
subfinder -dL recon/input/domains.txt \
-silent -all \
-o recon/raw/subfinder.txt
amass enum -passive \
-df recon/input/domains.txt \
-o recon/raw/amass_passive.txt
合并并清理:
cat recon/raw/subfinder.txt recon/raw/amass_passive.txt 2>/dev/null \
| sed 's/\.$//' \
| tr '[:upper:]' '[:lower:]' \
| sort -u > recon/clean/subdomains.txt
如果用户明确允许主动枚举,可以再考虑主动模式:
amass enum -active \
-df recon/input/domains.txt \
-o recon/raw/amass_active.txt
确认哪些子域名真的可解析。
dnsx -l recon/clean/subdomains.txt \
-silent -a -resp \
-o recon/raw/dnsx_a.txt
dnsx -l recon/clean/subdomains.txt \
-silent -aaaa -resp \
-o recon/raw/dnsx_aaaa.txt
dnsx -l recon/clean/subdomains.txt \
-silent -cname -resp \
-o recon/raw/dnsx_cname.txt
提取可解析主机:
cat recon/raw/dnsx_a.txt recon/raw/dnsx_aaaa.txt 2>/dev/null \
| awk '{print $1}' \
| sort -u > recon/clean/resolved_hosts.txt
提取 IP 线索:
cat recon/raw/dnsx_a.txt recon/raw/dnsx_aaaa.txt 2>/dev/null \
| grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-fA-F:]{2,})' \
| sort -u > recon/clean/resolved_ips.txt
注意:解析到云厂商、CDN、第三方 SaaS 时,只能作为线索,不能自动视为可主动测试资产。
对主机名列表做常规端口发现:
naabu -list recon/clean/resolved_hosts.txt \
-top-ports 1000 \
-silent \
-json \
-o recon/raw/naabu_top1000.jsonl
如果用户给的是 IP/CIDR,也可以把 IP 放进 recon/input/ips.txt 后执行:
naabu -list recon/input/ips.txt \
-top-ports 1000 \
-silent \
-json \
-o recon/raw/naabu_ips_top1000.jsonl
先按主机聚合 Naabu 发现的端口:
cat recon/raw/naabu_top1000.jsonl recon/raw/naabu_ips_top1000.jsonl 2>/dev/null \
| jq -s -r 'group_by(.host // .ip)[] |
[(.[0].host // .[0].ip), (map(.port|tostring)|unique|join(","))] | @tsv' \
> recon/clean/nmap_targets.tsv
对每个主机只识别 Naabu 已发现的端口:
while IFS=$'\t' read -r host ports; do
safe_name="$(echo "$host" | sed 's#[/:]#_#g')"
nmap -sV -sC -Pn -p "$ports" "$host" -oA "recon/raw/nmap_services_${safe_name}"
done < recon/clean/nmap_targets.tsv
如果没有 raw socket 权限,降级为 TCP connect scan:
while IFS=$'\t' read -r host ports; do
safe_name="$(echo "$host" | sed 's#[/:]#_#g')"
nmap -sT -sV -Pn -p "$ports" "$host" -oA "recon/raw/nmap_tcp_connect_${safe_name}"
done < recon/clean/nmap_targets.tsv
只有在用户明确授权大范围高速扫描时,才用 masscan:
masscan -iL recon/input/ips.txt \
--top-ports 100 \
--rate 1000 \
-oL recon/raw/masscan.lst
对解析成功的主机做 HTTP 探测:
httpx -l recon/clean/resolved_hosts.txt \
-silent \
-status-code \
-title \
-tech-detect \
-follow-redirects \
-json \
-o recon/raw/httpx.jsonl
提取存活 URL:
jq -r '.url' recon/raw/httpx.jsonl \
| sort -u > recon/clean/http_urls.txt
提取标题和技术栈摘要:
jq -r '[.url, (.status_code|tostring), (.title // ""), ((.tech // [])|join(","))] | @tsv' \
recon/raw/httpx.jsonl > recon/final/http_services.tsv
whatweb --log-json=recon/raw/whatweb.json \
--input-file recon/clean/http_urls.txt
while read -r url; do
wafw00f "$url" || true
done < recon/clean/http_urls.txt | tee recon/raw/wafw00f.txt
生成几个后续技能常用的输入文件:
cp recon/clean/http_urls.txt recon/final/web_targets.txt
cp recon/clean/resolved_hosts.txt recon/final/hosts.txt
cat recon/raw/naabu_top1000.jsonl recon/raw/naabu_ips_top1000.jsonl 2>/dev/null \
| jq -r '"\(.host // .ip):\(.port)"' \
| sort -u > recon/final/host_ports.txt
适合快速发现子域名。
subfinder -d example.com -silent -all -o subdomains.txt
subfinder -dL domains.txt -silent -all -o subdomains.txt
要点:
-silent 方便后续管道处理。-all 会使用更多来源。适合补充子域名线索。
amass enum -passive -d example.com -o amass.txt
要点:
-passive。-active 只有在授权允许主动枚举时再用。subfinder。适合验证解析结果。
dnsx -l subdomains.txt -silent -a -resp -o dnsx_a.txt
要点:
适合快速端口发现。
naabu -list hosts.txt -top-ports 1000 -silent -json -o ports.jsonl
要点:
nmap -p 做服务确认。适合服务识别和脚本探测。
nmap -sV -sC -Pn -p 80,443 target.example -oA nmap_services
降级:
nmap -sT -sV -Pn -p 80,443 target.example -oA nmap_tcp_connect
要点:
-sC 会跑默认脚本,不要在敏感环境随意放大。适合明确授权的大范围高速端口发现。
masscan -iL ips.txt --top-ports 100 --rate 1000 -oL masscan.lst
要点:
适合 HTTP 存活、标题、状态码和技术栈探测。
httpx -l hosts.txt -silent -status-code -title -tech-detect -json -o httpx.jsonl
适合补充技术栈和防护信息。
whatweb https://example.com
wafw00f https://example.com
保留哪些内容取决于当前任务;重点是让后续判断能区分被动线索、解析成功、服务可达和归属已确认这几个不同层次。