eyeballer

GitHub
1.3k 146 中等 1 次阅读 5天前GPL-3.0图像Agent开发框架
AI 解读 由 AI 自动生成,仅供参考

Eyeballer 是一款专为网络安全渗透测试设计的智能辅助工具,它利用卷积神经网络(CNN)自动分析大量网站截图,帮助安全人员快速从海量目标中筛选出高价值攻击面。

在进行大规模网络渗透时,安全团队往往需要面对成千上万个网站截图,人工逐一排查既耗时又容易遗漏。Eyeballer 解决了这一痛点,它能自动识别并标记出“看起来过时且漏洞多”的网站、登录页面、功能性 Web 应用,同时智能过滤掉无攻击价值的自定义 404 页面或域名停放页。这意味着用户可以将宝贵的时间集中在真正可能存在安全隐患的目标上,大幅提升测试效率。

这款工具特别适合网络安全研究人员、渗透测试工程师以及红队成员使用。其核心技术亮点在于训练有素的深度学习模型,能够理解视觉特征而非简单的代码关键词,从而精准识别现代网页中复杂的登录框或具有欺骗性的错误页面。即使网站返回正常的 HTTP 状态码但内容无关紧要,Eyeballer 也能将其有效剔除。通过结合常见的截图工具(如 EyeWitness),Eyeballer 为大规模资产梳理提供了一道高效的智能过滤网,让安全评估工作更加有的放矢。

使用场景

某安全团队在对一家大型金融机构进行渗透测试时,通过自动化工具抓取了 5000 个内部子域的网页截图,急需从中筛选出高价值攻击目标。

没有 eyeballer 时

  • 分析师只能人工逐张浏览数千张截图,耗时数天且极易因视觉疲劳漏掉关键目标。
  • 难以区分“自定义 404 页面”与真实业务系统,许多返回 HTTP 200 状态码的无效页面浪费了大量探测时间。
  • 容易被域名停放页(Parked Domains)误导,这些充满广告但无实际功能的页面占据了大量排查精力。
  • 对于设计陈旧的网站缺乏敏感度,容易忽略那些看似丑陋但漏洞频发的“老古董”系统。
  • 登录入口识别困难,现代前端框架混淆了传统特征,导致无法快速定位可进行凭证枚举的页面。

使用 eyeballer 后

  • eyeballer 利用卷积神经网络自动分析所有截图,几分钟内即可将目标按风险等级分类,效率提升百倍。
  • 精准过滤掉“自定义 404"和“域名停放页”,让团队只关注真正存在业务逻辑的攻击面。
  • 自动标记“外观陈旧网站”,帮助团队优先锁定那些维护缺失、极易得手的高危系统。
  • 准确识别各类复杂的“登录页面”,无论其前端实现如何变化,都能快速圈定凭证爆破的目标范围。
  • 清晰区分单页登录与完整"Web 应用”,确保资源集中在功能丰富、攻击路径多样的核心系统上。

eyeballer 将渗透测试人员从繁琐的截图筛选中解放出来,使其能专注于真正的高价值漏洞挖掘。

运行环境要求

操作系统
  • 未说明
GPU
  • 训练时强烈建议使用支持 TensorFlow 的 GPU(具体型号、显存及 CUDA 版本需用户自行配置,文中未明确指定)
  • 预测模式可在 CPU 运行
内存

未说明

依赖
notes1. 截图建议采用原生 1.6 宽高比(如 1440x900),否则会影响预测性能。 2. 需手动从 GitHub Releases 下载预训练权重文件 (.h5)。 3. 若需自行训练模型,必须配置好 GPU 环境(驱动、硬件兼容性等),此步骤超出文档范围。 4. 训练数据需单独从 Kaggle 下载并整理目录结构。
python3.x (通过 pip3 安装)
tensorflow
requirements.txt 中定义的其他库
requirements-gpu.txt 中定义的 GPU 支持库
eyeballer hero image

快速开始

眼球检测器

Logo

快速浏览一下你的截图吧。

