Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
gato — Herramienta de enumeración y ataque de pipelines de GitHub Actions | Kitploit
Herramientas/GitHubGitHub/praetorian-inc/gato
ReconocimientoEscáneres de VulnerabilidadesExplotaciónRecopilación de InformaciónPost-ExplotaciónPruebas de PenetraciónDevSecOpsDetección de SecretosSeguridad de Cadena de SuministroRed TeamingArchived
GitHub
919hace 4 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
praetorian-inc/gato

gato

Herramienta de enumeración y ataque de pipelines de GitHub Actions

Ver Repositorio
Compartir

[!WARNING]

Este repositorio está obsoleto y archivado

Gato ha sido sustituido por Trajan, la herramienta multiplataforma de detección de vulnerabilidades y automatización de ataques en CI/CD de Praetorian. Trajan consolida las capacidades de ataque CI/CD de GitHub Actions (Gato) y GitLab (Glato) en un único proyecto mantenido activamente.

Por favor, migre a Trajan: https://github.com/praetorian-inc/trajan

No se realizarán más actualizaciones, correcciones de errores ni parches de seguridad en este repositorio.


Supported Python versions

Gato (Github Attack TOolkit)

gato

Gato, o GitHub Attack Toolkit, es una herramienta de enumeración y ataque que permite tanto a los equipos azules como a los profesionales de seguridad ofensiva identificar y explotar vulnerabilidades en los pipelines dentro de los repositorios públicos y privados de una organización de GitHub.

La herramienta cuenta con funciones de post-explotación para aprovechar un token de acceso personal comprometido, además de funciones de enumeración para identificar vulnerabilidades de ejecución de pipelines envenenados y secretos en artefactos de acciones contra repositorios públicos.

GitHub recomienda que los runners autoalojados solo se utilicen para repositorios privados; sin embargo, hay miles de organizaciones que utilizan runners autoalojados. Las configuraciones predeterminadas son a menudo vulnerables, y Gato utiliza una combinación de análisis de archivos de flujo de trabajo (workflow) y análisis de registros de ejecución para identificar repositorios potencialmente vulnerables a escala.

Versión 1.7

Gato versión 1.7 introduce el Escáner de Secretos en Artefactos de Acciones (Actions Artifacts Secrets Scanner).

El Escáner de Secretos en Artefactos de Acciones enumera artefactos de flujos de trabajo de GitHub Actions en busca de secretos. Los investigadores de Praetorian han utilizado el escáner para identificar vulnerabilidades críticas en varios proyectos destacados de código abierto. Los detalles de estas vulnerabilidades se publicarán una vez que se completen los procesos de divulgación. Este trabajo se inspiró inicialmente en la investigación de Palo Alto Networks.

El Escáner de Secretos en Artefactos de Acciones realiza las siguientes acciones:

  1. Descarga los artefactos de los flujos de trabajo de GitHub Actions del repositorio objetivo
  2. Extrae recursivamente los artefactos descargados
  3. Escanea los artefactos en busca de secretos con NoseyParker
  4. Reporta los resultados

NoseyParker debe estar instalado en el $PATH del sistema que ejecuta el Escáner de Secretos en Artefactos de Acciones.

Los secretos en artefactos públicos de flujos de trabajo pueden contener muchos falsos positivos. De forma predeterminada, el Escáner de Secretos en Artefactos de Acciones excluye reglas y resultados asociados con falsos positivos comunes. Para incluir todos los resultados del escaneo de secretos, puede usar la bandera --include_all_artifact_secrets.

Aquí hay un comando de ejemplo que ejecuta el Escáner de Secretos en Artefactos de Acciones en una lista de organizaciones de GitHub, deshabilita la enumeración de runners autoalojados, incluye todos los resultados de secretos de artefactos y genera un archivo JSON.

root@kitploit:~
gato e --enum_wf_artifacts --include_all_artifact_secrets --skip_sh_runner_enum -O testorgs.txt  -oJ testorgoutput.json

De forma predeterminada, el Escáner de Secretos en Artefactos de Acciones impone las siguientes limitaciones para reducir el tiempo dedicado a un solo repositorio:

  • Solo descarga un artefacto por nombre
  • Descarga un máximo de 50 artefactos por repositorio
  • Descarga un máximo de 10 archivos mayores de 536 MB
  • No descarga archivos mayores de 2.68 GB

