← 开源
BishopFox

eyeballer

Convolutional neural network for analyzing pentest screenshots

ApplicationsSpecialistsPython
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
1.29k
Star
150
Fork
+0
本周
5
贡献者
创建于 2019-03-06 · 更新于 2026-10-14 · 今日第 10804 名
主要开发者
dan-bishopfoxbfgstroyogtony

BishopFox/eyeballer 排名第 10,804,有 1,293 个星标。

同类别比较

BishopFox/eyeballer 排名第 10,804,此处有 8 个同类条目;codefuse-ai/codefuse-chatbot 排名第 10,801。

同类别比较
名称排名指标
SimonSchubert/Kai10,785
语言:
Kotlin
星标数:
1,300
分叉数:
201
简介:
OpenClaw alternative in your pocket
d-kimuson/claude-code-viewer10,794
语言:
TypeScript
星标数:
1,296
分叉数:
166
简介:
A full-featured web-based Claude Code client that provides complete interactive functionality for managing Claude Code projects
anc95/writely10,797
语言:
TypeScript
星标数:
1,295
分叉数:
111
简介:
❤️‍🔥 A chrome extension as an alternative to Notion AI that goes beyond Notion AI. | 一个替代 Notion AI 的浏览器插件,不止于 Notion AI
codefuse-ai/codefuse-chatbot10,801
语言:
Python
星标数:
1,294
分叉数:
148
简介:
An intelligent assistant serving the entire software development lifecycle, powered by a Multi-Agent Framework, working with DevOps Toolkits, Code&Doc Repo RAG, etc.
TaxyAI/browser-extension10,849
语言:
TypeScript
星标数:
1,280
分叉数:
425
简介:
Automate your browser with GPT-4
jiran214/GPT-vup10,866
语言:
Python
星标数:
1,277
分叉数:
185
简介:
GPT-vup BIliBili | 抖音 | AI | 虚拟主播
Yanyutin753/PandoraNext-TokensTool10,867
语言:
Java
星标数:
1,276
分叉数:
130
简介:
【更方便更安全的管理PandoraNext】通过手机端和电脑端使小白能快速部署属于自己的免费Open API中转站。tokensTool支持通过PandoraNext管理刷新所有token,支持分享,支持share_token,pool_token一键自定义放入oneapi。tokensTool全面支持PandoraNext部署方法且支持热部署,自定义后缀,登录黑名单IP和登录日志,保护隐私安全,已打包好docker镜像,且有详细部署和使用文档,小白也能免费部署,一键启动!
FoloUp/FoloUp10,870
语言:
TypeScript
星标数:
1,275
分叉数:
303
简介:
💼 Your own AI-powered voice interviewer for hiring.
关键参数与规格
关键参数与规格
参数值
语言Python
类别Applications
子类别Specialists
星标数1,293
分叉数150
贡献者5
创建日期2019-03-06
更新日期2026-10-14
1 天星标数0
7 天星标数0
排名10,804
上次排名5,807
排名变化-4,997
7 天星标排名12,772
上次 7 天星标排名12,792
7 天星标排名变化20
总星标排名9,128
上次总星标排名9,112
总星标排名变化-16
国家USA
README 摘录

Eyeballer Give those screenshots of yours a quick eyeballing. Eyeballer is meant for large-scope network penetration tests where you need to find "interesting" targets from a huge set of web-based hosts. Go ahead and use your favorite screenshotting tool like normal (EyeWitness or GoWitness) and then run them through Eyeballer to tell you what's likely to contain vulnerabilities, and what isn't. Old websites aren't just ugly, they're also typically super vulnerable. When you're looking to hack into something

, these websites are a gold mine. **Login Pages** Login pages are valuable to pen testing, they indicate that there's additional functionality you don't currently have access to. It also means there's a simple follow-up process of credential enumeration attacks. You might think that you can set a simple heuristic to find login pages, but in practice it's really hard. Modern sites don't just use a simple input tag we can grep for. **Webapp** This tells you that there is

a larger group of pages and functionality available here that can serve as surface area to attack. This is in contrast to a simple login page, with no other functionality. Or a default IIS landing page which has no other functionality. This label should indicate to you that there is a web application here to attack. **Custom 404** Modern sites love to have cutesy custom 404 pages with pictures of broken robots or sad looking dogs. Unfortunately, they also love

to return HTTP 200 response codes while they do it. More often, the "404" page doesn't even contain the text "404" in it. These pages are typically uninteresting, despite having a lot going on visually, and Eyeballer can help you sift them out. **Parked Domains** Parked domains are websites that look real, but aren't valid attack surface. They're stand-in pages, usually devoid of any real functionality, consist almost entirely of ads, and are usually not run by our actual

target. It's what you get when the domain specified is wrong or lapsed. Finding these pages and removing them from scope is really valuable over time. Setup Install uv if you haven't already: Then install eyeballer and its dependencies: Or if you want GPU support: **NOTE**: Setting up a GPU for use with TensorFlow is way beyond the scope of this README. There's hardware compatibility to consider, drivers to install. So you're just going to have to figure this part

out on your own if you want a GPU. But at least from a Python package perspective, the above command has you covered. **Pretrained Weights** For the latest pretrained weights, check out the releases here on GitHub. **Training Data** You can find our training data here: There's two things you need from the training data: 1. folder, containing all the screenshots (resized down to 224x224) 2. that has all the labels Copy both into the root of the Eyeballer code

