All Projects → hisxo → Gitgraber

hisxo / Gitgraber

Licence: gpl-3.0
gitGraber: monitor GitHub to search and find sensitive data in real time for different online services such as: Google, Amazon, Paypal, Github, Mailgun, Facebook, Twitter, Heroku, Stripe...

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Gitgraber

Rengine
reNgine is an automated reconnaissance framework for web applications with a focus on highly configurable streamlined recon process via Engines, recon data correlation and organization, continuous monitoring, backed by a database, and simple yet intuitive User Interface. reNgine makes it easy for penetration testers to gather reconnaissance with…
Stars: ✭ 3,439 (+195.45%)
Mutual labels:  osint, security-tools, bugbounty
Subdomainizer
A tool to find subdomains and interesting things hidden inside, external Javascript files of page, folder, and Github.
Stars: ✭ 915 (-21.39%)
Mutual labels:  security-tools, security-automation, bugbounty
Hosthunter
HostHunter a recon tool for discovering hostnames using OSINT techniques.
Stars: ✭ 427 (-63.32%)
Mutual labels:  osint, security-tools, bugbounty
Awesome Mobile Security
An effort to build a single place for all useful android and iOS security related stuff. All references and tools belong to their respective owners. I'm just maintaining it.
Stars: ✭ 1,837 (+57.82%)
Mutual labels:  security-tools, redteam, bugbounty
Osmedeus
Fully automated offensive security framework for reconnaissance and vulnerability scanning
Stars: ✭ 3,391 (+191.32%)
Mutual labels:  osint, security-tools, bugbounty
Osint tips
OSINT
Stars: ✭ 322 (-72.34%)
Mutual labels:  osint, redteam, bugbounty
Pentesting Bible
Learn ethical hacking.Learn about reconnaissance,windows/linux hacking,attacking web technologies,and pen testing wireless networks.Resources for learning malware analysis and reverse engineering.
Stars: ✭ 8,981 (+671.56%)
Mutual labels:  osint, redteam, bugbounty
Paramspider
Mining parameters from dark corners of Web Archives
Stars: ✭ 781 (-32.9%)
Mutual labels:  osint, bugbounty
Torbot
Dark Web OSINT Tool
Stars: ✭ 821 (-29.47%)
Mutual labels:  osint, security-tools
Urlhunter
a recon tool that allows searching on URLs that are exposed via shortener services
Stars: ✭ 934 (-19.76%)
Mutual labels:  osint, bugbounty
Gitgot
Semi-automated, feedback-driven tool to rapidly search through troves of public data on GitHub for sensitive secrets.
Stars: ✭ 964 (-17.18%)
Mutual labels:  osint, security-tools
Vhostscan
A virtual host scanner that performs reverse lookups, can be used with pivot tools, detect catch-all scenarios, work around wildcards, aliases and dynamic default pages.
Stars: ✭ 767 (-34.11%)
Mutual labels:  security-tools, bugbounty
Interlace
Easily turn single threaded command line applications into a fast, multi-threaded application with CIDR and glob support.
Stars: ✭ 760 (-34.71%)
Mutual labels:  security-tools, bugbounty
Diamorphine
LKM rootkit for Linux Kernels 2.6.x/3.x/4.x/5.x (x86/x86_64 and ARM64)
Stars: ✭ 725 (-37.71%)
Mutual labels:  security-tools, redteam
Snoop
Snoop — инструмент разведки на основе открытых данных (OSINT world)
Stars: ✭ 886 (-23.88%)
Mutual labels:  osint, redteam
Social Analyzer
API, CLI & Web App for analyzing & finding a person's profile across +1000 social media \ websites (Detections are updated regularly by automated systems)
Stars: ✭ 8,449 (+625.86%)
Mutual labels:  osint, security-tools
Bypass Firewalls By Dns History
Firewall bypass script based on DNS history records. This script will search for DNS A history records and check if the server replies for that domain. Handy for bugbounty hunters.
Stars: ✭ 739 (-36.51%)
Mutual labels:  security-tools, bugbounty
Blackwidow
A Python based web application scanner to gather OSINT and fuzz for OWASP vulnerabilities on a target website.
Stars: ✭ 887 (-23.8%)
Mutual labels:  osint, bugbounty
Jaeles
The Swiss Army knife for automated Web Application Testing
Stars: ✭ 1,073 (-7.82%)
Mutual labels:  security-tools, bugbounty
Linux Secureboot Kit
Tool for complete hardening of Linux boot chain with UEFI Secure Boot
Stars: ✭ 54 (-95.36%)
Mutual labels:  security-tools, security-automation

gitgraberlogo

made with python 3.x

About gitGraber

gitGraber is a tool developed in Python3 to monitor GitHub to search and find sensitive data in real time for different online services such as: Google, Amazon (AWS), Paypal, Github, Mailgun, Facebook, Twitter, Heroku, Stripe, Twilio...

demo

How it works ?

It's important to understand that gitGraber is not designed to check history of repositories, many tools can already do that great. gitGraber was originally developed to monitor and parse last indexed files on GitHub. If gitGraber find something interesting, you will receive a notification on your Slack channel. You can also use it to have results directly on the command line.

In our experience, we are convinced that leaks do not come only from the organizations themselves, but also from service providers and employees, who do not necessarily have a "profile" indicating that they work for a particular organization.

Regex are supposed to be as accurate as possible. Sometimes, maybe you will have false-positive, feel free to contribute to improve recon and add new regex for pattern detection.

We prefer to reduce false positive instead of sending notification for every "standard" API keys which could found by gitGraber but irrelevant for your monitoring.

