
Инструмент для перечисления и атак на self-hosted раннеры GitHub
Gato, или GitHub Attack Toolkit, — это инструмент перечисления и атак, который позволяет как специалистам по защите (blue team), так и специалистам по наступательной безопасности оценить масштаб последствий компрометации персонального токена доступа внутри организации GitHub.
Инструмент также позволяет искать и детально перечислять публичные репозитории, использующие self-hosted runners. GitHub рекомендует использовать self-hosted runners только для приватных репозиториев, однако существуют тысячи организаций, которые используют self-hosted runners.
Gato поддерживает OS X и Linux с как минимум Python 3.7.
Чтобы установить инструмент, просто клонируйте репозиторий и используйте pip install. Мы
рекомендуем выполнять это внутри виртуального окружения.
git clone https://github.com/praetorian-inc/gato
cd gato
python3 -m venv venv
source venv/bin/activate
pip install .
Gato также требует, чтобы git версии 2.27 или выше был установлен и находился в
PATH системы. Для запуска модуля атаки через fork PR также требуется sed,
установленный и присутствующий в PATH системы.
После установки инструмент можно запустить, выполнив gato или
praetorian-gato.
Мы рекомендуем просмотреть параметры базового инструмента с помощью gato -h, а
параметры каждого из модулей инструмента — выполнив следующее:
gato search -hgato enum -hgato attack -hДля работы инструменту требуется GitHub classic PAT. Чтобы создать его, войдите
в GitHub и перейдите в GitHub Developer
Settings
и выберите Generate New Token, а затем Generate new token (classic).
После создания этого токена задайте переменную окружения GH_TOKEN в вашей
оболочке, выполнив export GH_TOKEN=<YOUR_CREATED_TOKEN>. Либо сохраните
токен в надёжном менеджере паролей и введите его, когда приложение
запросит его.
Для устранения неполадок и получения дополнительных сведений, таких как установка в режиме разработчика или запуск модульных тестов, см. wiki.
Если вы считаете, что обнаружили баг в программном обеспечении, пожалуйста, откройте issue, содержащий вывод инструмента, а также действия, которые вы пытались выполнить.
Если вы не уверены, является ли поведение багом, используйте вместо этого раздел discussions!
Вклад приветствуется! Пожалуйста, ознакомьтесь с нашей методологией проектирования и стандартами кодирования, прежде чем работать над новой функцией!
Кроме того, если вы предлагаете значительные изменения в инструменте, пожалуйста, откройте issue, чтобы начать обсуждение мотивации этих изменений.
Gato лицензирован под 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.