Eyeballer 专为大规模的网络渗透测试设计,旨在从海量的Web主机中找出“有趣”的目标。你可以像往常一样使用自己喜欢的截图工具(如 EyeWitness 或 GoWitness),然后将这些截图输入 Eyeballer,它会告诉你哪些很可能包含漏洞,哪些则不然。

立即在线试用:https://eyeballer.bishopfox.com

示例标签

老旧网站 登录页面
老旧页面示例 登录页面示例
Web应用 自定义 404 页面
Web应用示例 自定义 404 页面示例
停靠域名
停靠域名示例

标签含义

老旧网站 布局僵硬、CSS 整体混乱,还带着一股典型的“说不清道不明”的味道——一看就知道是2000年代初设计的网站。老旧网站不仅难看,通常也极其脆弱。在寻找突破口时,这类网站往往是个宝库。

登录页面 登录页面对渗透测试非常有价值,它们表明系统存在你目前无法访问的额外功能。这也意味着可以进一步开展凭证枚举攻击。你可能会认为可以通过简单的启发式规则来识别登录页面,但实际上这非常困难。现代网站并不只是简单地使用一个我们可以 grep 到的 <input> 标签。

Web应用 这一标签说明该站点拥有更庞大的页面和功能集合,可作为攻击面。与仅有一个登录页面且无其他功能的站点,或只有默认 IIS 首页而无任何功能的站点不同,这个标签提示你这里存在一个可以进行攻击的 Web 应用程序。

自定义 404 页面 现代网站喜欢用可爱的自定义 404 页面,比如破损的机器人或伤心的小狗图片。不幸的是,它们在返回这些页面时,往往会同时返回 HTTP 200 响应码。更常见的情况是,“404”页面甚至根本不包含“404”字样。尽管视觉上很吸引人,但这些页面通常并无实际价值,Eyeballer 可以帮助你将其筛选出来。

停靠域名 停靠域名看起来很真实,但实际上并非有效的攻击面。它们通常是占位页,几乎没有任何实际功能,充斥着大量广告,而且通常并不是由我们的目标实体运营的。当指定的域名错误或已过期时,就会出现这类页面。随着时间的推移,找到并排除这些页面将变得非常有价值。

设置

通过 pip 下载所需包:

sudo pip3 install -r requirements.txt

如果你需要 GPU 支持:

sudo pip3 install -r requirements-gpu.txt

注意:为 TensorFlow 配置 GPU 的过程超出了本 README 的范围。你需要考虑硬件兼容性、安装驱动程序等,涉及的内容很多。因此,如果你想使用 GPU,这部分内容只能自行解决。不过,至少从 Python 包的角度来看,上述依赖文件已经为你准备好了。

预训练权重

获取最新的预训练权重,请查看 GitHub 上的发布页面。

训练数据 你可以在这里找到我们的训练数据:

https://www.kaggle.com/altf42600/pentest-screensots

训练数据中你需要两样东西:

  1. images/ 文件夹,包含所有截图(已调整为 224x224 尺寸)
  2. labels.csv 文件,包含所有标签

将这两者复制到 Eyeballer 代码树的根目录下。

此外,你还可以找到一个可以直接使用的预训练权重文件,无需重新训练:

  1. bishop-fox-pretrained-vN.h5

该文件位于 GitHub 的“releases”部分,最新版本请在那里查找。

预测标签

注意:为了获得最佳效果,建议以原生的 1.6:1 宽高比截取网站屏幕截图,例如 1440x900。Eyeballer 会自动将图像缩放到合适的尺寸,但如果宽高比不正确,图像会被拉伸或压缩,从而影响预测性能。

要对一些截图进行分析,只需运行“预测”模式:

eyeballer.py --weights YOUR_WEIGHTS.h5 predict YOUR_FILE.png

或者针对整个目录中的文件:

eyeballer.py --weights YOUR_WEIGHTS.h5 predict PATH_TO/YOUR_FILES/

