
gitGraber: monitora o GitHub para pesquisar e encontrar dados sensíveis em tempo real para diferentes serviços online como: Google, Amazon, Paypal, Github, Mailgun, Facebook, Twitter, Heroku, Stripe...

gitGraber é uma ferramenta desenvolvida em Python3 para monitorar o GitHub, pesquisar e encontrar dados sensíveis em tempo real para diferentes serviços online, como: Google, Amazon (AWS), Paypal, Github, Mailgun, Facebook, Twitter, Heroku, Stripe, Twilio...

É importante entender que o gitGraber não foi projetado para verificar o histórico de repositórios, muitas ferramentas já fazem isso muito bem. O gitGraber foi originalmente desenvolvido para monitorar e analisar os últimos arquivos indexados no GitHub. Se o gitGraber encontrar algo interessante, você receberá uma notificação no seu canal do Slack. Você também pode usá-lo para obter resultados diretamente na linha de comando.
Em nossa experiência, estamos convencidos de que os vazamentos não vêm apenas das próprias organizações, mas também de provedores de serviços e funcionários, que não necessariamente têm um 'perfil' indicando que trabalham para uma determinada organização.
As regex devem ser o mais precisas possível. Às vezes, você pode ter falsos positivos, fique à vontade para contribuir para melhorar o reconhecimento e adicionar novas regex para detecção de padrões.
Preferimos reduzir falsos positivos em vez de enviar notificações para cada chave de API 'padrão' que o gitGraber possa encontrar, mas que seja irrelevante para o seu monitoramento.
gitGraber exibe algumas coisas diretamente no CLI: solicitação do GitHub, detecção de abuso de código de status (200 ou 403)... e se você não vir algo como [+] POSSIBLE FOO TOKEN FOUND é simplesmente porque o gitGraber não encontrou tokens secretos para a sua palavra-chave definida.
Esta mensagem aparece quando o GitHub detecta um grande número de requisições do seu próprio token do GitHub. Não se preocupe, o gitGraber pode lidar com isso e tentará usar outro token definido no arquivo config.py. Nota: Este é um limite temporário e você não precisa criar outro token.
Não, para evitar isso, o gitGraber armazena todas as URLs de repositórios em um arquivo chamado rawGitUrls.txt. Se um repositório já foi escaneado pelo gitGraber e uma chave de API foi encontrada, você não receberá uma notificação.
Você precisa editar o arquivo tokens.py e adicionar o padrão como um argumento de lista ao inicializar o token. Por exemplo, para adicionar o padrão XXXX ao token MAILCHIMP, a linha tokensList.append(Token('MAILCHIMP', '\W(?:[a-f0-9]{32}(-us[0-9]{1,2}))\W')) se torna tokensList.append(Token('MAILCHIMP', '\W(?:[a-f0-9]{32}(-us[0-9]{1,2}))\W', ['XXXX'])).
usage: gitGraber.py [-h] [-k KEYWORDSFILE] [-q QUERY] [-s] [-w WORDLIST]
optional arguments:
-h, --help Show this help message and exit
-k KEYWORDSFILE, --keyword KEYWORDSFILE Specify a keywords file (-k keywordsfile.txt)
-q QUERY, --query QUERY Specify your github query (-q "apikey")
-m, --monitor Enable monitoring of your search query by creating cron job [Every 30 mins]
-d, --discord Enable discord notifications
-s, --slack Enable slack notifications
-tg, --telegram Enable telegram notifications
-w WORDLIST, --wordlist WORDLIST Create a wordlist that fills dynamically with discovered filenames on GitHub
-l LIMIT_DAYS, --limit LIMIT_DAYS Limit the results to commits less than N days old
Por exemplo, para pesquisar uma palavra específica no github em combinação com cada palavra do arquivo keywordsfile.txt e enviar a saída para o Slack:
python3 gitGraber.py -k keywordsfile.txt -q YOURWORD -s
É possível pesquisar um nome de domínio específico, por exemplo, mas isso deve estar entre aspas duplas:
python3 gitGraber.py -k keywordsfile.txt -q \"yahoo.com\" -s
Se você deseja construir uma wordlist personalizada com base nos arquivos encontrados no Github para usar com sua ferramenta de fuzzing favorita, adicione o argumento -w:
python3 gitGraber.py -k keywordsfile.txt -q \"yahoo.com\" -s -w mysuperwordlist.txt
Se você deseja monitorar sua consulta de pesquisa a cada 30 minutos, pode usar a flag -m que informa ao gitGraber para criar um cron job baseado na sua consulta:
python3 gitGraber.py -k keywordsfile.txt -q \"yahoo.com\" -s -m
O comando acima irá procurar por segredos a cada 30 minutos na sua consulta de pesquisa e enviar uma notificação do Slack sempre que houver resultados.
O gitGraber precisa de algumas dependências. Para instalá-las no seu ambiente:
pip3 install -r requirements.txt
Antes de iniciar o gitGraber, você precisa modificar o arquivo de configuração config.py:
GITHUB_TOKENS = ['yourToken1Here','yourToken2Here']DISCORD_WEBHOOKURL = 'https://discordapp.com/api/webhooks/7XXXX/XXXXXX'SLACK_WEBHOOKURL = 'https://hooks.slack.com/services/TXXXX/BXXXX/XXXXXXX'TELEGRAM_CONFIG = { "token": "XXXXX:xXXXXXXXXXXXXX", "chat_id": -99999999 }Para iniciar o gitGraber: python3 gitGraber.py -k wordlists/keywords.txt -q "uber" -s
Atualmente, o gitGraber suporta 31 tokens diferentes. Todos esses modelos de detecção (regex) estão armazenados no arquivo tokens.py:
Algumas wordlists e regex foram criadas por nós e outras são inspiradas em outros repositórios/pesquisadores:
Obrigado pela sua contribuição e por sua ajuda para melhorar o gitGraber:
Este projeto é feito apenas para fins educacionais e de testes éticos. O uso desta ferramenta para atacar alvos sem consentimento mútuo prévio é ilegal. Os desenvolvedores não assumem responsabilidade e não são responsáveis por qualquer uso indevido ou dano causado por esta ferramenta.
| Serviço | Link |
|---|
| GitHub | Como criar token de API do GitHub |
| Discord | Como criar URL de Webhook do Discord |
| Slack | Como criar URL de Webhook do Slack |
| Telegram | Como criar bot do Telegram |