F.A.Q

Why I only see "Github query" and "Status code : 200" in output ?

gitGraber display some things directly in the CLI: GitHub request, status code abuse detection (200 or 403)... and if you don't see something like [+] POSSIBLE FOO TOKEN FOUND its simply because gitGraber did not find secrets tokens for your defined keyword.

About the error message "Abuse detection reached for token"

This message appears when GitHub detects a large number of requests from your own GitHub token. Don't worry, gitGraber can handle this and it will try to use another token defined in the config.py file. Note: This is a temporary limit and you don't need to create another token.

Do I will receive same tokens for same repository every time that I run gitGraber ?

No, to avoid this, gitGraber stores all repository URLs in a file named rawGitUrls.txt. If a repository has already been scanned by gitGraber and found an API key, you will not receive a notification.

How do I set a blacklisted pattern for a specific token ?

You have to edit the tokens.py file and add the pattern as a list argument when initializing the token. FFor example, to add the pattern XXXX to the MAILCHIMP token, the line tokensList.append(Token('MAILCHIMP', '\W(?:[a-f0-9]{32}(-us[0-9]{1,2}))\W')) becomes tokensList.append(Token('MAILCHIMP', '\W(?:[a-f0-9]{32}(-us[0-9]{1,2}))\W', ['XXXX'])).

Usage

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

For example, to search for a specific word in github in combination with each word of the file keywordsfile.txt and output it to Slack :

python3 gitGraber.py -k keywordsfile.txt -q YOURWORD -s

It is possible to search for a specific domain name for example, but this has to be surrounded by double quotes :

python3 gitGraber.py -k keywordsfile.txt -q \"yahoo.com\" -s

If you want to build a custom wordlist based on the files found on Github to use it then with your favorite fuzzing tool, add argument -w :

python3 gitGraber.py -k keywordsfile.txt -q \"yahoo.com\" -s -w mysuperwordlist.txt

If you want to monitor your search query every 30 mins you can use the -m flag that tells gitGraber to create a cron job based on your query :

python3 gitGraber.py -k keywordsfile.txt -q \"yahoo.com\" -s -m

The above will search for secrets every 30 min on your search query & send you a slack notification whenever there are any hits.

Dependencies

gitGraber needs some dependencies, to install them on your environment:

pip3 install -r requirements.txt

Configuration

Before to start gitGraber you need to modify the configuration file config.py :

  • Add your own Github tokens (Personal access tokens) : GITHUB_TOKENS = ['yourToken1Here','yourToken2Here']
  • Add your own Discord Webhook : DISCORD_WEBHOOKURL = 'https://discordapp.com/api/webhooks/7XXXX/XXXXXX'
  • Add your own Slack Webhook : SLACK_WEBHOOKURL = 'https://hooks.slack.com/services/TXXXX/BXXXX/XXXXXXX'
  • Add your own Telegram Config : TELEGRAM_CONFIG = { "token": "XXXXX:xXXXXXXXXXXXXX", "chat_id": -99999999 }
Service Link
GitHub How to create GitHub API token
Discord How to create Discord Webhook URL
Slack How to create Slack Webhook URL
Telegram How to create Telegram bot

To start gitGraber : python3 gitGraber.py -k wordlists/keywords.txt -q "uber" -s

Which API Keys & services are supported ? (Last update : September 12th, 2019)

Currently, gitGraber supports 31 different tokens. All of these detection models (regex) are stored in the file tokens.py :

  • AWS
  • FACEBOOK
  • GITHUB_CLIENT_SECRET
  • GOOGLE_SECRET
  • GOOGLE_URL
  • GOOGLE_FIREBASE_OR_MAPS
  • GOOGLE_OAUTH_ACCESS_TOKEN
  • HEROKU
  • JSON_WEB_TOKEN
  • MAILCHIMP
  • MAILGUN
  • PAYPAL
  • PRIVATE_SSH_KEY
  • PRIVATE_RSA_KEY
  • PRIVATE_DSA_KEY
  • PRIVATE_EC_KEY
  • PRIVATE_PGP_KEY
  • PRIVATE_OPENSSH_KEY
  • SENDGRID_API_KEY
  • SENSITIVE_URL
  • SLACK_V2
  • SLACK_V1
  • SLACK_WEBHOOK_URL
  • SQUARE_APP_SECRET
  • SQUARE_PERSONAL_ACCESS_TOKEN
  • STRIPE_LIVE_SECRET_KEY
  • STRIPE_LIVE_RESTRICTED_KEY
  • TWITTER
  • TWILIO_AUTH
  • TWILIO_SID
  • TWILIO_API_KEY

Wordlists & Resources

Some wordlists & regex have been created by us and some others are inspired from other repos/researchers :

TODO

  • [X] Add a false positive detection
  • [ ] Add args to only output results (to hide status code and other things)
  • [X] Send only one notification for double tokens (for services like Twilio)
  • [ ] Filter to send notification only if commit date is > to date defined in args
  • [X] Improve "commit date" notification to display something like "[+] Commit date (5 days ago)"
  • [ ] Add args to output results in file
  • [ ] Add multi threads
  • [ ] Improve token cleaning output
  • [X] Add a "combo check" module (for services like Twilio that require two tokens)
  • [X] Add user and org names display in notifications
  • [X] Add commit date
  • [X] Manage rate limit

Authors

Contributors

Thanks for your contribution and for your help to improve gitGraber:

Disclaimer

This project is made for educational and ethical testing purposes only. Usage of this tool for attacking targets without prior mutual consent is illegal. Developers assume no liability and are not responsible for any misuse or damage caused by this tool.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].