Guía Completa de Explotación de Repositorios Git Expuestos

La explotación de repositorios Git expuestos es una de mis técnicas favoritas de recolección de información, ya que frecuentemente nos permite acceder a datos confidenciales que no deberían estar disponibles públicamente. Este tipo de vulnerabilidad puede revelar credenciales, tokens de API, información de configuración y hasta código fuente sensible.


¿Qué es un repositorio Git expuesto?

Un repositorio Git expuesto ocurre cuando el directorio .git de un proyecto web es accesible públicamente en el servidor. Esto permite a atacantes descargar todo el historial del proyecto, incluyendo posibles secretos que hayan sido comprometidos en commits anteriores.

Métodos de Detección

1. Herramientas de Enumeración de Directorios

La forma más común de encontrar repositorios Git expuestos es mediante herramientas de enumeración de directorios:

  • Dirb
  • Dirbuster
  • Gobuster
  • wfuzz

Estas herramientas buscan directorios comunes, incluyendo /.git/ en el servidor objetivo.

2. Extensiones de Navegador (Firefox/Chrome)

Para una identificación rápida durante el reconocimiento manual, puedes utilizar extensiones especializadas:

  • GitHub .git Exposure (Firefox)
  • GitMiner (Chrome)
  • GitHub Secret Scanner

3. Comprobación Manual

Simplemente navegar a https://objetivo.com/.git/ o https://objetivo.com/.git/HEAD puede revelar si el repositorio es accesible.

Herramientas de Explotación

git-dumper (Recomendada)

git-dumper es una herramienta especializada que descarga repositorios Git completos incluso cuando solo partes del directorio .git son accesibles.

Instalación:
pip install git-dumper
Repositorio oficial:
https://github.com/arthaud/git-dumper
Otras herramientas útiles:
  • GitTools (https://github.com/internetwache/GitTools)
  • DVCS-Pillage (https://github.com/evilpacket/DVCS-Pillage)
  • GitHack (https://github.com/lijiejie/GitHack)

Proceso de Explotación Paso a Paso

Método 1: Usando git-dumper desde consola

1. Identificar el repositorio expuesto:

curl -I https://ejemplo.com/.git/HEAD

2. Descargar el repositorio completo:

git-dumper https://ejemplo.com/.git/ directorio-salida

Método 2: Usando extensiones de navegador

Análisis del Repositorio Descargado

1. Examinar el historial de commits:

cd directorio-salida
git log --oneline

2. Buscar información sensible:

# Buscar palabras clave comunes
grep -r "password\|secret\|token\|key\|auth\|credential" . --include="*.php" --include="*.py" --include="*.js" --include="*.json" --include="*.env" --include="*.config"

# Buscar en todo el historial
git log -p --all -S "password"

3. Examinar archivos de configuración comunes:

  • .env o env.example
  • config.php, database.php
  • settings.py, config.json
  • docker-compose.yml
  • package.json (dependencias vulnerables)

Qué Buscar Específicamente

Información más comúnmente encontrada:

  1. Credenciales de base de datos
  2. Tokens de API (AWS, Google, GitHub, etc.)
  3. Claves SSH privadas
  4. Contraseñas de administrador
  5. Información de configuración de servidores
  6. Comentarios con información sensible

Prevención y Mitigación

Para desarrolladores/administradores:

1. Configurar correctamente el servidor web:

  • Bloquear acceso a .git/ en Apache/Nginx
  • Eliminar directorios .git en producción

2. Usar .gitignore correctamente:

  • Incluir archivos con credenciales
  • Usar variables de entorno para datos sensibles

3. Implementar hooks de pre-commit:

  • Escanear commits en busca de secretos
  • Usar herramientas como git-secrets

Conclusión

La explotación de repositorios Git expuestos sigue siendo un vector de ataque común debido a configuraciones incorrectas en entornos de producción. La combinación de herramientas automatizadas y análisis manual puede revelar información extremadamente valiosa durante pruebas de penetración.

Artículo Anterior Artículo Siguiente