mcpField
V
visual-recon

visual-recon

github.com/uphiago安全1.3k43 次安装8 周前更新
代码仓库

关于 visual-recon

visual-recon 是面向安全侦察工作的批量网站截图与视觉分诊技能,使用 gowitness 等工具检查存活主机。它结合截图和技术指纹,帮助从大量子域名中找出登录面板、默认安装页及配置异常服务。

主要功能

  1. 01批量截取存活主机页面
  2. 02为 JavaScript 页面使用无头模式
  3. 03按标题和视觉特征筛选目标
  4. 04比较不同子域名的页面相似度
  5. 05结合工具识别技术栈

适用场景

  1. 01快速筛查大量存活子域名
  2. 02发现默认 CMS 安装页和管理面板
  3. 03比较多环境站点以寻找共享基础设施
  4. 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 或地理位置提供不同内容。

前提条件

  • terminal gowitness、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 通常足够;连接较慢时请调高。

验证

  1. alive_subs.txt 中的所有主机都有对应截图。
  2. 视觉检查确认每张截图都显示了有意义的内容(非空白页、非错误页)。
  3. 技术检测结果与视觉指纹一致(WordPress 网站图标 = WordPress CMS)。
  4. 已识别优先目标(登录面板、管理仪表板、开发环境),并将其转入下一阶段。

相关技能

  • subdomain-enumeration — 生成在线子域名列表。
  • web-enumeration — 深入检查通过截图发现的单个主机。
  • cms-detection — 自动检测已发现主机上的 CMS 和框架。

评论

支持 Markdown