
Herramienta rápida de reconocimiento en GitHub. Escanea en busca de secretos filtrados en todo GitHub, no solo en repositorios y organizaciones conocidos. Soporte para GitHub dorks.
GitHound rastrea claves API, secretos y credenciales expuestos en todo GitHub combinando dorks de GitHub con coincidencia de patrones, detección contextual y análisis del historial de commits. Introduce un dork de GitHub en GitHound y este escaneará cualquier archivo y repositorio que coincida con tu consulta en busca de secretos. A diferencia de los escáneres típicos, GitHound aprovecha la API de Búsqueda de Código de GitHub, lo que te otorga visibilidad completa sobre todos los repositorios públicos, no solo unos pocos objetivos. Hay más información disponible en el artículo de blog adjunto.
Visualiza y gestiona tus resultados de búsqueda en tiempo real con el nuevo panel de GitHound Explore. Comienza ahora de forma gratuita en https://githoundexplore.com o usando el flag --dashboard. Aprende a usar esto con una instalación local de GitHound o TruffleHog en la página de la Wiki. Ten en cuenta que aún puedes usar GitHound sin el panel.
También hemos iniciado una Base de Datos de Dorks de GitHub, donde puedes navegar y buscar dorks para diversas palabras clave de API y obtener ideas para nuevos dorks. ¡Échale un vistazo en https://githoundexplore.com/github-dorks.
🔍 Búsqueda global en GitHub – encuentra secretos en todo GitHub, incluyendo Gists
🔑 Detección inteligente de claves API – regex + entropía + coincidencia de contexto
🕵️ Excavación en el historial de commits – descubre credenciales eliminadas o revertidas
🧮 Puntuación adaptativa – filtra falsos positivos
🧰 Decodificación Base64 y extracción de secretos codificados
💻 Salida JSON y reglas regex personalizadas para pipelines de automatización
echo "AKIA" | git-hound o git-hound --query "AKIA"
config.yml./git-hound para probar (¡asegúrate de estar en el directorio correcto!)Configuración:
GitHound utiliza principalmente config.yml (ubicado en el directorio actual o en $HOME/.githound/) para la configuración. Consulta config.example.yml como ejemplo.
Alternativamente, puedes usar variables de entorno, que sobrescribirán los valores en config.yml:
GITHOUND_GITHUB_TOKEN: Establece el token de acceso a la API de GitHub.GITHOUND_INSERT_KEY: Establece la Clave de Inserción de GitHoundExplore para la función --dashboard.GitHound utiliza una base de datos de expresiones regulares de claves API mantenida por los autores de Gitleaks.
Conocer el patrón de las claves API de un servicio específico te permite buscar en GitHub esas claves. Luego puedes canalizar las coincidencias de tu expresión regular personalizada hacia tu propio script para probar la clave API contra el servicio e identificar la cuenta en riesgo.
echo "api.halcorp.biz" | githound --dig-files --dig-commits --many-results --rules halcorp-api-regexes.txt --results-only | python halapitester.py
Para detectar futuras fugas de claves API, GitHub ofrece Push Token Scanning para detectar inmediatamente las claves API a medida que se publican.
Mi uso principal de GitHound es encontrar información sensible para programas de Bug Bounty. Para objetivos de alto perfil, el hack --many-results y el flag --languages son útiles para raspar más de 100 páginas de resultados.
echo "\"uberinternal.com\"" | githound --dig-files --dig-commits --many-results --languages common-languages.txt --threads 100
https://github.com/tillson/git-hound/blob/master/internal/app/keyword_scan.go GitHound encuentra claves API mediante una combinación de expresiones regulares exactas para servicios comunes como Slack y AWS, y una expresión regular genérica de API sensible al contexto. Esto encuentra cadenas largas que parecen claves API rodeadas de palabras clave como "Authorization" y "API-Token". GitHound asume que estos son falsos positivos y luego demuestra su legitimidad mediante entropía de Shannon, comprobaciones de palabras del diccionario, cálculos de unicidad y detección de codificación. GitHound luego genera positivos de alta certeza. Para archivos que codifican secretos, decodifica cadenas base64 y busca en las cadenas decodificadas las claves API.
Consulta este artículo de blog para más detalles sobre casos de uso y metodologías.
GitHound facilita la búsqueda de claves API expuestas en GitHub mediante coincidencia de patrones, consultas dirigidas y un sistema de puntuación robusto.
Usage:
-h, --help help for githound
--dashboard Stream results to web dashboard (see https://githoundexplore.com)
--all-results Print all results, even if they do not contain secrets
--api-debug Prints details about GitHub API requests and counts them.
--config-file string Supply the path to a config file.
--debug Enables verbose debug logging.
--dig-commits Dig through commit history to find more secrets (CPU intensive).
--dig-files Dig through the repo's files to find more secrets (CPU intensive).
--fast Skip file grepping and only return search preview
--json Print results in JSON format
--many-results Search >100 pages with filtering hack
--no-api-keys Don't search for generic API keys.
--no-files Don't search for interesting files.
--no-gists Don't search Gists
--no-keywords Don't search for built-in keywords
--no-repos Don't search repos
--no-scoring Don't use scoring to filter out false positives.
--otp-code string Github account 2FA token used for sign-in. (Only use if you have 2FA enabled on your account via authenticator app)
--pages int Maximum pages to search per query (default 100)
--profile Enable pprof profiling on localhost:6060
--profile-addr string Address to serve pprof profiles (default "localhost:6060")
--query string A query string (default: stdin)
--query-file string A file containing a list of subdomains (or other queries).
--results-only Only print match strings.
--rules string Path to a list of regexes or a GitLeaks rules folder. (default "rules/")
--search-type api Search interface (api or `ui`).
--threads int Threads to dig with (default 20)
En launch.json envía los flags necesarios como args "args": [ "searchKeyword", "tillsongalloway.com", "--regex-file", "regexes.txt" ]
Desde la carpeta principal: go build .
Para construir la imagen Docker de Git-Hound, usa el siguiente comando:
docker build -t my-githound-container .
Este comando construye la imagen Docker con la etiqueta my-githound-container. Puedes cambiar el nombre de la etiqueta según tu preferencia.
Para ejecutar el contenedor Docker de Git-Hound, deberás proporcionar tu archivo config.yaml y cualquier archivo de entrada (como subdomains.txt) mediante volúmenes Docker.
config.yamlColoca tu archivo config.yaml en una ubicación conocida de tu máquina host. Este archivo debe contener la configuración de Git-Hound, incluidas las credenciales de GitHub.
Ejemplo de config.yaml:
# config.yaml
github_username: "your_username"
github_password: "your_password"
# Optional: GitHub TOTP seed
# github_totp_seed: "ABCDEF1234567890"
Si tienes un archivo como subdomains.txt, colócalo en un directorio de tu máquina host.
Usa el siguiente comando para ejecutar el contenedor con tu configuración y archivos de entrada:
docker run -v /path/to/config.yaml:/root/.githound/config.yaml -v $(pwd)/data:/data my-githound-container --subdomain-file /data/subdomains.txt
Reemplaza /path/to/config.yaml con la ruta real a tu archivo config.yaml. La parte -v $(pwd)/data:/data monta un directorio que contiene tus archivos de entrada (subdomains.txt) dentro del contenedor.