Eyeballer - Convolutional Neural Network For Analyzing Pentest Screenshots

Give those screenshots of yours a quick eyeballing.
Eyeballer is meant for large-scope network penetration tests where you lot bespeak to abide by "interesting" targets from a huge prepare of web-based hosts. Go ahead as well as role your favorite screenshotting tool similar normal (EyeWitness or GoWitness) as well as and hence run them through Eyeballer to say you lot what's probable to incorporate vulnerabilities, as well as what isn't.

Example Labels

Old-Looking Sites

Login Pages

Homepages


Custom 404's


Eyeballer uses TF.keras on Tensorflow 2.0. This is (as of this moment) soundless inward "beta". So the pip requirement for it looks a flake weird. It'll also in all likelihood conflict amongst an existing TensorFlow installation if you've got the regular 1.0 version installed. So, heads-up there. But 2.0 should hold upwards out of beta as well as official "soon" according to Google, hence this employment ought to solve itself inward brusque order.
Setup

Download required packages on pip:
sudo pip3 install -r requirements.txt
Or if you lot desire GPU support:
sudo pip3 install -r requirements-gpu.txt
NOTE: Setting upwards a GPU for role amongst TensorFlow is agency beyond the orbit of this README. There's hardware compatibility to consider, drivers to install... There's a lot. So you're only going to accept to figure this business office out on your ain if you lot desire a GPU. But at to the lowest degree from a Python packet perspective, the inward a higher identify requirements file has you lot covered.
Training Data You tin abide by our preparation information here:
https://www.dropbox.com/sh/7aouywaid7xptpq/AAD_-I4hAHrDeiosDAQksnBma?dl=1
Pretty soon, we're going to add together this equally a TensorFlow DataSet, hence you lot don't bespeak to download this separately similar this. It'll also permit us version the information a flake better. But for now, only bargain amongst it. There's ii things you lot bespeak from the preparation data:
  1. images/ folder, containing all the screenshots (resized downwardly to 224x140. We'll accept the full-size images upwards soon)
  2. labels.csv that has all the labels
  3. bishop-fox-pretrained-v1.h5 Influenza A virus subtype H5N1 pretrained weights file you lot tin role correct out of the box without training.
Copy all iii into the root of the Eyeballer code tree.

Predicting Labels
To eyeball roughly screenshots, only run the "predict" mode:
eyeballer.py --weights YOUR_WEIGHTS.h5 predict YOUR_FILE.png
Or for a whole directory of files:
eyeballer.py --weights YOUR_WEIGHTS.h5 predict PATH_TO/YOUR_FILES/
Eyeballer volition spit the results dorsum to you lot inward human readable format (a results.html file hence you lot tin browse it easily) as well as auto readable format (a results.csv file).

Training
To educate a novel model, run:
eyeballer.py train
You'll desire a auto amongst a skillful GPU for this to run inward a reasonable amount of time. Setting that upwards is exterior the orbit of this readme, however.
This volition output a novel model file (weights.h5 yesteryear default).

Evaluation
You only trained a novel model, cool! Let's run across how good it performs against roughly images it's never seen before, across a multifariousness of metrics:
eyeballer.py --weights YOUR_WEIGHTS.h5 evaluate
The output volition depict the model's accuracy inward both yell back as well as precision for each of the program's labels. (Including "none of the above" equally a pseudo-label)