Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Ferramenta avançada de análise forense, recuperação de repositórios Git e outros artefatos expostos publicamente na web via HTTP, perfeita para aquele recon de respeito

Notifications You must be signed in to change notification settings

roodriiigooo/GITLEAK_EXPLORER

Repository files navigation

🕵️ Git Leak Explorer

Ferramenta avançada de análise forense, recuperação de repositórios Git e outros artefatos expostos publicamente na web via HTTP com saída visual, perfeita para aquele recon de respeito

_multi_menu

Sobre | Aviso Legal | Funcionalidades | Screenshots | Instalação | Como Usar | Agradecimentos



Latest Release Python Version Github License Status

Sobre

O Git Leak Explorer é uma ferramenta "tudo-em-um" projetada para pesquisadores de segurança e administradores de sistemas. Ela permite identificar, baixar, reconstruir e analisar artefatos de pastas .git expostas inadvertidamente em servidores web.

A ferramenta vai além do download simples, oferecendo reconstrução de histórico de commits, detecção de riscos de segurança (hardening), suporte a packfiles e uma interface visual moderna (com Dark Mode) para análise dos dados. Opcionalmente suporta também busca de vazamentos de artefatos SVN, HG, Env e DS_Store. Também possui a habilidade de scan massivo em lista de alvos e efetuar bruteforce com wordlist em busca de artefatos de interesse.

Tudo isso em um só projeto. Leve, direto e brasileiro.

Ajude a desenvolver este projeto

Sinta-se a vontade para contribuir, enviar sugestões e suas pull requests :D


⚠️ Aviso Legal

Esta ferramenta foi desenvolvida para fins profissionais éticos, educacionais e de auditoria autorizada. O acesso a sistemas de terceiros sem permissão explícita é ilegal, antiético e passível de punições legais.

O desenvolvedor não se responsabiliza pelo mau uso deste software.


✨ Funcionalidades Principais

  • 👁️ Blind Mode: Recuperação inteligente mesmo quando o arquivo .git/index está ausente ou bloqueado (403/404), utilizando "Crawling" da árvores e commits.
  • 🔍 Reconstrução de Artefatos: Baixa e reconstrói arquivos localmente a partir do .git/index remoto.
  • 📜 Histórico de Commits: Reconstrói a árvore de commits (mensagens, autores, timestamps) sem precisar clonar o repositório inteiro via git clone, com suporte a visualização de stash e diffs de arquivos.
  • 🛡️ Análise de Hardening: Verifica a exposição de arquivos sensíveis (config, HEAD, logs, etc.) e gera um relatório de risco (Crítico/Atenção).
  • 📦 Suporte a Packfiles: Detecta, baixa e extrai arquivos .pack (Git objects comprimidos) automaticamente.
  • 📊 Relatórios Unificados: Gera um painel HTML interativo (report.html) contendo listagem de arquivos, histórico, hardening e status de packfiles.
  • 🎨 Interface Moderna: Todos os relatórios HTML possuem tema escuro (Dark UI), busca em tempo real e paginação.
  • 🚀 Alta Performance: Utiliza multi-threading e session pooling para downloads paralelos de objetos.
  • 🔍 Suporte Adicional: Efetua buscas por artefatos SVN, HG, Env e DS_Store.
  • 💪 Suporte a Brute Force: Habilidade de utilizar wordlists contendo artefatos de interesse e seus respectivos paths de busca.
  • 🌎 Suporte a Proxy: Conecte-se com o Proxy que desejar, incluindo a rede Tor.
  • 👥 Random User-Agents: User-Agentes simulados por default.

Screenshots

# Visão Geral - Multi Scan image
# Visão Geral - Alvo image
# Secrets _secrets
# Stash image
# Hardening _hardening
# Usuarios - baseado em histórico _users
# Reconsrução de histórico image
# Listagem de arquivos - com filtro _listing
# Bruteforce & Path traversal - com filtro _brute_traversal
# Outros _outros

🚀 Instalação e Configuração

