
Herramienta de enumeración y ataque para GitHub Self-Hosted Runner
Gato, o GitHub Attack Toolkit, es una herramienta de enumeración y ataque que permite tanto a los equipos defensivos como a los profesionales de la seguridad ofensiva evaluar el radio de impacto de un token de acceso personal comprometido dentro de una organización de GitHub.
La herramienta también permite buscar y enumerar exhaustivamente repositorios públicos que utilizan runners autoalojados. GitHub recomienda que los runners autoalojados se utilicen únicamente para repositorios privados; sin embargo, hay miles de organizaciones que utilizan runners autoalojados.
Gato es compatible con OS X y Linux con al menos Python 3.7.
Para instalar la herramienta, simplemente clona el repositorio y usa pip install. Recomendamos hacerlo dentro de un entorno virtual.
git clone https://github.com/praetorian-inc/gato
cd gato
python3 -m venv venv
source venv/bin/activate
pip install .
Gato también requiere que git versión 2.27 o superior esté instalado y en el PATH del sistema. Para ejecutar el módulo de ataque de PR de fork, sed también debe estar instalado y presente en el path del sistema.
Después de instalar la herramienta, se puede lanzar ejecutando gato o
praetorian-gato.
Recomendamos ver los parámetros de la herramienta base usando gato -h, y los parámetros de cada uno de los módulos de la herramienta ejecutando lo siguiente:
gato search -hgato enum -hgato attack -hLa herramienta requiere un PAT clásico de GitHub para funcionar. Para crear uno, inicia sesión en GitHub y ve a GitHub Developer
Settings
y selecciona Generate New Token y luego Generate new token (classic).
Después de crear este token, establece la variable de entorno GH_TOKEN dentro de tu shell ejecutando export GH_TOKEN=<YOUR_CREATED_TOKEN>. Alternativamente, guarda el token dentro de un gestor de contraseñas seguro e ingrésalo cuando la aplicación te lo solicite.
Para solución de problemas y detalles adicionales, como instalar en modo desarrollador o ejecutar pruebas unitarias, consulta la wiki.
Consulta la wiki. para obtener documentación detallada, así como las consideraciones de OpSec para los diversos módulos de la herramienta.
Si crees que has identificado un error dentro del software, abre un issue que contenga la salida de la herramienta, junto con las acciones que intentabas realizar.
Si no estás seguro de si el comportamiento es un error, ¡usa la sección de discusiones en su lugar!
¡Las contribuciones son bienvenidas! Por favor, revisa nuestra metodología de diseño y estándares de codificación antes de trabajar en una nueva funcionalidad.
Además, si propones cambios significativos en la herramienta, por favor abre un issue abre un issue para iniciar una conversación sobre la motivación de los cambios.
Gato está licenciado bajo 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.