Saltar al contenido
Nuevo

DeepSeek V4.1 Flash gratis por 7 días: 10M tokens al día tras una recarga de $10 o más. Hasta el 30/11.

Cómo funciona

Recon de GitHub: hallar secretos filtrados en tu alcance

Busca secretos ligados a un alcance tuyo en GitHub y codigo publico, con github-search, gitleaks y trufflehog, mas la chat de NotHoly.

Intermedio3 min de lecturaPor NotHoly

Los desarrolladores filtran. Una clave fija en un commit, un archivo de config subido sin querer, un hostname interno en un comentario: el codigo publico guarda valor de recon para un alcance tuyo o un programa al que entraste. El trabajo es hallar los repos y usuarios ligados al objetivo y luego escanear con herramientas hechas para secretos. Mantenlo en alcance. Lees codigo publico y nunca entras con nada que halles.

Halla los repos y usuarios

Empieza por la organizacion y el dominio. La busqueda de codigo web de GitHub, con sesion, acepta calificadores que combinas.

text
"example.com" org:example-inc
"api_key" "example.com"
filename:.env "example.com"

github-search automatiza la misma idea con un token, trayendo usuarios, repos y coincidencias de codigo para un termino. Su script github-subdomains halla hostnames citados en cualquier parte del codigo publico, una fuente que las herramientas de DNS pierden.

bash
github-subdomains -d example.com -t $GITHUB_TOKEN -o gh-subs.txt

Ensancha la red a las personas alrededor de la org. Los empleados listan su trabajo en el perfil, asi que una busqueda del nombre de la empresa entre usuarios saca cuentas cuyos repos personales a veces citan herramientas internas. Guarda esas pistas, pero recuerda de quien es el dato y trata una cuenta personal con mas cuidado que una de la empresa.

Escanea clones en busca de secretos

Con los repos en mano, clona los que estan en alcance y escanea local. gitleaks lee todo el historial de git, no solo los archivos actuales, asi que un secreto borrado despues igual aparece.

bash
gitleaks detect --source ./example-repo --report-path leaks.json

trufflehog va mas alla y verifica muchos tipos de secreto probando si la credencial aun funciona, lo que corta falsos positivos con fuerza.

bash
trufflehog git https://github.com/example-inc/example-repo --only-verified

Un acierto verificado es una credencial viva. No la uses. Registrala, con el commit y el archivo, para el informe, y deja que el dueno la rote. Escanear un monorepo grande lleva tiempo, asi que empieza por los repos que tus dorks ya ligaron al objetivo, no por cada fork y espejo.

Escribe buenas consultas con la chat

Dorkear GitHub es un problema de lenguaje: el calificador correcto halla la filtracion, el equivocado la entierra. Pide a la chat de NotHoly que expanda una semilla en un conjunto de consultas.

text
Mis raices de alcance son example.com y example.net, org example-inc.
Escribe 15 consultas de busqueda de codigo en GitHub para hallar secretos
filtrados, hostnames internos y archivos de config ligados a ellas. Varia
los calificadores (org, filename, path, language). Una por linea.

Tu mismo pegas las consultas de vuelta en la busqueda de GitHub, no en una herramienta que las corre por ti. El modelo tambien lee bien un informe de gitleaks: pega el JSON y pidele que agrupe los aciertos por tipo de secreto y los ordene por cuan probable es que cada uno sea real y de alcance.

Alcance y privacidad

El codigo publico suele ser de individuos, no de la empresa objetivo. El repo personal de un empleado es dato de una persona, y su proyecto paralelo viejo no esta en tu alcance. Quedate en repos de la org o claramente ligados a la infraestructura del objetivo. Nunca autentiques con credencial filtrada, nunca empujes un commit y reporta secretos por el canal del programa para que se roten.

Preguntas frecuentes

Leer un secreto hallado es un problema?

Leer codigo publico es una cosa; usar una credencial que hallaste es otra, y puede cruzar una linea de uso indebido de computadora hasta dentro de un programa de bug bounty. Reportalo y no lo pruebes entrando.

Y los commits viejos que fueron borrados?

Git guarda historial. Un secreto borrado en un commit posterior igual queda en el anterior, que es justo por lo que gitleaks y trufflehog barren todo el historial, no el arbol actual.

La busqueda de codigo cierra tus fuentes automaticas. Luego, afila lo manual en dorking de buscadores que funciona. Vuelve a certificate transparency e historial de DNS.

Fuentes

  1. github-search, repository
  2. gitleaks, repository
  3. trufflehog, repository
  4. GitHub, searching code
  5. GitHub, about secret scanning

Más en OSINT y reconocimiento

OSINT y reconocimiento

Flujo de OSINT desde cero, con IA de copiloto

Flujo OSINT repetible para un objetivo que puedes mirar: fija alcance, recolecta por fases, correlaciona y deja que la chat de NotHoly resuma.

Principiante3 min de lectura