
Recon Full
- 31 installs
- 1.6k repo stars
- Updated July 19, 2026
- wgpsec/aboutsecurity
Helps with ai & agent building tasks during AI-assisted development.
About
recon-full is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- recon-full
- AI & Agent Building
- AI-coding skill
Recon Full by the numbers
- 31 all-time installs (skills.sh)
- +2 installs in the week ending Jul 27, 2026 (Skillselion tracking)
- Ranked #9,164 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/wgpsec/aboutsecurity --skill recon-fullAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 31 |
|---|---|
| repo stars | ★ 1.6k |
| Last updated | July 19, 2026 |
| Repository | wgpsec/aboutsecurity ↗ |
What it does
Helps with ai & agent building tasks during AI-assisted development.
Files
主动式全流程侦察方法论
本技能是渗透测试的标准第一步,目标是从域名/IP 出发,尽可能多地发现资产和漏洞。
深入参考
- Web 目录、历史端点、隐藏参数、Next.js/SPA 路由发现 → references/web-discovery-methods.md
Phase 0: 范围确认
确认测试目标的范围,和任务描述,尽量不要超出目标范围
- 如果任务强调不测试子域名,则跳过 Phase 1: 子域名枚举步骤
- 如果任务强调不测试其他端口,则跳过 Phase 2: 端口扫描步骤
Phase 1: 子域名枚举
用 dns 枚举工具获取更多子域名。这步很关键——子域名往往是被遗忘的攻击面(测试环境、旧版本、内部系统)。
推荐使用工具
- ksubdomain
分析要点:
- 子域名命名模式:
dev.,test.,staging.,api.,admin.通常是高价值目标 - CDN 分布:被 CDN 保护的域名可能需要找源站 IP
- 通配符记录:
*.example.com存在时,需要用字典枚举而非纯 DNS 解析
Phase 2: 端口扫描
对发现的 IP/域名用端口扫描工具扫描端口。
推荐使用工具
- naabu
高价值端口:
- Web:80, 443, 8080, 8443, 8888
- 数据库:3306(MySQL), 5432(PostgreSQL), 6379(Redis), 27017(MongoDB)
- 远程管理:22(SSH), 3389(RDP), 5900(VNC)
- 中间件:8009(AJP/Tomcat), 9200(Elasticsearch), 2375(Docker API)
建议
- 如果扫描判断目标没有开放任何端口,建议用全端口扫描 (1-65535)
- 除非实在没有工具可用,不然不建议使用 nmap , 速度太慢,效果太差
Phase 3: 存活检测
用 urlive 探活工具检测 HTTP/HTTPS 服务存活状态。
推荐使用工具
- httpx
分析要点:
- HTTP 到 HTTPS 的重定向链
- 不同端口返回不同应用(同 IP 多站点)
- 状态码 403/401 的端点 → 可能是需要认证的管理后台
- 302 跳转到登录页 → 说明有受保护的内容
Phase 4: 指纹识别
用指纹识别工具识别技术栈,这直接决定后续的漏洞利用方向。
推荐使用工具
- nuclei
技术栈 → 攻击策略映射:
| 技术栈 | 优先检查 |
|---|---|
| PHP | LFI/文件上传/反序列化 |
| Java/Spring | 反序列化/JNDI/Actuator |
| Python/Django/Flask | SSTI/Pickle |
| Node.js/Express | 原型链污染/SSRF |
| WordPress/Joomla | CMS 专用 POC |
| Nginx/Apache | 解析漏洞/配置错误 |
Phase 5: POC 扫描
用漏洞扫描工具进行已知漏洞扫描。根据指纹结果关注特定类别漏洞。
推荐使用工具
- nuclei
常见漏洞类型
- 框架漏洞(Spring4Shell, Struts2, Log4j)
- CMS 漏洞(WordPress plugin, Joomla, Drupal)
- 中间件漏洞(Tomcat Manager, WebLogic, JBoss)
输出要求
每个阶段结束后简要总结发现,最终按攻击优先级排序: 1. 可直接利用的高危漏洞 2. 暴露的管理后台和敏感接口 3. 可进一步探测的攻击面
{
"skill_name": "recon-full",
"evals": [
{
"id": 1,
"name": "recon-techstack-to-attack-mapping",
"prompt": "指纹识别发现目标运行 Python/Flask 框架,Nginx 反向代理,Redis 6379 对外开放。根据这个技术栈,你应该优先检查哪些漏洞类型?",
"expected_output": "Flask→SSTI/Pickle反序列化, Nginx→解析漏洞/配置错误, Redis→未授权访问/主从复制RCE",
"expectations": [
"SSTI|模板注入|Jinja2|Flask模板",
"Pickle|反序列化|Python反序列化",
"Redis|未授权|无密码|AUTH",
"Nginx|解析漏洞|配置错误|alias遍历",
"LFI|SSRF|Flask调试模式|Werkzeug"
],
"required_terms": [
"SSTI",
"LFI",
"SSRF"
]
},
{
"id": 2,
"name": "recon-nonstandard-port-significance",
"prompt": "端口扫描发现目标 IP 开放了以下端口:80, 443, 8009, 9200, 33060。请分析每个端口对应的服务和攻击价值。",
"expected_output": "8009=AJP/Tomcat(GhostCat), 9200=Elasticsearch(未授权), 33060=MySQL X Protocol, 80/443=Web",
"expectations": [
"8009|AJP|Tomcat|GhostCat|CVE-2020-1938",
"9200|Elasticsearch|未授权|无认证",
"33060|MySQL|X Protocol|MySQL X",
"非标准端口|30000+|隐藏服务|管理端口",
"高价值|优先攻击|数据库|中间件"
],
"required_terms": [
"AJP",
"MySQL",
"Tomcat"
]
},
{
"id": 3,
"name": "recon-five-phase-pipeline-order",
"prompt": "你拿到目标域名 target.com,但还没做任何侦察。请按正确顺序列出完整的侦察管线步骤,并说明每一步依赖前一步什么数据。",
"expected_output": "子域名枚举→端口扫描→存活检测→指纹识别→POC扫描,每步输出作为下一步输入",
"expectations": [
"子域名|DNS枚举|第一步|scan_dns",
"端口扫描|IP/域名列表|第二步|scan_port",
"存活检测|HTTP|第三步|scan_urlive|httpx",
"指纹识别|技术栈|第四步|scan_finger",
"POC扫描|漏洞验证|第五步|poc_web|最后"
],
"required_terms": [
"scan_dns",
"scan_port",
"scan_urlive"
]
}
]
}
{
"skill_id": "recon-full",
"recall_tests": [
{
"id": 1,
"type": "keyword_positive",
"description": "核心关键词",
"keywords": [
"recon",
"侦察",
"subdomain",
"port",
"fingerprint"
]
},
{
"id": 2,
"type": "keyword_positive",
"description": "场景搜索",
"keywords": [
"攻击面",
"资产发现",
"扫描",
"渗透测试"
]
},
{
"id": 3,
"type": "keyword_negative",
"description": "不应被后渗透召回",
"keywords": [
"mimikatz",
"lateral movement"
]
}
],
"llm_tests": [
{
"id": 1,
"name": "recon-full-scenario",
"scenario": "需要对目标进行完整的全面侦察。请搜索完整侦察方法论。",
"max_rounds": 2,
"expect_tool_calls": [
{
"tool": "list_skills",
"keyword_contains": "recon|full|侦察|全面|信息收集"
},
{
"tool": "read_skill",
"id": "recon-full"
}
]
}
]
}
Web 发现与目录/端点枚举
Web 发现的目标不是盲目跑字典,而是把站点实际暴露的文件、目录、历史端点、前端路由和隐藏参数串成攻击面清单。先用低噪声来源建立候选集,再根据技术栈选择字典和验证方式。
---
1. 低噪声入口
优先检查不会产生大量请求的公开文件和页面内容:
| 入口 | 价值 | 检查点 |
|---|---|---|
/robots.txt | 被搜索引擎排除的路径 | Disallow 是否暴露 admin、backup、staging |
/sitemap.xml | 站点正式 URL 清单 | 旧业务、语言版本、移动端路径 |
/.well-known/security.txt | 安全联系人和组织信息 | 邮箱、PGP、漏洞提交入口 |
| HTML/JS 注释 | 遗留说明和隐藏路径 | TODO、debug、内网 URL、旧接口 |
| favicon | 关联相同系统 | favicon hash 搜索相似资产 |
curl -s https://example.com/robots.txt
curl -s https://example.com/sitemap.xml
curl -s https://example.com/.well-known/security.txt---
2. 目录与文件枚举
目录枚举要根据技术栈、状态码行为和认证状态调整字典。发现 PHP、Next.js、Spring、WordPress 等技术栈后,优先使用对应技术的目录、参数和备份文件字典,而不是直接使用通用大字典。
ffuf -H 'User-Agent: Mozilla' -t 30 -w wordlist.txt -u 'https://example.com/FUZZ'
gobuster dir -a 'Mozilla' -e -k -l -t 30 -w wordlist.txt -u 'https://example.com/'结果判断:
200/204:确认内容是否真实,排除软 404。301/302:跟踪跳转目标,可能暴露登录入口或租户路径。401/403:端点存在但受限,优先加入后续认证绕过/越权测试。405:路径存在但方法不匹配,尝试POST/PUT/DELETE。500:可能触发异常路径,保留请求样本用于参数测试。
备份与临时文件
备份文件经常包含源码、配置和凭据,来源包括编辑器临时文件、手工备份、部署残留和压缩包。
bfac --url http://example.com/test.php --level 4
bfac --list urls.txt重点后缀:.bak、.old、.orig、.swp、~、.zip、.tar.gz、.7z、.sql。
---
3. 爬虫与历史端点
爬虫用于从当前页面扩展攻击面;历史 URL 用于发现已经从前端移除但后端仍可达的接口。
katana -u https://example.com
echo https://example.com | hakrawler
gau --o example-urls.txt example.com
gau --blacklist png,jpg,gif example.com归并 URL 时要按路径和参数去重,保留:
- 旧版 API:
/api/v1/、/legacy/、/old/。 - 管理路径:
/admin/、/internal/、/manage/。 - 文件操作:
download、export、upload、import。 - 回调和跳转:
redirect、callback、returnUrl。
---
4. 前端框架特定发现
Next.js
Next.js 会在前端暴露构建清单和页面路由信息。浏览器控制台可直接查看:
console.log(window.__BUILD_MANIFEST)
console.log(__BUILD_MANIFEST.sortedPages)重点关注动态路由(如 /[slug]、/user/[id])、admin/internal 页面、API route 和旧 chunk 中硬编码的接口。
SPA / JS Bundle
React、Vue、Angular 等 SPA 的 API 端点常在 JS bundle 中,发现后应转入 js-api-extract 技能做系统化提取。
---
5. 隐藏参数发现
隐藏参数适合在已经确认端点存在后使用。先选少量高价值端点做验证,避免对全站无差别 fuzz。
x8 -u "https://example.com/?something=1" -w parameters.txt优先测试:
- 查询类:
search、filter、sort、q。 - 对象引用:
id、user_id、account_id、file。 - 调试开关:
debug、test、preview、admin。 - 跳转回调:
next、url、return、redirect_uri。
---
6. 输出整理
Web 发现阶段的输出应按“可行动”组织:
1. 存活路径和状态码,标注是否需要认证。 2. 参数化端点,按注入/越权/文件操作/跳转分类。 3. 历史端点和备份文件,标注来源和首次发现渠道。 4. 前端框架路由和 JS bundle 清单。 5. 推荐下一步:API fuzz、业务逻辑测试、已知漏洞扫描或手工复测。