OSINT en repositorios de código
GitHub, GitLab y similares son una de las fuentes de recon más rentables que existen: los desarrolladores de una empresa (y sus empleados a título personal) suben código que, por error, contiene credenciales, claves de API, tokens, rutas internas, nombres de infraestructura y lógica sensible. Y recuerda: Git conserva el historial, así que un secreto “borrado” sigue ahí. Buscar bien en repos encuentra accesos que ningún escaneo revelaría.
Qué buscar
Sección titulada «Qué buscar»- Secretos: API keys (AWS, GCP, Stripe…), contraseñas, tokens, claves privadas SSH/PGP.
- Infraestructura: URLs internas, hostnames, IPs, endpoints de API no públicos.
- Lógica: cómo funciona la autenticación, algoritmos propios, validaciones (para romperlas).
- Repos de empleados: dotfiles, proyectos personales con credenciales del trabajo.
GitHub code search (dorking de código)
Sección titulada «GitHub code search (dorking de código)»# por organizaciónorg:target-inc passwordorg:target-inc "api_key"# por dominio/hostname en el código"target.com" password"internal.target.local"# por tipo de secreto"AKIA" (AWS access key id) "-----BEGIN RSA PRIVATE KEY-----"filename:.env DB_PASSWORDfilename:config.php password# combinando lenguaje/rutaextension:yml password path:/.github/workflows secretTambién en el historial y en gists (fragmentos públicos que la gente olvida).
Herramientas automatizadas
Sección titulada «Herramientas automatizadas»# escanear repos/historial en busca de secretostrufflehog github --org=target-inc # alto recall, verifica claves vivasgitleaks detect --source .# GitHub dorking automatizadogithub-search / gitrob / gitdorker# por commits y organizacionestrufflehog git https://github.com/target-inc/repoTruffleHog además verifica si la clave encontrada sigue activa, reduciendo falsos positivos.
Metodología
Sección titulada «Metodología»1. Identifica la org en GitHub/GitLab y sus repos públicos2. Enumera empleados (ver recon-personas) y sus cuentas personales3. Escanea repos + historial + gists con trufflehog/gitleaks4. Busca manualmente dorks específicos (dominio, "password", filename:.env)5. Verifica cada secreto (¿sigue vivo? ¿a qué da acceso?)6. Si hay .git/ expuesto en la web, reconstruye el código (ver fund-git)Más allá de GitHub
Sección titulada «Más allá de GitHub»GitLab, Bitbucket mismos problemasPostman public workspaces colecciones con tokens/endpointsDocker Hub imágenes con secretos en capas/ENVnpm / PyPI paquetes internos publicados por error (dependency confusion)Pastebin / similares volcados de credencialesPara la defensa
Sección titulada «Para la defensa»Prevención: secret scanning en el pipeline (GitHub Advanced Security, gitleaks en pre-commit), .gitignore para .env/claves, rotar inmediatamente cualquier secreto que llegó a un repo (borrarlo del historial no basta: hay que rotarlo), formar a los empleados sobre repos personales, y monitorizar menciones de la org con las mismas herramientas.
Checklist de prueba
Sección titulada «Checklist de prueba»- Repos públicos de la org identificados
- Dorks de código (org:, “password”, filename:.env, “AKIA”)
- Historial y gists revisados (secretos “borrados”)
- trufflehog/gitleaks sobre repos y commits
- Cuentas personales de empleados escaneadas
- Secretos verificados (¿vivos? ¿qué abren?)
- Postman/Docker Hub/npm revisados
-
.git/expuesto en la web reconstruido