
Git Web Hook Tunnel for C2
Туннель Git Web Hook для C2
# apt-get update && apt-get upgrade -y
# apt-get install python3-pip git -y
# pip install --upgrade pip
# pip install virtualenv
# virtualenv -p python venv
# . venv/bin/activate
# git clone https://github.com/dsnezhkov/octohook
# pip install prompt_toolkit PyGithub bottle pygments pyaml delegator.py
или
pip install -r doc/requirements.txt
Войдите как служебная учётная запись GH.
Сгенерируйте токен приложения согласно: https://github.com/settings/tokens/new
обновите git_app_token: '86c0ec38b90909c4fbb1cf7f4e20c8f7f451' в config/client.yml и config/server.yml
установите идентификаторы агентов на сервере и клиенте Например, agentid: 'b932e9f5'
сгенерируйте keys/server.pem
Первый клиент или сервер создаёт репозиторий git_repo_name: 'rendezvous'
Настройте начальные вебхуки: https://github.com/your-id/rendezvous/settings/hooks/new
Укажите Payload URL: https://IP-или-ХОСТ:ПОРТ/route/, где IP — это IP вашего веб-сервиса OC, PORT — порт, на котором он слушает, а /route/ — это путь хука, указанный в директиве hook_route: '/server/' в файле конфигурации.
Укажите: Content-type: application/json
"По умолчанию мы проверяем SSL-сертификаты при доставке полезных нагрузок." Отключите для демо, включите в продакшене (letsencrypt)
Вы можете получать все события или просто выберите 'Choose Let me select individual events.'
OC требуется как минимум: "Issue comment", "Issues".
Убедитесь, что вы запустили сервер octohook по указанному выше Payload URL при создании вебхука. Если установлено "Active" "We will deliver event details when this hook is triggered." будет отправлен ping-запрос регистрации на сервер OC.
Как только вы увидите "Green checkmark" в вебхуках, вы зарегистрированы. Если нет — проверьте параметры и "redeliver" пинг.
Повторите настройку для других вебхуков при необходимости (двунаправленный RTM и swarm (в будущем))
python octohook.py ./config/server.yml
python octohook.py ./config/client.yml