Git Exposed

268 views
5 mins read
MOSTRAR: Aviso importante: Uso Ético e Profissional do Conteúdo

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


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!

Sou um profissional apaixonado pela área de Segurança da Informação. Sou certificado em ISO 27001, ISO 27005, LGPD e GDPR, o que me torna um Data Protection Officer (DPO) certificado. Também sou certificado CC e SSCP pelo (ISC)², bem como um AWS Practitioner. Além do meu trabalho, sou um orgulhoso pai de três filhos, um nerd, um cinéfilo, um leitor voraz e um eterno aprendiz.

Deixe um comentário

Your email address will not be published.

Previous Story

Repositório: Awesome Industrial Control System Security

Next Story

Script PowerShell de resposta a incidentes

Latest from BugBounty

API Pentesting

Por que a segurança da API é importante? A segurança da API envolve a segurança dos