Git

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks

Para fazer dump de uma pasta .git a partir de uma URL, use https://github.com/arthaud/git-dumper

Use https://www.gitkraken.com/ para inspecionar o conteúdo

Se um diretório .git for encontrado em uma aplicação web você pode baixar todo o conteúdo usando wget -r http://web.com/.git. Em seguida, você pode ver as alterações feitas usando git diff.

As ferramentas: Git-Money, DVCS-Pillage and GitTools podem ser usadas para recuperar o conteúdo de um diretório git.

A ferramenta https://github.com/cve-search/git-vuln-finder pode ser usada para procurar por CVEs e mensagens de vulnerabilidade de segurança dentro das mensagens de commits.

A ferramenta https://github.com/michenriksen/gitrob procura por dados sensíveis nos repositórios de uma organização e seus funcionários.

Repo security scanner é uma ferramenta baseada em linha de comando criada com um único objetivo: ajudar você a descobrir GitHub secrets que desenvolvedores acidentalmente colocaram ao dar push de dados sensíveis. E, como as outras, ajudará a encontrar senhas, chaves privadas, nomes de usuário, tokens e mais.

Aqui você encontra um estudo sobre github dorks: https://securitytrails.com/blog/github-dorks

Mais rápido /.git dumping & dirlisting bypass (2024–2026)

  • holly-hacker/git-dumper é uma reescrita de 2024 do dumper clássico do GitTools com fetch paralelo (>10x de aceleração). Exemplo: python3 git-dumper.py https://victim/.git/ out && cd out && git checkout -- .
  • Ebryx/GitDump brute-forces object names from .git/index, packed-refs, etc. to recover repos even when directory traversal is disabled: python3 git-dump.py https://victim/.git/ dump && cd dump && git checkout -- .

Triagem rápida pós-dump

cd dumpdir
# reconstruct working tree
git checkout -- .
# show branch/commit map
git log --graph --oneline --decorate --all
# list suspicious config/remotes/hooks
git config -l
ls .git/hooks

Caça a segredos/credenciais (ferramentas atuais)

  • TruffleHog v3+: entropy+regex com travessia automática do histórico do Git. trufflehog git file://$PWD --only-verified --json > secrets.json
  • Gitleaks (v8+): conjunto rápido de regras regex, pode escanear a árvore desempacotada ou o histórico completo. gitleaks detect -v --source . --report-format json --report-path gitleaks.json

RCE na integração Git do lado do servidor via override de hooksPath

Aplicações web modernas que integram repositórios Git às vezes reescrevem .git/config usando identificadores controlados pelo usuário. Se esses identificadores forem concatenados em hooksPath, você pode redirecionar os hooks do Git para um diretório controlado pelo atacante e executar código arbitrário quando o servidor rodar o Git nativo (por exemplo, git commit). Passos principais:

  • Path traversal in hooksPath: se um nome de repo/nome de dependência for copiado para hooksPath, injete ../../.. para escapar do diretório de hooks pretendido e apontar para um local gravável. Isto é efetivamente um path traversal na configuração do Git.
  • Forçar que o diretório alvo exista: quando a aplicação realiza clones no servidor, abuse dos controles de destino do clone (ex.: um parâmetro ref/branch/path) para fazê-lo clonar em ../../git_hooks ou um caminho de travessia similar para que pastas intermediárias sejam criadas para você.
  • Coloque hooks executáveis: defina o bit executável dentro dos metadados do Git para que cada clone grave o hook com modo 100755:
git update-index --chmod=+x pre-commit

Adicione seu payload (reverse shell, file dropper, etc.) em pre-commit/post-commit desse repo.

  • Encontre um caminho de código do Git nativo: bibliotecas como JGit ignoram hooks. Procure por fluxos/flags de deployment que revertam para o Git do sistema (ex.: forçar parâmetros deploy-with-attached-repo) para que os hooks realmente executem.
  • Dispute a reescrita da config: se a app sanitiza .git/config imediatamente antes de rodar o Git, inunde o endpoint que grava seu hooksPath malicioso enquanto aciona a ação do Git para vencer uma race condition e obter a execução do seu hook.

Referências

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks