Riesgos de un .git expuesto

AprendizajeNoticiasHerramientasTendencias10 months ago208 Views

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/config puede 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:

  1. Descargar todo el repositorio
    Si el directorio .git está expuesto, es posible descargarlo por completo y reconstruir el código fuente del proyecto.

  2. 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.
  3. 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.

  4. 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:

  1. Configurar el servidor web para bloquear el acceso al directorio
    En Apache, agregar la siguiente regla en .htaccess:

    RedirectMatch 404 /\.git

    En Nginx, se puede usar:

    location ~ /.git { deny all; }

  2. Eliminar el directorio .git en producción
    En servidores públicos, no debería haber un .git. Se recomienda usar rsync o scp para desplegar el código sin el historial de Git.

  3. Usar herramientas de seguridad
    Se pueden emplear herramientas como git-secrets para evitar subir credenciales en commits y truffleHog para detectar secretos en repositorios.

  4. Verificar si nuestro sitio es vulnerable
    Podemos comprobar si nuestro .git está accesible intentando acceder a https://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 ?

Cargando siguiente publicación...
Síguenos
Sidebar Buscar
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...