Estas restricciones se optimizaron para que el Escáner de Secretos en Artefactos de Acciones pueda escanear las 200 organizaciones principales de GitHub en 48 horas. Si desea modificar estas restricciones, puede actualizarlas en la función scan_wf_artifacts() de gato/enumerate/repository.py.

Nuevas características

  • Se añadió el Escáner de Secretos en Artefactos de Acciones
  • Soporte para ejecutar módulos en una lista de organizaciones de GitHub
  • Capacidad para deshabilitar la enumeración de runners autoalojados
  • Opción para deshabilitar la pausa (sleep)
  • Diferencia entre repos públicos y privados en la salida
  • Varias correcciones de errores
  • Soporte de enumeración para tokens de instalación de GitHub App

¿Para quién es?

  • Ingenieros de seguridad que desean entender el nivel de acceso que un PAT clásico comprometido podría proporcionar a un atacante
  • Equipos azules que quieran construir detecciones para ataques de runners autoalojados
  • Equipos rojos
  • Cazadores de recompensas por bugs que quieran intentar demostrar RCE en organizaciones que utilizan runners autoalojados

Características

  • Enumeración de privilegios de PAT clásico de GitHub
  • Enumeración basada en la API de búsqueda de código de GitHub
  • Enumeración de búsqueda en SourceGraph
  • Análisis de registros de ejecución de acciones de GitHub para identificar runners autoalojados
  • Funciones de clonado disperso (sparse clone) masivo de repositorios
  • Análisis de flujos de trabajo de acciones de GitHub
  • Creación automatizada de PRs de bifurcación (fork) con ejecución de comandos
  • Creación automatizada de flujos de trabajo con ejecución de comandos
  • Exfiltración automatizada de secretos de flujos de trabajo
  • Soporte de proxy SOCKS5
  • Soporte de proxy HTTPS
  • Escaneo de secretos en artefactos de flujos de trabajo de GitHub Actions

Primeros pasos

Instalación

Gato es compatible con OS X y Linux con al menos Python 3.7.

Para instalar la herramienta, simplemente clone el repositorio y use pip install. Recomendamos hacerlo dentro de un entorno virtual.

root@kitploit:~
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 bifurcación, sed también debe estar instalado y presente en el PATH del sistema.

Rama de desarrollo

Mantenemos una rama de desarrollo que contiene características más nuevas de Gato que aún no se han agregado a la rama principal. Existe una mayor probabilidad de encontrar errores; sin embargo, aún ejecutamos nuestra suite de pruebas de integración en la rama dev, por lo que no debería haber errores evidentes.

Si desea usar la rama dev, simplemente pase a ella antes de ejecutar pip install, ¡eso es todo!

Si encuentra algún error para su caso de uso específico, no dude en abrir un issue.

Uso

Después de instalar la herramienta, se puede iniciar 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 -h
  • gato enum -h
  • gato attack -h

La herramienta requiere un token de GitHub clásico o de instalación de aplicación para funcionar. Para crear uno, inicie sesión en GitHub y vaya a GitHub Developer Settings y seleccione Generate New Token y luego Generate new token (classic).

Después de crear este token, configure la variable de entorno GH_TOKEN en su shell ejecutando export GH_TOKEN=<SU_TOKEN_CREADO>. Alternativamente, guarde el token en un gestor de contraseñas seguro e introdúzcalo cuando la aplicación se lo solicite.

Si crea un token de instalación de GitHub App, la aplicación debe tener al menos Actions:read y Contents:read para ejecutar los módulos de enumeración.

Para la resolución de problemas y detalles adicionales, como la instalación en modo desarrollador o la ejecución de pruebas unitarias, consulte la wiki.

Documentación

Consulte la wiki para obtener documentación detallada, así como las consideraciones de OpSec para los distintos módulos de la herramienta.

Errores

Si cree que ha identificado un error en el software, abra un issue que contenga la salida de la herramienta, junto con las acciones que estaba intentando realizar.

Si no está seguro de si el comportamiento es un error, utilice la sección de discusiones.

Contribuciones

¡Las contribuciones son bienvenidas! Revise nuestra metodología de diseño y estándares de codificación antes de trabajar en una nueva característica.

Además, si propone cambios significativos en la herramienta, abra un issue para iniciar una conversación sobre la motivación de los cambios.

Licencia

Gato está licenciado bajo la Apache License, Version 2.0.

root@kitploit:~
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.
Descargar herramienta