关于 visual-recon
visual-recon 是面向安全侦察工作的批量网站截图与视觉分诊技能,使用 gowitness 等工具检查存活主机。它结合截图和技术指纹,帮助从大量子域名中找出登录面板、默认安装页及配置异常服务。
主要功能
- 01批量截取存活主机页面
- 02为 JavaScript 页面使用无头模式
- 03按标题和视觉特征筛选目标
- 04比较不同子域名的页面相似度
- 05结合工具识别技术栈
适用场景
- 01快速筛查大量存活子域名
- 02发现默认 CMS 安装页和管理面板
- 03比较多环境站点以寻找共享基础设施
- 04优先检查开发环境和错误页面
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ uphiago/ recon-skills --skill visual-recon安装后在 Claude Code 中输入/visual-recon确认已加载。
详细介绍
视觉侦察
自动为每个在线主机截图,以便通过视觉方式快速筛查数百个子域名,而不必逐个手动打开。结合技术指纹识别,可以一眼发现技术栈、CMS 默认安装页、管理面板和配置错误的服务。几分钟内处理 500+ 个主机,并通过视觉检查找出高价值目标。
适用场景
- 你有 100+ 个在线子域名,需要快速确定目标优先级。
- 手动浏览不适合大规模侦察,速度太慢。
- 需要识别默认安装页(WordPress 设置、phpMyAdmin 登录页、Jenkins 仪表板)。
- 想比较不同子域名的视觉指纹(共享基础设施)。
- 目标会根据 User-Agent 或地理位置提供不同内容。
前提条件
terminalgowitness、httpx 和 curl。- 已安装
gowitness:go install github.com/sensepost/gowitness@latest。 - 来自
subdomain-enumeration的在线子域名列表。
快速开始
gowitness file -f alive_subs.txt -P ./screenshots/ --no-http
操作步骤
阶段 1 — 批量截图
# gowitness — fast, Go-based screenshot tool
gowitness file -f alive_subs.txt \
-P ./screenshots/ \
--no-http \
--timeout 15 \
--resolution-x 1440 \
--resolution-y 900
# With database for searchable results
gowitness file -f alive_subs.txt -P ./screenshots/ --no-http \
--db gowitness.db --chrome-window-x 1440 --chrome-window-y 900
# Query results
gowitness report list --db gowitness.db
gowitness report generate --db gowitness.db
# eyewitness — with HTML report generation
python3 EyeWitness.py \
-f alive_subs.txt \
--web \
-d ./eyewitness_output/ \
--timeout 15 \
--no-prompt
阶段 2 — 为 JS 渲染的网站启用无头模式
# Single-page applications need JS execution
gowitness single -u https://[SPA_COMPANY] \
-P ./screenshots/ \
--chrome-window-x 1440 --chrome-window-y 900
# Batch headless capture
cat spa_urls.txt | while read url; do
gowitness single -u "$url" -P ./screenshots/
done
阶段 3 — 视觉分析模式
检查截图,寻找高价值模式:
# Extract all titles from screenshots for quick filtering
gowitness report list --db gowitness.db \
| grep -iE "login|admin|dashboard|setup|install|phpmyadmin|jenkins|grafana|api|dev|staging|test"
# Look for default error pages (identifies specific web servers)
gowitness report list --db gowitness.db \
| grep -iE "404|403|502|503|default|maintenance|under construction"
需要关注的内容:
| 截图内容 | 含义 |
|---|---|
| WordPress 安装页 | 全新 WordPress — 在 /wp-admin/install.php 上测试注册 |
| phpMyAdmin 登录页 | 数据库访问面板 — 尝试默认凭据 |
| Jenkins 登录页 | CI/CD 服务器 — 检查是否允许未认证访问 |
| Grafana/Prometheus | 监控仪表板 — 检查是否有公开数据 |
| IIS 默认页 | Windows 服务器 — 检查 ASP.NET 端点 |
| Apache 默认页 | 标准 Linux 服务器 — 检查 server-status |
| 错误堆栈跟踪 | 已启用调试模式 — 提取服务器路径和版本 |
| 目录列表 | 可读取的文件树 — 检查配置文件 |
| 自定义端口上的登录表单 | 内部管理面板 — 最高优先级目标 |
阶段 4 — 视觉差异比较(多环境)
# Compare screenshots across subdomains to find shared infrastructure
# Same visual = shared server = if one is vulnerable, all are
ls screenshots/ | cut -d'-' -f1 | sort | uniq -c | sort -rn
# High count of identical-looking sites = mass vulnerability potential
阶段 5 — 从截图识别技术指纹
# whatweb — identifies CMS, frameworks, servers
whatweb -i alive_subs.txt -a 3 -t 50 --log-brief=cms_results.txt
# wappalyzer CLI — detailed tech stack
wappalyzer https://target.com
# httpx with tech detection built-in
cat alive_subs.txt | httpx -silent -tech-detect -o tech_detected.txt
# Extract unique technologies
cat tech_detected.txt | awk -F'[' '{print $2}' | tr -d ']' | tr ',' '\n' \
| sort | uniq -c | sort -rn
阶段 6 — 基于截图的筛查工作流
# Full pipeline: subdomains → alive → screenshot → filter → prioritize
cat all_subs.txt \
| httpx -silent -mc 200 -o alive_200.txt
gowitness file -f alive_200.txt -P ./screenshots/ --no-http
# Generate report for manual review
gowitness report generate --db gowitness.db -o ./report/
# Extract login/admin pages for priority testing
gowitness report list --db gowitness.db \
| grep -iE "login|admin|sign.?in|dashboard|panel|manage" \
> priority_targets.txt
注意事项
- 大批量截图可能会占满磁盘。 500 张 1440x900 的截图约为 300MB。
- JS 较多的 SPA 可能渲染为空白页。 使用无头模式并延长超时时间。
- 重定向链会生成重定向目标的截图。 这是正确的——你需要的是最终目的地。
- CAPTCHA 页面会浪费截图。 截图前先筛除 CAPTCHA 主机。
- 慢速服务器可能超时。
--timeout 15通常足够;连接较慢时请调高。
验证
alive_subs.txt中的所有主机都有对应截图。- 视觉检查确认每张截图都显示了有意义的内容(非空白页、非错误页)。
- 技术检测结果与视觉指纹一致(WordPress 网站图标 = WordPress CMS)。
- 已识别优先目标(登录面板、管理仪表板、开发环境),并将其转入下一阶段。
相关技能
subdomain-enumeration— 生成在线子域名列表。web-enumeration— 深入检查通过截图发现的单个主机。cms-detection— 自动检测已发现主机上的 CMS 和框架。
评论
支持 Markdown