Eyeballer 会以人类可读格式(results.html 文件,方便浏览)和机器可读格式(results.csv 文件)输出结果。

性能

Eyeballer 的性能是通过评估数据集来衡量的,该数据集是从所有截图中随机抽取的 20%。由于这些截图从未用于训练,因此可以有效反映模型的实际表现。以下是最新结果:

总体二分类准确率 93.52%
全对全错准确率 76.09%

总体二分类准确率 通常就是我们所说的模型“准确率”,即对于任意一个标签,模型判断正确的概率。

全对全错准确率 则更为严格。在这种情况下,我们会综合考虑整张图片的所有标签,只要有任何一个标签判断错误,就被视为失败。这一指标反映了模型对每张图片所有标签都正确预测的概率。

标签 精确率 召回率
自定义 404 页面 80.20% 91.01%
登录页面 86.41% 88.47%
Web 应用 95.32% 96.83%
老旧网站 91.70% 62.20%
停靠域名 70.99% 66.43%

有关“精确率与召回率”的详细解释,请参阅 维基百科

训练

要训练一个新的模型,运行以下命令:

eyeballer.py train

建议使用配备高性能 GPU 的机器,以便在合理的时间内完成训练。不过,如何配置 GPU 并不在本 README 的讨论范围内。

训练完成后,将生成一个新的模型文件(默认为 weights.h5)。

评估

你刚刚训练了一个新模型,太棒了!让我们看看它在多种指标下,对从未见过的图像的表现如何:

eyeballer.py --weights YOUR_WEIGHTS.h5 evaluate

输出结果将描述模型在每个标签上的召回率和精确率。(其中也包括“以上皆非”这一伪标签)

版本历史

3.02021/04/22
2.02021/03/01

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|2周前
Agent开发框架图像

n8n

n8n 是一款面向技术团队的公平代码(fair-code)工作流自动化平台,旨在让用户在享受低代码快速构建便利的同时,保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点,帮助用户轻松连接 400 多种应用与服务,实现复杂业务流程的自动化。 n8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”:既可以通过直观的可视化界面拖拽节点搭建流程,也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外,n8n 原生集成了基于 LangChain 的 AI 能力,支持用户利用自有数据和模型构建智能体工作流。在部署方面,n8n 提供极高的自由度,支持完全自托管以保障数据隐私和控制权,也提供云端服务选项。凭借活跃的社区生态和数百个现成模板,n8n 让构建强大且可控的自动化系统变得简单高效。

184.7k|★★☆☆☆|昨天
数据工具开发框架Agent

AutoGPT

AutoGPT 是一个旨在让每个人都能轻松使用和构建 AI 的强大平台,核心功能是帮助用户创建、部署和管理能够自动执行复杂任务的连续型 AI 智能体。它解决了传统 AI 应用中需要频繁人工干预、难以自动化长流程工作的痛点,让用户只需设定目标,AI 即可自主规划步骤、调用工具并持续运行直至完成任务。 无论是开发者、研究人员,还是希望提升工作效率的普通用户,都能从 AutoGPT 中受益。开发者可利用其低代码界面快速定制专属智能体;研究人员能基于开源架构探索多智能体协作机制;而非技术背景用户也可直接选用预置的智能体模板,立即投入实际工作场景。 AutoGPT 的技术亮点在于其模块化“积木式”工作流设计——用户通过连接功能块即可构建复杂逻辑,每个块负责单一动作,灵活且易于调试。同时,平台支持本地自托管与云端部署两种模式,兼顾数据隐私与使用便捷性。配合完善的文档和一键安装脚本,即使是初次接触的用户也能在几分钟内启动自己的第一个 AI 智能体。AutoGPT 正致力于降低 AI 应用门槛,让人人都能成为 AI 的创造者与受益者。

183.6k|★★★☆☆|今天
Agent语言模型插件

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

161.7k|★★☆☆☆|今天
开发框架Agent语言模型

opencode

OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信

144.3k|★☆☆☆☆|4天前
Agent插件