
Personal Access Token (PAT) Recon-Tool für Bug-Bounty-Jäger, Pentester und Red Teams

Hast du jemals einen GitHub- oder NPM-Personal-Access-Token (PAT) gefunden und dich gefragt: "Ist dieser gültig?" oder "Was könnte ein Bösewicht damit anstellen?" Nun, falls ja, habe ich das passende Tool für dich!
Hier ist gimmePatz, ein umfassendes Reconnaissance-Tool für PATs. gimmePATz verrät dir, ob ein PAT gültig ist und um welche Art von PAT es sich handelt. Es liefert Informationen über das Benutzerkonto, das den PAT erstellt hat, einschließlich der Organisationen, denen dieser Benutzer angehört, und wie viele Follower er hat. gimmePATz zeigt dir, welche Bereiche (Scopes) ein PAT besitzt und auf welche Variablen oder Secrets der PAT Zugriff hat. Außerdem listet gimmePATz die Repositories, NPM-Pakete oder GitHub-Organisationen auf, mit denen der PAT verknüpft ist, und gibt dir genau an, welche Berechtigungen der PAT für jede Ressource hat. Dieses Tool richtet sich an Offensiv-Sicherheitsexperten wie Bug-Bounty-Jäger, Pentester und Red Teams. Durch die Nutzung dieses Tools erklärst du dich damit einverstanden, es in einem legalen Kontext einzusetzen.
Du kannst gimmePATz auf eine Datei anweisen, und es wird alle darin enthaltenen PATs finden und dir mitteilen, ob sie gültig sind. gimmePATz unterstützt auch die JSON-Ausgabe, sodass du die Ausgabe als JSON speichern und/oder die Ausgabe von gimmePATz in andere Tools wie jq weiterleiten kannst. Im Abschnitt "Erweiterte Nutzung" unten findest du einige Beispiele für die verschiedenen Einsatzmöglichkeiten von gimmePATz.
gimmepatz.py TOKEN
requests-Bibliothek # pip install requestsgit (für das Herunterladen von Repositories)# Secrets und Variablen entdecken
gimmepatz.py TOKEN --variables
# Organisations-Repositories einbeziehen
gimmepatz.py TOKEN --org GITHUB_ORGANISATION
# JSON-Ausgabe für Skripte
gimmepatz.py TOKEN --json
# Kombiniert: Organisations-Repos + JSON-Ausgabe
gimmepatz.py TOKEN --org GITHUB_ORGANISATION --json
# Ausgabe von gimmePATz als JSON in einer Datei speichern
gimmepatz.py TOKEN --variables --org target-org --json > assessment.json
# Alle zugänglichen Repositories herunterladen
gimmepatz.py TOKEN --download
# Nur private Repositories herunterladen
gimmepatz.py TOKEN --download --download-type private
# Benutzerdefinierter Download-Pfad
gimmepatz.py TOKEN --download --download-path ./target-repos
# Eine Datei scannen, um festzustellen, ob sie PATs enthält
gimmepatz.py --scan ./example-file.json
Skript klonen oder herunterladen
git clone https://github.com/6mile/gimmepatz.git
cd ./gimmepatz/ && chmod u+x ./gimmepatz.py
_ ______ ___ _____
(_) | ___ \/ _ \_ _|
__ _ _ _ __ ___ _ __ ___ ___| |_/ / /_\ \| |____
/ _` | | '_ ` _ \| '_ ` _ \ / _ \ __/| _ || |_ /
| (_| | | | | | | | | | | | | __/ | | | | || |/ /
\__, |_|_| |_| |_|_| |_| |_|\___\_| \_| |_/\_/___/
__/ |
|___/ "Personal Access Token Recon-Tool"
----------------------------------------------------
von @6mile
✅ Token ist gültig
👤 Authentifiziert als: octocat
Name: Octocat Maclean
Kontotyp: Benutzer
Öffentliche Repos: 4
Private Repos: 3
Follower: 9714
Folgt: 731
🏢 Organisations-Mitgliedschaften (insgesamt 2):
👤 Space-Force-Beta (Mitglied)
Name: Space-Force-Beta
Beschreibung: Baut cooles Zeug für das Weltall
Öffentliche Repos: 2
Private Repos: 1
URL: https://github.com/Space-Force-Beta
👑 ThrifyBank (Admin)
Beschreibung: Die sparsamste Neo-Bank in Kansas!
Öffentliche Repos: 1
Private Repos: 5
URL: https://github.com/thrifybank-kansas
🔑 Token-Bereiche (insgesamt 14):
• codespace:secrets
• notifications
• read:audit_log
• read:discussion
• read:enterprise
• read:org
• read:packages
• read:project
• read:public_key
• read:repo_hook
• read:user
• repo
• user:email
• workflow
Bereichsbeschreibungen:
--------------------------------------------------
repo: Vollständiger Zugriff auf Repositories
user: Zugriff auf Benutzerprofilinformationen
notifications: Zugriff auf Benachrichtigungen
📊 Rate-Limit-Status:
Limit: 5000
Verbleibend: 4999
Reset-Zeit: 1234567890
📁 Zugängliche Repositories:
25 zugängliche Repositories gefunden:
• 15 private Repositories
• 10 öffentliche Repositories
🔒 Private Repositories (9):
📂 octocat (3 private Repos):
• octocat/internal-api (Admin)
• octocat/database (Admin)
• octocat/external-api (Admin)
📂 Space-Force-Beta (1 privates Repo):
• Space-Force-Beta/destrukto-beam (Admin)
📂 ThriftyBank (5 private Repos):
• thriftybank-kansas/web (Admin)
• thriftybank-kansas/docker (Admin)
• thriftybank-kansas/database-int (Admin)
• thriftybank-kansas/bank-vault (Admin)
• thriftybank-kansas/SAAS-PORTAL (Admin)
🔓 Öffentliche Repositories (7):
📂 octocat (4 öffentliche Repos):
• octocat/sdk (Admin)
• octocat/helpdesk-docs (Admin)
• octocat/aws-sdk-helpers (Admin)
• octocat/stinkyCaptain (Admin)
📂 Space-Force-Beta (1 öffentliches Repo):
• Space-Force-Beta/destrukto-beam (Admin)
📂 thrifybank-kansas (1 öffentliches Repo):
• thrifybank-kansas/node-restify (Admin)
{
"token_valid": true,
"user_info": {
"login": "octocat",
"name": "The Octocat",
"type": "User",
"id": 1
},
"scopes": ["repo", "user", "notifications"],
"rate_limit": {
"limit": 5000,
"remaining": 4999,
"reset": 1234567890
},
"repositories": {
"total": 25,
"private": [
{
"name": "mycompany/internal-api",
"owner": "mycompany",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"url": "https://github.com/mycompany/internal-api"
}
],
"public": [
{
"name": "octocat/awesome-project",
"owner": "octocat",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"url": "https://github.com/octocat/awesome-project"
}
]
},
"summary": {
"total_repos": 25,
"private_count": 15,
"public_count": 10,
"owners": ["mycompany", "octocat"]
}
}
export TOKEN="dein_token_hier"
gimmepatz.py "$TOKEN"
"Ungültiger Token oder Netzwerkfehler"
"Keine Repositories gefunden"
--org Organisations-Repositories einbeziehen musstRate-Limit überschritten
200: Erfolg401: Ungültige Anmeldedaten (ungültiger Token)403: Rate-Limit überschritten oder unzureichende Berechtigungen404: Ressource nicht gefunden (Benutzer/Organisation existiert nicht)Beiträge sind willkommen! Bitte zögere nicht, einen Pull-Request einzureichen. Bei größeren Änderungen eröffne bitte zuerst ein Issue, um zu besprechen, was du ändern möchtest.
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die LICENSE-Datei für Details.
--download hinzugefügtMit ❤️ gemacht von @6mile für meine Offsec-Homies
| Option | Beschreibung |
|---|
--json | Ausgabe im JSON-Format |
--variables, --var | GitHub-Variablen und -Secrets auflisten |
--var-target | Zielbereich: all, user, repo, org |
--var-name | Bestimmter Repository- oder Organisationsname |
--download | Alle zugänglichen Repositories herunterladen |
--download-path | Benutzerdefiniertes Download-Verzeichnis (Standard: repos) |
--download-type | Filter: all, private, public |
--org | Bestimmte GitHub-Organisationsanalyse einbeziehen |
--debug | Ausführliche Debug-Ausgabe aktivieren |
--scan | Lokale Dateien nach PATs durchsuchen |
| Scope | Beschreibung |
|---|
repo | Vollständiger Zugriff auf Repositories |
public_repo | Nur Zugriff auf öffentliche Repositories |
repo:status | Zugriff auf Commit-Status |
repo_deployment | Zugriff auf Bereitstellungsstatus |
user | Zugriff auf Benutzerprofilinformationen |
user:email | Zugriff auf Benutzer-E-Mail-Adressen |
user:follow | Zugriff zum Folgen/Entfolgen von Benutzern |
admin:org | Vollständiger Zugriff auf Organisation, Teams und Mitgliedschaften |
write:org | Schreibzugriff auf Organisation und Teams |
read:org | Lesezugriff auf Organisation und Teams |
gist | Schreibzugriff auf Gists |
notifications | Zugriff auf Benachrichtigungen |
workflow | Zugriff auf GitHub Actions Workflows |
write:packages | Schreibzugriff auf GitHub-Pakete |
read:packages | Lesezugriff auf GitHub-Pakete |
delete_repo | Löschzugriff auf Repositories |