
GitHub Self-Hosted Runner Enumeration und Angriffstool
Gato, oder GitHub Attack Toolkit, ist ein Enumeration- und Angriffswerkzeug, das sowohl Blue Teamern als auch Offensive-Security-Praktikern ermöglicht, den Blast Radius eines kompromittierten Personal Access Tokens innerhalb einer GitHub-Organisation zu bewerten.
Das Tool ermöglicht außerdem die Suche nach und die gründliche Enumeration von öffentlichen Repositories, die Self-Hosted Runner verwenden. GitHub empfiehlt, dass Self-Hosted Runner nur für private Repositories verwendet werden, jedoch gibt es Tausende von Organisationen, die Self-Hosted Runner einsetzen.
Gato unterstützt OS X und Linux mit mindestens Python 3.7.
Um das Tool zu installieren, klonen Sie einfach das Repository und verwenden Sie pip install. Wir
empfehlen, dies innerhalb einer virtuellen Umgebung durchzuführen.
git clone https://github.com/praetorian-inc/gato
cd gato
python3 -m venv venv
source venv/bin/activate
pip install .
Gato erfordert außerdem, dass git Version 2.27 oder höher installiert und im
PATH des Systems vorhanden ist. Um das Fork-PR-Angriffsmodul auszuführen, muss außerdem sed
installiert und im PATH des Systems vorhanden sein.
Nach der Installation des Tools kann es durch Ausführen von gato oder
praetorian-gato gestartet werden.
Wir empfehlen, die Parameter für das Basistool mit gato -h und die
Parameter für jedes der Module des Tools durch Ausführen der folgenden Befehle anzuzeigen:
gato search -hgato enum -hgato attack -hDas Tool erfordert einen GitHub Classic PAT, um zu funktionieren. Um einen zu erstellen, melden Sie
sich bei GitHub an und gehen Sie zu GitHub Developer
Settings
und wählen Sie Generate New Token und dann Generate new token (classic).
Nachdem Sie diesen Token erstellt haben, setzen Sie die Umgebungsvariable GH_TOKEN in Ihrer
Shell durch Ausführen von export GH_TOKEN=<YOUR_CREATED_TOKEN>. Alternativ speichern
Sie den Token in einem sicheren Passwortmanager und geben Sie ihn ein, wenn die Anwendung
Sie dazu auffordert.
Für Fehlerbehebung und weitere Details, wie die Installation im Entwicklermodus oder das Ausführen von Unit-Tests, lesen Sie bitte das Wiki.
Bitte lesen Sie das Wiki für ausführliche Dokumentation sowie OpSec-Überlegungen für die verschiedenen Module des Tools!
Wenn Sie glauben, einen Bug in der Software identifiziert zu haben, öffnen Sie bitte ein Issue mit der Ausgabe des Tools sowie den Aktionen, die Sie auszuführen versuchten.
Wenn Sie sich nicht sicher sind, ob das Verhalten ein Bug ist, verwenden Sie stattdessen den Diskussionsbereich!
Beiträge sind willkommen! Bitte lesen Sie unsere Design-Methodik und Coding- Standards, bevor Sie an einem neuen Feature arbeiten!
Wenn Sie außerdem bedeutende Änderungen am Tool vorschlagen, öffnen Sie bitte ein Issue öffnen Sie ein Issue, um ein Gespräch über die Motivation für die Änderungen zu beginnen.
Gato ist unter der Apache License, Version 2.0 lizenziert.
Copyright 2023 Praetorian Security, Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.