Todo o conteúdo fornecido neste post destina-se exclusivamente a fins educacionais, de estudo e desenvolvimento profissional e pessoal. As informações aqui apresentadas são para serem utilizadas de forma ética e profissional, em conformidade com todas as leis e regulamentos aplicáveis.
Introdução
A questão da segurança na era digital tornou-se rapidamente um tema quente. Todos nós já ouvimos falar sobre violações de dados, roubo de identidade e outras ameaças cibernéticas. No entanto, há um perigo sutil espreitando em muitos servidores web que muitas vezes passa despercebido: os diretórios .git expostos. Existem milhares de .git expostos e sendo bem fácil encontrá-los; essa vulnerabilidade é uma porta aberta para potenciais ataques cibernéticos.
Como assim? .git o quê?
Para aqueles não familiarizados com o mundo do desenvolvimento de software, o Git é o sistema de controle de versões padrão da indústria. Ele rastreia todas as alterações feitas na base de código, permitindo que os desenvolvedores colaborem de forma eficiente. No entanto, quando o diretório .git – o coração de qualquer projeto rastreado pelo Git – é deixado acessível em um servidor web, pode se transformar em uma séria vulnerabilidade de segurança. Este diretório, geralmente oculto, é uma mina de ouro para invasores em potencial.
Mas por que isso é tão importante?
Bem, imagine que um desenvolvedor inadvertidamente deixou o diretório .git acessível em um servidor web público. Isso significa que qualquer pessoa com conhecimento suficiente poderia explorar esse acesso e obter informações sensíveis, como credenciais de banco de dados ou chaves de API. A exposição dessas informações pode levar a consequências devastadoras, desde ataques de ransomware até roubo de identidade em larga escala.
Na visão de um bug hunter …
Expor o diretório .git pode gerar resultados variados, dependendo dos ativos encontrados. No entanto, é sempre uma descoberta interessante por várias razões:
- Facilidade de Detecção: A exposição do diretório .git é facilmente identificável, o que facilita sua detecção durante a avaliação de segurança.
- Revelação de Vulnerabilidades Adicionais: A análise do código-fonte contido no diretório .git pode revelar vulnerabilidades adicionais, algumas das quais podem ser críticas e de grande interesse para a segurança.
- Aplicabilidade a Diferentes Escopos: O processo de análise é aplicável independentemente do escopo, seja durante testes de penetração com alvos específicos ou em uma abordagem mais ampla, como investigação de bugs em um escopo amplo, como *.domain.com.
Ferramentas para pesquisa
Google Dorks
Google Dorks são consultas avançadas de pesquisa utilizadas para encontrar informações sensíveis e vulnerabilidades em sites através do Google. Essas consultas exploram operadores específicos do Google para filtrar resultados e acessar informações não intencionalmente expostas,
Utilizando de simples pesquisas no google, já é possível encontrar vários .git expostos.
Exemplos de dorks.
intext:"index of" ".git"
{intitle: indexof/.git }
intitle:index of .git/hooks/
intitle:"index of" ".gitignore"
intext:"Index of /.git"
".git" intitle:"Index of"
Resultados
Httpx (project discovery)
Ferramenta voltada para profissionais de cybersegurança que automatiza a busca em determinados domínios e subdomínios (com o auxilio de outras ferramentas)
Link: https://github.com/projectdiscovery/httpx
Instalação é simples, mas, precisa ter o Go instalado no sistema operacional
Instalando:
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
cp -r /root/go/bin /usr/bin
Utilizando:
No exemplo abaixo, utilizei uma ferramenta para enumeração dos subdomínios, por exemplo o Amass ou SubFinder (link para a ferramenta), salvando os resultados no arquivo domains.com.txt
Com os subdomínios ja enumerados, execute o comando:
cat domains.com.txt | httpx -silent -path /.git/ -fr -mc 200 -o /pasta/para/salvar/results.tx
Nuclei
Nuclei é uma das minhas ferramentas favoritas. Um verdadeiro canivete suiço que pode te ajudar a verificar configurações e vulnerabilidades em seu ambiente e programas de bug bounty.
Aqui eu falo um pouco da Ferramenta: https://jardel.tec.br/2023/01/18/nuclei
Aqui temos um post no blog oficial da Project Discovery (desenvolvedora da ferramenta). https://blog.projectdiscovery.io/ultimate-nuclei-guide/
Utilizando o Nuclei
Use a mesma lógica anterior, faça uma busca por subdomínios e o comando abaixo:
cat domains.com.txt | nuclei
Resultado do scan:
Download dos repositórios encontrados.
DotGit
Você pode usar uma extensão para navegador, disponível para Chrome, Firefox e Brave.
Ao entrar em um dos links que encontrou na fase de recon (ou em qualquer site que acesse e tenha um .git exposto), você terá as seguinte informações.
Apenas clique na seta azul e faça o download.
Gittools
Link para o repositório: https://github.com/internetwache/GitTools
Agora vem a parte divertida! Navegar manualmente pelo .git é útil para provar conceitos, mas pode ser tedioso.
Se você deseja recuperar o máximo de arquivos possível, mesmo com a listagem de diretórios desativada, a ferramenta ideal é o GitTools.
Instalação
Bem simples a instalação, faça o download do repositório para uma pasta, usando o comando:
git clone https://github.com/internetwache/GitTools.git
Utilizando o script
1 - Entrar na pasta do Dumper
cd Dumper
2- Permissão de execução para o script
chmod +x gitdumper.sh
3- Executar o script e realizar o download
./gitdumper.sh https://domain.com/.git/ /home/kali/recon-tools/domainGitExposed
Onde "/home/kali/recon-tools/domainGitExposed" é a pasta de saída para o download dos arquivos
Análise dos dados obtidos
Finalmente, você deve analisar o repositório local manualmente. É necessário ter um noção de comandos do git para essa parte, mas nada assustador
Tente detectar outras vulnerabilidades usando análise estática de código ou credenciais, tokens de autenticação, novos endpoints, etc
Abrindo o arquivo config.dist.php …
E não se esqueça, se você encontrar um domínio vulnerável, de verificar também seu desenvolvimento e teste de subdomínios. Eles provavelmente estariam vulneráveis, mesmo se o bug fosse corrigido no domínio/subdomínio principal.
Exemplos de reports desse bug
- Git repository found on Grabtaxi Holdings Pte Ltd ($1,000)
- [staging-engineering.gnip.com] Publicly accessible GIT directory on Twitter ($280)
Como corrigir vulnerabilidades de exposição de código-fonte .git?
Para corrigir esta vulnerabilidade, remova a pasta git do seu servidor web ou certifique-se de negar todo o acesso às pastas .git. Sendo fácil negar acesso às pastas .git
Apache
<DirectoryMatch “^/.*/\.git/”>
Order deny,allow
Deny from all
</DirectoryMatch>
Nginx
location ~ /.git/ {
deny all;
}
Lighttpd
Adicione a linha abaixo no arquivo de configuração lighttpd.conf
server.modules += ( "mod_access" )
Após isso você conseguirá bloquear o acesso para a pasta .git
$HTTP["url"] =~ "^/\.git/" {
url.access-deny = ("")
}
Eu espero que isso ajude e seja útil em seus estudos.
Se você tiver alguma dúvida, sugestão ou solicitação, utilize o formulário de contato \o/.
Vejo você na próxima vez!