tree. Additionally, you can find a pretrained weights file you can use right out of the box without training. It's

常见问题

记录了多少星标和分叉?

BishopFox/eyeballer 有 1,293 个星标和 150 个分叉。

仓库排名是多少?

BishopFox/eyeballer 排名第 10,804。

记录的语言和类别是什么?

BishopFox/eyeballer 有 1,293 个星标,语言为 Python,类别为 Applications。

哪个仓库排名最接近?

BishopFox/eyeballer 与 codefuse-ai/codefuse-chatbot 比较,后者排名第 10,801,有 1,294 个星标。

README

Eyeballer

Give those screenshots of yours a quick eyeballing.

Eyeballer is meant for large-scope network penetration tests where you need to find "interesting" targets from a huge set of web-based hosts. Go ahead and use your favorite screenshotting tool like normal (EyeWitness or GoWitness) and then run them through Eyeballer to tell you what's likely to contain vulnerabilities, and what isn't.

Give it a try live at: https://eyeballer.bishopfox.com

Example Labels

Old-Looking Sites Login Pages
Webapp Custom 404's
Parked Domains

What the Labels Mean

Old-Looking Sites Blocky frames, broken CSS, that certain "je ne sais quoi" of a website that looks like it was designed in the early 2000's. You know it when you see it. Old websites aren't just ugly, they're also typically super vulnerable. When you're looking to hack into something, these websites are a gold mine.

Login Pages Login pages are valuable to pen testing, they indicate that there's additional functionality you don't currently have access to. It also means there's a simple follow-up process of credential enumeration attacks. You might think that you can set a simple heuristic to find login pages, but in practice it's really hard. Modern sites don't just use a simple input tag we can grep for.

Webapp This tells you that there is a larger group of pages and functionality available here that can serve as surface area to attack. This is in contrast to a simple login page, with no other functionality. Or a default IIS landing page which has no other functionality. This label should indicate to you that there is a web application here to attack.

Custom 404 Modern sites love to have cutesy custom 404 pages with pictures of broken robots or sad looking dogs. Unfortunately, they also love to return HTTP 200 response codes while they do it. More often, the "404" page doesn't even contain the text "404" in it. These pages are typically uninteresting, despite having a lot going on visually, and Eyeballer can help you sift them out.

Parked Domains Parked domains are websites that look real, but aren't valid attack surface. They're stand-in pages, usually devoid of any real functionality, consist almost entirely of ads, and are usually not run by our actual target. It's what you get when the domain specified is wrong or lapsed. Finding these pages and removing them from scope is really valuable over time.

Setup

Install uv if you haven't already:

curl -LsSf https://astral.sh/uv/install.sh | sh

Then install eyeballer and its dependencies:

uv sync

Or if you want GPU support:

uv sync --extra gpu

NOTE: Setting up a GPU for use with TensorFlow is way beyond the scope of this README. There's hardware compatibility to consider, drivers to install... There's a lot. So you're just going to have to figure this part out on your own if you want a GPU. But at least from a Python package perspective, the above command has you covered.

Pretrained Weights

For the latest pretrained weights, check out the releases here on GitHub.

Training Data You can find our training data here:

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

There's two things you need from the training data:

  1. images/ folder, containing all the screenshots (resized down to 224x224)
  2. labels.csv that has all the labels

Copy both into the root of the Eyeballer code tree.

Additionally, you can find a pretrained weights file you can use right out of the box without training.

  1. bishop-fox-pretrained-vN.h5

It's here on GitHub, look at the releases section for the latest one.

Predicting Labels

NOTE: For best results, make sure you screenshot your websites in a native 1.6x aspect ratio. IE: 1440x900. Eyeballer will scale the image down automatically to the right size for you, but if it's the wrong aspect ratio then it will squish in a way that will affect prediction performance.

To eyeball some screenshots, just run the "predict" mode:

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

Or for a whole directory of files:

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

Eyeballer will spit the results back to you in human readable format (a results.html file so you can browse it easily) and machine readable format (a results.csv file).

Performance

Eyeballer's performance is measured against an evaluation dataset, which is 20% of the overall screenshots chosen at random. Since these screenshots are never used in training, they can be an effective way to see how well the model is performing. Here are the latest results:

Overall Binary Accuracy 93.52%
All-or-Nothing Accuracy 76.09%

Overall Binary Accuracy is probably what you think of as the model's "accuracy". It's the chance, given any single label, that it is correct.

All-or-Nothing Accuracy is more strict. For this, we consider all of an image's labels and consider it a failure if ANY label is wrong. This accuracy rating is the chance that the model correctly predicts all labels for any given image.

Label Precision Recall
Custom 404 80.20% 91.01%
Login Page 86.41% 88.47%
Webapp 95.32% 96.83%
Old Looking 91.70% 62.20%
Parked Domain 70.99% 66.43%

For a detailed explanation on Precision vs Recall, check out Wikipedia.

Training

To train a new model, run:

uv run eyeballer.py train

You'll want a machine with a good GPU for this to run in a reasonable amount of time. Setting that up is outside the scope of this readme, however.

This will output a new model file (weights.h5 by default).

Evaluation

You just trained a new model, cool! Let's see how well it performs against some images it's never seen before, across a variety of metrics:

uv run eyeballer.py --weights YOUR_WEIGHTS.h5 evaluate

The output will describe the model's accuracy in both recall and precision for each of the program's labels. (Including "none of the above" as a pseudo-label)

排名相邻
同类项目