
Strumento di ricognizione per Personal Access Token (PAT) per cacciatori di bug bounty, penetration tester e red team

Ti è mai capitato di trovare un personal access token (PAT) di GitHub o NPM e chiederti "Sarà valido?" oppure "Chissà cosa potrebbe farci un malintenzionato?" Beh, se è così, ho lo strumento che fa per te!
Ti presento gimmePatz, uno strumento di ricognizione completo per i PAT. gimmePATz ti dice se un PAT è valido e di che tipo di PAT si tratta. Fornisce informazioni sull'account utente che ha creato il PAT, incluse le organizzazioni di cui l'utente fa parte e il numero di follower. gimmePATz mostra anche quali scope ha un PAT e a quali variabili o secret il PAT ha accesso. Inoltre, gimmePATz elenca i repository, i pacchetti NPM o le organizzazioni GitHub a cui il PAT è associato, e ti dice esattamente quali permessi il PAT ha su ciascuna risorsa. Questo strumento è pensato per chi opera nella sicurezza offensiva, come bug bounty hunter, penetration tester e red team. Utilizzando questo strumento, accetti di usarlo in un contesto legale.
Puoi puntare gimmePATz a un file e troverà tutti i PAT presenti in quel file, facendoti sapere se sono validi. gimmepatz supporta anche l'output JSON, così puoi salvare l'output in JSON e/o reindirizzarlo ad altri strumenti come jq. Puoi vedere alcuni esempi dei diversi modi di usare gimmePATz nella sezione "Advanced Usage" qui sotto.
gimmepatz.py TOKEN
requests # pip install requestsgit (per il download dei repository)# Scopri secret e variabili
gimmepatz.py TOKEN --variables
# Includi i repository delle organizzazioni
gimmepatz.py TOKEN --org GITHUB_ORGANIZATION
# Output JSON per lo scripting
gimmepatz.py TOKEN --json
# Combinato: repository dell'organizzazione + output JSON
gimmepatz.py TOKEN --org GITHUB_ORGANIZATION --json
# Salva l'output di gimmePATz in formato JSON su un file
gimmepatz.py TOKEN --variables --org target-org --json > assessment.json
# Scarica tutti i repository accessibili
gimmepatz.py TOKEN --download
# Scarica solo i repository privati
gimmepatz.py TOKEN --download --download-type private
# Posizione di download personalizzata
gimmepatz.py TOKEN --download --download-path ./target-repos
# Analizza un file per verificare se contiene PAT
gimmepatz.py --scan ./example-file.json
Clona o scarica lo 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="your_token_here"
gimmepatz.py "$TOKEN"
"Token non valido o errore di rete"
"Nessun repository trovato"
--orgLimite di velocità superato
200: Successo401: Credenziali errate (token non valido)403: Limite di velocità superato o permessi insufficienti404: Risorsa non trovata (utente/organizzazione inesistente)I contributi sono benvenuti! Sentiti libero di inviare una Pull Request. Per modifiche importanti, apri prima una issue per discutere cosa vorresti cambiare.
Questo progetto è concesso in licenza con la MIT License - consulta il file LICENSE per i dettagli.
--downloadFatto con ❤️ da @6mile per i miei compagni di offsec
| Opzione | Descrizione |
|---|
--json | Restituisce i risultati in formato JSON |
--variables, --var | Enumera variabili e secret di GitHub |
--var-target | Ambito di destinazione: all, user, repo, org |
--var-name | Nome specifico del repository o dell'organizzazione |
--download | Scarica tutti i repository accessibili |
--download-path | Directory di download personalizzata (default: repos) |
--download-type | Filtro: all, private, public |
--org | Includi l'analisi di una specifica organizzazione GitHub |
--debug | Abilita l'output di debug dettagliato |
--scan | Analizza file locali alla ricerca di PAT |
| Scope | Descrizione |
|---|
repo | Accesso completo ai repository |
public_repo | Accesso ai soli repository pubblici |
repo:status | Accesso allo stato dei commit |
repo_deployment | Accesso agli stati di deployment |
user | Accesso alle informazioni del profilo utente |
user:email | Accesso agli indirizzi email dell'utente |
user:follow | Accesso per seguire/smettere di seguire utenti |
admin:org | Accesso completo a organizzazioni, team e membership |
write:org | Accesso in scrittura a organizzazioni e team |
read:org | Accesso in lettura a organizzazioni e team |
gist | Accesso in scrittura ai gist |
notifications | Accesso alle notifiche |
workflow | Accesso ai workflow di GitHub Actions |
write:packages | Accesso in scrittura ai pacchetti GitHub |
read:packages | Accesso in lettura ai pacchetti GitHub |
delete_repo | Accesso alla cancellazione dei repository |