Tip

ESTE REPOSITÓRIO POSSUI UMA BUILD STANDALONE PARA WINDOWS, se preferir utilizar ao invés do python.

Apenas copie o arquivo em um path que você desejar e registre-o no sistema para ser reconhecido como um cmdlet e pule os próximos passos.

Não exclui a necessidade de ter o Git instalado no sistema.


Certifique-se de ter os seguintes requisitos instalados: Python 3.8+ e Git (necessário para descompactação de objetos):

Python GitHub Desktop


Opção 1: Pip (Padrão)

pip install -r requirements.txt

Opção 2: Pipenv

pipenv install requests
pipenv shell
python git_leak.py --help

Opção 3: Poetry

poetry init -n
poetry add requests
poetry run python git_leak.py --help

Opção 4: 🐳 Docker

docker build -t gitleak_explorer .
docker run -v $(pwd)/repo:/app/repo gitleak_explorer http://alvo.com/.git --default --output-dir /app/repo

Opção 5: 📦 Compilação para .EXE (Windows)

Para criar um executável portátil (standalone):

  1. Instale o PyInstaller:
pip install pyinstaller
  1. Compile o script:
pyinstaller --onefile --name "git_leak" git_leak.py

📖 Como Usar

Tip

Se estiver utilizando a versão RELEASE (Windows), considere usar git_leak.exe ao invés de python git_leak.py.

git_leak.py — Conjunto completo de ferramentas em arquivo único para recuperação e análise forense de vazamentos do Git.

Funcionalidades Principais:
 - Recuperação via Index ou Blind Mode (Crawling)
 - Reconstrução inteligente de arquivos e estrutura de diretórios
 - Análise de histórico de commits (Metadados + Arquivos)
 - Detecção de Hardening e outros vazamentos (SVN, HG, Env, DS_Store)
 - Geração de relatórios técnicos detalhados e interface visual

Uso: python git_leak.py <URL> [OPÇÕES]
Exemplo: python git_leak.py http://alvo.com --full-scan

