
Outil de reconnaissance de jetons d'accès personnel (PAT) pour les chasseurs de primes de bugs, les testeurs d'intrusion et les équipes rouges.

Avez-vous déjà trouvé un jeton d'accès personnel (PAT) GitHub ou NPM et vous êtes demandé « Est-ce qu'il est valide ? » ou « Je me demande ce qu'un méchant pourrait faire avec ça ? » Si oui, j'ai l'outil qu'il vous faut !
Découvrez gimmePatz, un outil complet de reconnaissance pour les PAT. gimmePATz vous indique si un PAT est valide et de quel type il s'agit. Il fournit des informations sur le compte utilisateur qui a créé le PAT, y compris les organisations dont cet utilisateur fait partie et le nombre de ses abonnés. gimmePATz vous montre les périmètres (scopes) d'un PAT et les variables ou secrets auxquels il a accès. gimmePATz liste également les dépôts, les paquets NPM ou les organisations GitHub auxquels le PAT est rattaché, et vous indique exactement les permissions du PAT sur chaque ressource. Cet outil est conçu pour les professionnels de la sécurité offensive, comme les chasseurs de bugs, les pentesteurs et les équipes rouges. En utilisant cet outil, vous acceptez de l'utiliser dans un contexte légal.
Vous pouvez pointer gimmePATz vers un fichier ; il trouvera tous les PAT dans ce fichier et vous indiquera s'ils sont valides. gimmePATz prend également en charge la sortie JSON, vous permettant ainsi d'enregistrer la sortie en JSON et/ou de rediriger la sortie de gimmePATz vers d'autres outils comme jq. Vous trouverez quelques exemples des différentes façons d'utiliser gimmePATz dans la section « Utilisation avancée » ci-dessous.
gimmepatz.py TOKEN
requests # pip install requestsgit (pour le téléchargement de dépôts)# Découvrir les secrets et variables
gimmepatz.py TOKEN --variables
# Inclure les dépôts d'une organisation
gimmepatz.py TOKEN --org GITHUB_ORGANIZATION
# Sortie JSON pour l'écriture de scripts
gimmepatz.py TOKEN --json
# Combiné : dépôts d'organisation + sortie JSON
gimmepatz.py TOKEN --org GITHUB_ORGANIZATION --json
# Sauvegarder la sortie de gimmePATz en JSON dans un fichier
gimmepatz.py TOKEN --variables --org target-org --json > assessment.json
# Télécharger tous les dépôts accessibles
gimmepatz.py TOKEN --download
# Télécharger uniquement les dépôts privés
gimmepatz.py TOKEN --download --download-type private
# Emplacement de téléchargement personnalisé
gimmepatz.py TOKEN --download --download-path ./target-repos
# Analyser un fichier pour voir s'il contient des PAT
gimmepatz.py --scan ./example-file.json
Clonez ou téléchargez le script
git clone https://github.com/6mile/gimmepatz.git
cd ./gimmepatz/ && chmod u+x ./gimmepatz.py
_ ______ ___ _____
(_) | ___ \/ _ \_ _|
__ _ _ _ __ ___ _ __ ___ ___| |_/ / /_\ \| |____
/ _` | | '_ ` _ \| '_ ` _ \ / _ \ __/| _ || |_ /
| (_| | | | | | | | | | | | | __/ | | | | || |/ /
\__, |_|_| |_| |_|_| |_| |_|\___\_| \_| |_/\_/___|
__/ |
|___/ "Personal Access Token recon tool"
----------------------------------------------------
by @6mile
✅ Token is valid
👤 Authenticated as: octocat
Name: Octocat Maclean
Account type: User
Public repos: 4
Private repos: 3
Followers: 9714
Following: 731
🏢 Organization Memberships (2 total):
👤 Space-Force-Beta (member)
Name: Space-Force-Beta
Description: Building cool stuff for space
Public repos: 2
Private repos: 1
URL: https://github.com/Space-Force-Beta
👑 ThrifyBank (admin)
Description: The thriftiest Neo Bank in Kansas!
Public repos: 1
Private repos: 5
URL: https://github.com/thrifybank-kansas
🔑 Token Scopes (14 total):
• 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
Scope Descriptions:
--------------------------------------------------
repo: Full access to repositories
user: Access to user profile information
notifications: Access to notifications
📊 Rate Limit Status:
Limit: 5000
Remaining: 4999
Reset time: 1234567890
📁 Accessible Repositories:
Found 25 accessible repositories:
• 15 private repositories
• 10 public repositories
🔒 Private Repositories (9):
📂 octocat (3 private repos):
• octocat/internal-api (admin)
• octocat/database (admin)
• octocat/external-api (admin)
📂 Space-Force-Beta (1 private repos):
• 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)
🔓 Public Repositories (7):
📂 octocat (4 public repos):
• octocat/sdk (admin)
• octocat/helpdesk-docs (admin)
• octocat/aws-sdk-helpers (admin)
• octocat/stinkyCaptain (admin)
📂 Space-Force-Beta (1 public repos):
• Space-Force-Beta/destrukto-beam (admin)
📂 thrifybank-kansas (1 public repos):
• 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="votre_token_ici"
gimmepatz.py "$TOKEN"
« Jeton invalide ou erreur réseau »
« Aucun dépôt trouvé »
--orgLimite de taux dépassée
200 : Succès401 : Identifiants incorrects (jeton invalide)403 : Limite de taux dépassée ou permissions insuffisantes404 : Ressource non trouvée (l'utilisateur/l'organisation n'existe pas)Les contributions sont les bienvenues ! N'hésitez pas à soumettre une Pull Request. Pour les changements importants, veuillez d'abord ouvrir une issue pour discuter de ce que vous souhaitez modifier.
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
Fait avec ❤️ par @6mile pour mes potes offsec
| Option | Description |
|---|
--json | Afficher les résultats au format JSON |
--variables, --var | Énumérer les variables et secrets GitHub |
--var-target | Périmètre cible : all, user, repo, org |
--var-name | Nom spécifique du dépôt ou de l'organisation |
--download | Télécharger tous les dépôts accessibles |
--download-path | Répertoire de téléchargement personnalisé (défaut : repos) |
--download-type | Filtre : all, private, public |
--org | Inclure l'analyse d'une organisation GitHub spécifique |
--debug | Activer les sorties de débogage verbeuses |
--scan | Analyser les fichiers locaux à la recherche de PAT |
| Périmètre | Description |
|---|
repo | Accès complet aux dépôts |
public_repo | Accès aux dépôts publics uniquement |
repo:status | Accès aux statuts de commit |
repo_deployment | Accès aux statuts de déploiement |
user | Accès aux informations du profil utilisateur |
user:email | Accès aux adresses e-mail de l'utilisateur |
user:follow | Accès pour suivre/ne plus suivre des utilisateurs |
admin:org | Accès complet à l'organisation, aux équipes et aux adhésions |
write:org | Accès en écriture à l'organisation et aux équipes |
read:org | Accès en lecture à l'organisation et aux équipes |
gist | Accès en écriture aux gists |
notifications | Accès aux notifications |
workflow | Accès aux workflows GitHub Actions |
write:packages | Accès en écriture aux paquets GitHub |
read:packages | Accès en lecture aux paquets GitHub |
delete_repo | Accès à la suppression de dépôts |