
あなたのスクリーンショットに素早い目玉を与えてください。
Eyeballerは、Webベースの膨大なホストセットから「興味深い」ターゲットを見つける必要がある大規模なネットワーク浸透テスト用です。先に進んで、通常の(目撃者やガウィットネス)などのお気に入りのスクリーンショッティングツールを使用してから、視線を介して実行して、脆弱性を含む可能性があり、何が含まれていないかを伝えます。
https://eyeballer.bishopfox.comでライブで試してみてください
| 昔ながらのサイト | ログインページ |
|---|---|
![]() | ![]() |
| WebApp | カスタム404 |
|---|---|
![]() | ![]() |
| 駐車ドメイン |
|---|
![]() |
2000年代初期に設計されたように見えるWebサイトの特定の「je ne sais quoi」という、昔ながらのサイトブロックフレーム、壊れたCSS。あなたがそれを見るときあなたはそれを知っています。古いウェブサイトは醜いだけでなく、通常は非常に脆弱です。あなたが何かにハッキングしたいと思っているとき、これらのウェブサイトは金鉱山です。
ログインページログインページはペンテストに役立ちます。現在、アクセスできない追加の機能があることを示しています。また、資格情報の列挙攻撃の単純なフォローアッププロセスがあることを意味します。ログインページを見つけるために簡単なヒューリスティックを設定できると思うかもしれませんが、実際には本当に難しいです。最新のサイトは、グレップできる簡単な入力タグを使用するだけではありません。
WebAppこれは、ここで利用可能なページと機能のより大きなグループが攻撃する表面積として機能することを示しています。これは、単純なログインページとは対照的であり、他の機能はありません。または、他の機能がないデフォルトのIISランディングページ。このラベルは、ここに攻撃するためのWebアプリケーションがあることをあなたに示すべきです。
カスタム404モダンなサイトは、壊れたロボットや悲しい見た目の犬の写真を備えたキュートなカスタム404ページを持っているのが大好きです。残念ながら、彼らはそれを行う間、HTTP 200の応答コードを返すことも大好きです。多くの場合、「404」ページには、「404」というテキストが含まれていません。これらのページは通常、視覚的に多くのことをしているにもかかわらず、面白くないものであり、眼球者はあなたがそれらをふるいにかけるのを助けることができます。
駐車したドメイン駐車ドメインは、本物のように見えるが、有効な攻撃面ではないウェブサイトです。それらは、通常、実際の機能を欠いている代役ページであり、ほぼ完全に広告で構成されており、通常は実際のターゲットによって実行されません。指定されたドメインが間違っている、または失効した場合に得られるものです。これらのページを見つけて、スコープからそれらを削除することは、時間とともに本当に価値があります。
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
トレーニングデータに必要な2つのことがあります。
images/フォルダー(224x224までサイズ変更)labels.csv両方を眼球上のコードツリーのルートにコピーします。
さらに、トレーニングなしですぐに使用できる前提条件の重みファイルを見つけることができます。
bishop-fox-pretrained-vN.h5 Githubにあります。最新のもののreleasesセクションをご覧ください。
注:最良の結果については、ネイティブ1.6倍のアスペクト比でWebサイトをスクリーンショットしてください。 IE: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% |
| WebApp | 95.32% | 96.83% |
| 古い見た目 | 91.70% | 62.20% |
| 駐車ドメイン | 70.99% | 66.43% |
Precision vs Recallの詳細な説明については、Wikipediaをご覧ください。
新しいモデルをトレーニングするには、実行してください。
eyeballer.py train
これが妥当な時間で実行されるための優れたGPUを備えたマシンが必要です。ただし、このREADMEの範囲外に設定します。
これにより、新しいモデルファイル(デフォルトではweights.h5)が出力されます。
新しいモデルをトレーニングしただけです、クール!さまざまなメトリックで、これまで見たことのない画像に対してどれだけうまく機能するかを見てみましょう。
eyeballer.py --weights YOUR_WEIGHTS.h5 evaluate
出力は、各プログラムのラベルのリコールと精度の両方におけるモデルの精度を説明します。 (擬似ラベルとしての「上記のいずれでもない」を含む)