
Outil d'énumération et d'attaque des runners auto-hébergés GitHub
Gato, ou GitHub Attack Toolkit, est un outil d'énumération et d'attaque qui permet aux équipes défensives comme aux praticiens de la sécurité offensive d'évaluer le rayon d'impact d'un jeton d'accès personnel compromis au sein d'une organisation GitHub.
L'outil permet également de rechercher et d'énumérer en profondeur les dépôts publics qui utilisent des runners auto-hébergés. GitHub recommande que les runners auto-hébergés ne soient utilisés que pour des dépôts privés, cependant, des milliers d'organisations utilisent des runners auto-hébergés.
Gato prend en charge OS X et Linux avec au moins Python 3.7.
Pour installer l'outil, il suffit de cloner le dépôt et d'utiliser pip install. Nous
recommandons d'effectuer cette opération dans un environnement virtuel.
git clone https://github.com/praetorian-inc/gato
cd gato
python3 -m venv venv
source venv/bin/activate
pip install .
Gato nécessite également que la version 2.27 ou supérieure de git soit installée
et présente dans le PATH du système. Pour exécuter le module d'attaque par fork PR,
sed doit également être installé et présent dans le PATH du système.
Après avoir installé l'outil, il peut être lancé en exécutant gato ou
praetorian-gato.
Nous recommandons de consulter les paramètres de l'outil de base avec gato -h, et les
paramètres de chacun des modules de l'outil en exécutant les commandes suivantes :
gato search -hgato enum -hgato attack -hL'outil nécessite un PAT classique GitHub pour fonctionner. Pour en créer un, connectez-vous
à GitHub et rendez-vous dans les GitHub Developer
Settings
et sélectionnez Generate New Token puis Generate new token (classic).
Après avoir créé ce jeton, définissez la variable d'environnement GH_TOKEN dans votre
shell en exécutant export GH_TOKEN=<YOUR_CREATED_TOKEN>. Vous pouvez également stocker
le jeton dans un gestionnaire de mots de passe sécurisé et le saisir lorsque l'application
vous le demande.
Pour le dépannage et des détails supplémentaires, tels que l'installation en mode développeur ou l'exécution des tests unitaires, veuillez consulter le wiki.
Veuillez consulter le wiki pour une documentation détaillée, ainsi que les considérations d'OpSec pour les différents modules de l'outil !
Si vous pensez avoir identifié un bug dans le logiciel, veuillez ouvrir une issue contenant la sortie de l'outil, ainsi que les actions que vous tentiez d'effectuer.
Si vous n'êtes pas sûr que le comportement soit un bug, utilisez plutôt la section discussions !
Les contributions sont les bienvenues ! Veuillez consulter notre méthodologie de conception et nos normes de codage avant de travailler sur une nouvelle fonctionnalité !
De plus, si vous proposez des changements significatifs à l'outil, veuillez ouvrir une issue ouvrir une issue pour entamer une conversation sur la motivation de ces changements.
Gato est distribué sous la Apache License, Version 2.0.
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.