Este contenido es solo con fines educativos y de concienciación sobre seguridad. Desde OSINT no fomentamos ni apoyamos el uso indebido de estas técnicas.
El archivo y directorio .git es fundamental para el control de versiones de proyectos en Git. Sin embargo, cuando se expone en servidores web de manera inadvertida, representa una grave amenaza de seguridad. Un atacante podría acceder al código fuente del proyecto, revisar el historial de cambios, obtener credenciales almacenadas por error y potencialmente comprometer sistemas completos.
En este artículo, explicaremos los riesgos de dejar expuesto un .git, cómo los atacantes pueden explotar esta vulnerabilidad y qué medidas se pueden tomar para protegerse.
¿Qué sucede si el directorio .git está expuesto?
El directorio .git contiene información crítica sobre un repositorio, incluyendo:
- El código fuente completo: si se puede descargar, un atacante podría revisar y analizar todo el código del proyecto.
- Historial de cambios: accediendo al log de Git, se pueden encontrar archivos eliminados o credenciales que hayan sido eliminadas en commits posteriores pero que siguen accesibles en el historial.
- Configuraciones del proyecto: el archivo
.git/configpuede exponer configuraciones sensibles, como URLs de repositorios remotos o credenciales embebidas. - Hashes de commits: permiten reconstruir el repositorio y explorar su contenido incluso sin acceso directo a los archivos fuente.
Cómo un atacante puede explotar un .git expuesto
Si un directorio .git está accesible en un servidor, un atacante puede explotarlo de varias formas:
-
Descargar todo el repositorio
Si el directorio.gitestá expuesto, es posible descargarlo por completo y reconstruir el código fuente del proyecto. -
Explorar archivos dentro de .git
Accediendo directamente a ciertas rutas, un atacante puede extraer información del repositorio:/sitio/.git/config: Para ver configuraciones del repositorio./sitio/.git/HEAD: Para conocer la rama actual./sitio/.git/logs/HEAD: Para ver los commits recientes y posibles archivos sensibles.
-
Extraer credenciales o secretos
Muchas veces, desarrolladores han subido accidentalmente contraseñas, claves API o credenciales de bases de datos. Aunque después las eliminen, siguen existiendo en el historial de Git. -
Revisión de código para identificar vulnerabilidades
Un atacante podría analizar el código en busca de vulnerabilidades como inyecciones SQL, XSS o configuraciones incorrectas.
Ejemplo de cómo vulnerar un .git expuesto
Si encontramos un sitio con un .git expuesto, podríamos intentar descargar su contenido y reconstruir el repositorio:
Acceder al directorio .git en el navegador:
https://victima.com/.git/
Si el contenido es visible, se pueden descargar archivos manualmente o automatizar el proceso con herramientas como wget:
wget -r --no-parent https://victima.com/.git/
Si no es visible directamente, se pueden enumerar archivos clave:
curl -s https://victima.com/.git/config
Si esto devuelve información válida, el .git está expuesto y es posible descargarlo. Luego, podemos reconstruir el repositorio:
git clone https://victima.com/.git/ repo_vulnerado
Esto permitiría acceder al código fuente, credenciales y otros datos críticos.
Google Dorks para encontrar .git expuestos
Los siguientes Google Dorks pueden ayudar a encontrar sitios con .git expuestos:
intitle:"index of" ".git"inurl:".git" intitle:"Index of"
Estos Dorks buscan servidores web donde el directorio .git sea accesible públicamente.
Cómo proteger un .git de ataques
Para evitar que un .git quede expuesto y sea explotado, se pueden tomar las siguientes medidas:
-
Configurar el servidor web para bloquear el acceso al directorio
En Apache, agregar la siguiente regla en.htaccess:RedirectMatch 404 /\.gitEn Nginx, se puede usar:
location ~ /.git { deny all; } -
Eliminar el directorio .git en producción
En servidores públicos, no debería haber un.git. Se recomienda usarrsyncoscppara desplegar el código sin el historial de Git. -
Usar herramientas de seguridad
Se pueden emplear herramientas comogit-secretspara evitar subir credenciales en commits ytruffleHogpara detectar secretos en repositorios. -
Verificar si nuestro sitio es vulnerable
Podemos comprobar si nuestro.gitestá accesible intentando acceder ahttps://tusitio.com/.git/config. Si carga contenido, el directorio está expuesto.
Un .git expuesto es una grave vulnerabilidad que permite a atacantes acceder al código fuente, credenciales y configuraciones sensibles. A través de Google Dorks y herramientas automatizadas, los atacantes pueden buscar y explotar esta falla. Para protegerse, es crucial bloquear el acceso al directorio, eliminarlo en producción y utilizar buenas prácticas de seguridad en el manejo de secretos dentro de Git.
#Ciberseguridad ? #Hacking ? #SeguridadInformática ?️ #Git ? #Exploiting ⚠️ #Pentesting ? #GoogleDorks ? #Hackers ?️♂️ #DevSecOps ?️ #EthicalHacking ?? #BugBounty ? #CyberThreats ? #Infosec ?

