Principais funcionalidades implementadas:
 - --parse-index         : baixa .git/index e converte para JSON
 - --blind               : Blind mode: Rastrear commits/árvores quando .git/index está ausente/403
 - --reconstruct         : Baixa os blobs do dump.json e reconstrói o diretório .git/objects localmente.
 - --list                : gera listing.html (UI simplificada) dos arquivos encontrados no indice, com links
 - --serve               : abre um servidor http para visualização dos relatórios
 - --sha1                : baixa um objeto único pelo SHA
 - --reconstruct-history : reconstrói cadeia de commits somente como interface do usuário (history.json + history.html)
 - --detect-hardening    : verificações de exposição e gera os arquivos hardening_report.json e hardening_report.html.
 - --packfile [MODE]     : manuseio de packfiles (modes: list, download, download-unpack)
 - --scan                : roda scan em multiplos albos em busca de .git/HEAD exposure
 - --default             : roda parse-index, detect-hardening, packfile(list), list, reconstruct-history e serve
 - --full-history        : analisa árvore de arquivos completa de TODOS os commits (lento)
 - --full-scan           : executa verificação completa de vazamentos (SVN, HG, Env, DS_Store)
 - --report              : gera apenas o relatório final (report.html)
 - --bruteforce          : ativa a tentativa de recuperação de arquivos comuns via força bruta
 - --wordlist            : caminho para wordlist (Brute-Force) personalizada
 - --proxy               : URL do Proxy (ex: http://127.0.0.1:8080 para Burp/ZAP ou socks5h://127.0.0.1:9150 para rede Tor) 
 - --no-random-agent     : desativa a rotação de User-Agents (Usa um fixo)
 - --secrets             : Executa scanner de regex/entropia em busca de chaves
 - --show-dif            : Baixa e exibe as diferenças (diffs) de código no histórico (Pode ser MUITO Lento)
 - --local,              : Caminho completo da pasta do projeto local (ex: /home/user/app ou C:\Projeto\)
 - options: --max-commits, --ignore-missing, --strict, --workers, --output-index, --output-dir, --serve-dir
 

 - Todos os arquivos de saída são armazenados no diretório externo fornecido: arquivos HTML na raiz, arquivos JSON/outros arquivos em outdir/_files.


Utilize de forma responsável e somente em sistemas que você esteja autorizado a testar.

Modo Automático (Recomendado) Executa todo o pipeline: baixa índice, verifica segurança, procura packfiles, reconstrói histórico e gera o relatório final.

python git_leak.py http://exemplo.com
# ou
python git_leak.py http://exemplo.com/.git --default

Efetuar uma análise em uma pasta .git localmente: --local:

# Não é o propósito deste script, mas pode ser útil em caso de extração de arquivos expostos ou somente um teste local
python git_leak.py --local c:\Projeto\Meu_Projeto
# ou em conjunto com --output-dir para servir a saída em um diretório especifico
python git_leak.py --local c:\Projeto\Meu_Projeto --serve --output-dir temp/arquivos/

Modo Adicional --full-scan Executa além do modo padrão, outros vazamentos (SVN, HG, Env, DS_Store)

python git_leak.py http://exemplo.com/.git --full-scan

Modo comparativo --show-diff Para mostrar um comparativo das alterações no histórico de commits

python git_leak.py http://exemplo.com/.git --show-diff

Modo lento --full-history Executa em modo padrão ou modo adicional, mas tenta reconstruir o history de commits analisando todos os registros encontrados, pode ser utilizado em conjunto com --show-diff para mostrar um comparativo completo das alterações

python git_leak.py http://exemplo.com/.git --full-history

Comandos Específicos

  • Apenas Gerar Relatório Unificado (se já houver dados baixados anteriormente) --report:
python git_leak.py http://exemplo.com/.git --report
  • Habilitar servidor http para visualizar relatorios ou servir outros arquivos --serve:
python git_leak.py http://exemplo.com/.git --serve
# ou em conjunto com --output-dir para servir um diretório especifico
python git_leak.py --serve --output-dir temp/arquivos/
  • Recuperar um objeto diretamente pelo SHA --sha1
## Útil quando encontrado um arquivo de interesse na listagem de arquivos e o link para o objeto está acessível, --sha1 faz o download do arquivo e reconstrói seu conteúdo
python git_leak.py http://exemplo.com/.git  --sha1 138605f2337271f004c5d18cf3158fce3f4a4b16
# Pode ser usado em conjunto com --output-dir
python git_leak.py http://exemplo.com/.git  --sha1 138605f2337271f004c5d18cf3158fce3f4a4b16 --output-dir temp/arquivos/
  • Gerenciar Packfiles (Listar/Baixar/Extrair) --packfile:
# Apenas listar packfiles encontrados
python git_leak.py http://exemplo.com/.git --packfile list

# Baixar e tentar extrair (requer git instalado no sistema)
python git_leak.py http://exemplo.com/.git --packfile download-unpack
  • Escanear Lista de URLs (Mass Scan) --scan:
python git_leak.py --scan alvos.txt
  • Servir Relatórios Localmente:
python git_leak.py --serve --output-dir repo/temp
  • Executar scan massivo de alvos utilizando bruteforce de objetos de interesse através de lista personalizada com resultado organizado em pastas distintas:
python git_leak.py --scan alvos-exemplo.txt --output-dir pasta-alvos  --full-scan --bruteforce --wordlist wordlist-exemplo.txt --serve
  • Caso executado apenas com --brute-force, o bruteforce utilizará uma lista hardcoded:
    # --- Environment & Secrets ---
    ".env", ".env.local", ".env.dev", ".env.development", ".env.prod", ".env.production",
    ".env.example", ".env.sample", ".env.save", ".env.bak", ".env.old",
    "config.json", "secrets.json", "config.yaml", "secrets.yaml", "config.toml", "config.php",
    "settings.py", "database.yml", "robots.txt", "README.md", "index.php", "index.html", "server.js",

    
    # --- Version Control & CI/CD (Risco Crítico) ---
    ".git/config", ".gitignore", ".gitmodules",
    ".gitlab-ci.yml", ".travis.yml", "circle.yml", "jenkinsfile", "Jenkinsfile",
    ".github/workflows/main.yml", ".github/workflows/deploy.yml",
    
    # --- Javascript / Node.js ---
    "package.json", "package-lock.json", "yarn.lock", ".npmrc",
    "webpack.config.js", "rollup.config.js", "next.config.js", "nuxt.config.js",
    "server.js", "app.js",
    
    # --- PHP / CMS / Frameworks ---
    "wp-config.php", "wp-config.php.bak", "wp-config.php.old", # WordPress
    "configuration.php", "configuration.php.bak", # Joomla
    ".htaccess", "composer.json", "composer.lock", "auth.json",
    "artisan", "phpunit.xml", # Laravel
    
    # --- Python / Django / Flask ---
    "requirements.txt", "Pipfile", "Pipfile.lock", "setup.py", "pyproject.toml",
    "manage.py", "app.py", "wsgi.py", "uwsgi.ini",
    
    # --- ASP.NET / C# (IIS) ---
    "web.config", "Web.config", "appsettings.json", "appsettings.Development.json",
    "packages.config", "Global.asax",
    
    # --- Docker / Kubernetes / Cloud / Terraform ---
    "Dockerfile", "docker-compose.yml", "docker-compose.yaml", ".dockerignore",
    "Makefile", "Vagrantfile",
    "k8s.yaml", "kubeconfig", "deployment.yaml",
    "main.tf", "variables.tf", "terraform.tfvars", ".terraform.lock.hcl",
    "serverless.yml", "serverless.yaml",
    
    # --- Backups & Dumps (Arquivos pesados) ---
    "backup.zip", "backup.tar.gz", "backup.sql",
    "dump.sql", "database.sql", "db_backup.sql", "users.sql",
    "www.zip", "site.zip", "public.zip", "html.tar.gz",
    
    # --- IDEs & Logs ---
    ".vscode/settings.json", ".idea/workspace.xml",
    "debug.log", "error_log", "access.log", "npm-debug.log",
    "id_rsa", "id_rsa.pub", "known_hosts"
  • Modo completo com Proxy:
python git_leak.py exemplo.com --output-dir teste_proxy --proxy 127.0.0.1:8080 --full-scan --bruteforce --serve
# ou rede Tor (SOCKS5)
python git_leak.py exemplo.com --output-dir teste_proxy --proxy socks5h://127.0.0.1:9150 --full-scan --bruteforce --serve
  • Desativa User-Agents aleatórios:
python git_leak.py exemplo.com --output-dir sua_pasta --proxy 127.0.0.1:8080 --no-random-agent --serve
  • Comando tudo em um:
## Efetua scan de alvos em um arquivo de texto, com full scan ativado, saindo para a pasta MEU_SCAN, utilizando Tor como proxy, 
## ativando 250 workers (threads), ativando scan por secrets (WIP), bruteforce nativo sem wordlist 
## com reconstrução completa de histórico de commits carregando as diffs e servindo em localhost no final.
python git_leak.py --scan minha-lista.txt --full-scan --output-dir MEU_SCAN --proxy socks5h://127.0.0.1:9150 --workers 250 --secrets --bruteforce --full-history --show-diff --packfile download-unpack --serve

Tip

Ao analisar arquivos, principalemnte de pack files extraídas eu recomendo abrir a pasta dentro de uma IDE de sua preferencia, como o Visual Studio Code.

🎩 Obrigado ♥

Err.. ninguém contribuiu ainda :(

💖 Support Me

Buy Me A Coffee

About

Ferramenta avançada de análise forense, recuperação de repositórios Git e outros artefatos expostos publicamente na web via HTTP, perfeita para aquele recon de respeito

Topics

Resources

Stars

Watchers

Forks

Languages