
Ferramenta de Enumeração e Ataque a Runners Auto-Hospedados do GitHub
Gato, ou GitHub Attack Toolkit, é uma ferramenta de enumeração e ataque que permite tanto a blue teamers quanto a profissionais de segurança ofensiva avaliar o raio de impacto de um token de acesso pessoal comprometido dentro de uma organização do GitHub.
A ferramenta também permite buscar e enumerar minuciosamente repositórios públicos que utilizam self-hosted runners. O GitHub recomenda que self-hosted runners sejam utilizados apenas para repositórios privados, no entanto, existem milhares de organizações que utilizam self-hosted runners.
O Gato suporta OS X e Linux com pelo menos Python 3.7.
Para instalar a ferramenta, basta clonar o repositório e usar pip install. Recomendamos realizar isso dentro de um ambiente virtual.
git clone https://github.com/praetorian-inc/gato
cd gato
python3 -m venv venv
source venv/bin/activate
pip install .
O Gato também requer que a versão 2.27 ou superior do git esteja instalada e no PATH do sistema. Para executar o módulo de ataque fork PR, o sed também deve estar instalado e presente no path do sistema.
Após instalar a ferramenta, ela pode ser iniciada executando gato ou
praetorian-gato.
Recomendamos visualizar os parâmetros da ferramenta base usando gato -h, e os parâmetros de cada um dos módulos da ferramenta executando o seguinte:
gato search -hgato enum -hgato attack -hA ferramenta requer um PAT clássico do GitHub para funcionar. Para criar um, faça login no GitHub e vá para GitHub Developer
Settings
e selecione Generate New Token e depois Generate new token (classic).
Após criar este token, defina a variável de ambiente GH_TOKEN no seu shell executando export GH_TOKEN=<YOUR_CREATED_TOKEN>. Alternativamente, armazene o token em um gerenciador de senhas seguro e insira-o quando a aplicação solicitar.
Para solução de problemas e detalhes adicionais, como instalação em modo de desenvolvedor ou execução de testes unitários, consulte a wiki.
Consulte a wiki. para documentação detalhada, bem como considerações de OpSec para os diversos módulos da ferramenta!
Se você acredita ter identificado um bug no software, por favor abra uma issue contendo a saída da ferramenta, juntamente com as ações que você estava tentando realizar.
Se você não tem certeza se o comportamento é um bug, use a seção de discussões!
Contribuições são bem-vindas! Por favor, revise nossa metodologia de design e padrões de codificação antes de trabalhar em um novo recurso!
Além disso, se você estiver propondo mudanças significativas na ferramenta, por favor abra uma issue abra uma issue para iniciar uma conversa sobre a motivação das mudanças.
Gato é licenciado sob a 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.