
Halbautomatisiertes, feedbackgesteuertes Tool zum schnellen Durchsuchen von Unmengen öffentlicher Daten auf GitHub nach sensiblen Geheimnissen.
GitGot ist ein halbautomatisches, feedbackgesteuertes Tool, das Benutzern ermöglicht, schnell durch große Mengen öffentlicher Daten auf GitHub nach sensiblen Geheimnissen zu suchen.
Während Suchsitzungen geben Benutzer GitGot Feedback zu Suchergebnissen, die ignoriert werden sollen, und GitGot reduziert die Ergebnismenge. Benutzer können Dateien nach Dateiname, Repository-Name, Benutzername oder einer unscharfen Übereinstimmung des Dateiinhalts auf die Blacklist setzen.
Blacklists aus früheren Sitzungen können gespeichert und für ähnliche Abfragen wiederverwendet werden (z. B. example.com vs. subdomain.example.com vs. Example Org). Sitzungen können jederzeit pausiert und fortgesetzt werden.
Lesen Sie mehr über das halbautomatische, menschliche Design hier: https://bishopfox.com/blog/semi-automated-vs-automated-security-tools.
[1] Installieren Sie die ssdeep-Abhängigkeit für unscharfes Hashing.
Ubuntu/Debian (oder entsprechendes für Ihre Distribution):
apt-get install python3-dev libfuzzy-dev ssdeep
oder für Mac OSX:
brew install ssdeep
Für Windows oder *nix-Distributionen ohne das ssdeep-Paket finden Sie die ssdeep-Installationsanweisungen.
[2] Nach der Installation von ssdeep installieren Sie die Python-Abhängigkeiten mit pip:
pip3 install -r requirements.txt
Führen Sie gitgot-docker.sh aus, um das GitGot-Docker-Image zu erstellen (falls es nicht bereits existiert) und die dockerisierte Version des GitGot-Tools auszuführen.
Beim Aufruf erstellt und mountet gitgot-docker.sh die Verzeichnisse logs und states aus dem aktuellen Arbeitsverzeichnis des Hosts. Wenn gitgot-docker.sh aus dem GitGot-Projektverzeichnis ausgeführt wird, aktualisiert es den Docker-Container mit Änderungen an gitgot.py oder checks/:
./gitgot-docker.sh -q example.com
(Siehe gitgot-docker.sh für spezifische Docker-Befehle)
GitHub erfordert ein Token für Rate-Limiting-Zwecke. Erstellen Sie ein GitHub-API-Token mit keinen Berechtigungen/keinem Umfang. Dies entspricht dem öffentlichen GitHub-Zugriff, erlaubt jedoch die Nutzung der GitHub-Such-API. Setzen Sie dieses Token oben in gitgot.py wie unten gezeigt:
ACCESS_TOKEN = "<NO-PERMISSION-GITHUB-TOKEN-HERE>"
(Alternativ kann dieses Token als Umgebungsvariable GITHUB_ACCESS_TOKEN gesetzt werden)
Nach dem Hinzufügen des Tokens sind Sie startbereit:
# Default RegEx list and logfile location (/logs/<query>.log) are used when no others are specified.
# Query for the string "example.com" using default GitHub search behavior (i.e., tokenization).
# This will find com.example (e.g., Java) or example.com (Website)
./gitgot.py -q example.com
# Query self-hosted GitHub instance
./gitgot.py -q example.com -u https://git.example.com
# Query for the exact string "example.com". See Query Syntax in the next section for more details.
./gitgot.py -q '"example.com"'
# Query through GitHub gists
./gitgot.py --gist -q CompanyName
# Using GitHub advanced search syntax
./gitgot.py -q "org:github cats"
# Custom RegEx List and custom log files location
./gitgot.py -q example.com -f checks/default.list -o example1.log
# Recovery from existing session
./gitgot.py -q example.com -r example.com.state
# Using an existing session (w/blacklists) for a new query
./gitgot.py -q "Example Org" -r example.com.state
GitGot-Abfragen werden direkt an die GitHub-Code-Such-API übergeben. Weitere Informationen zur erweiterten Abfragesyntax finden Sie in der GitHub-Dokumentation.
/(secretToken))