
Túnel de Web Hook de Git para C2
Túnel de Web Hooks de Git para 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
o
pip install -r doc/requirements.txt
Inicia sesión como cuenta de servicio de GH.
Genera un token de aplicación según: https://github.com/settings/tokens/new
actualiza git_app_token: '86c0ec38b90909c4fbb1cf7f4e20c8f7f451' en config/client.yml y config/server.yml
configura tus IDs de agente en el servidor y el cliente Ej. agentid: 'b932e9f5'
genera keys/server.pem
El primer cliente o servidor crea el repositorio git_repo_name: 'rendezvous'
Configura los webhooks iniciales: https://github.com/your-id/rendezvous/settings/hooks/new
Establece Payload URL: https://IP-or-HOST:PORT/route/ donde IP es la IP de tu servicio web OC, PORT el puerto en el que escucha, y /route/ es la ruta del hook
especificada en la directiva hook_route: '/server/' del archivo de configuración.
Establece: Content-type: application/json
" De manera predeterminada, verificamos los certificados SSL al entregar los payloads. " Deshabilítalo para demo, habilítalo en producción (letsencrypt).
puedes optar por recibir todos los eventos o simplemente elegir 'Choose Let me select individual events.'
OC necesita como mínimo: "Issue comment", "Issues".
Asegúrate de iniciar tu servidor octohook en la Payload URL anterior al crear el Webhook. Si se configura como "Active", "We will deliver event details when this hook is triggered.", se enviará una solicitud de registro ping al servidor OC.
Una vez que veas la "marca de verificación verde" en los webhooks, estás registrado. Si no es así, verifica tus parámetros y "redeliver" (reenvía) el ping.
Repite la configuración para otros webhooks si es necesario (RTM bidireccional y swarm (futuro)).
python octohook.py ./config/server.yml
python octohook.py ./config/client.yml