Vai al contenuto
New

DeepSeek V4.1 Flash free for 7 days: 10M tokens a day after a top-up of $10 or more. Until Nov 30.

How it works

Recon su GitHub: trovare segreti trapelati nel tuo ambito

Cerca segreti legati a un ambito tuo su GitHub e nel codice pubblico, con github-search, gitleaks e trufflehog, piu la chat di NotHoly.

Intermedio3 min di letturaDi NotHoly

Gli sviluppatori fanno trapelare. Una chiave fissa in un commit, un file di config messo per sbaglio, un hostname interno in un commento: il codice pubblico tiene valore di recon per un ambito tuo o un programma a cui ti sei iscritto. Il lavoro e trovare i repo e gli utenti legati al bersaglio e poi scansionarli con strumenti fatti per i segreti. Tienilo in ambito. Leggi codice pubblico e non accedi mai con nulla che trovi.

Trova i repo e gli utenti

Parti dall'organizzazione e dal dominio. La ricerca codice web di GitHub, da loggato, accetta qualificatori che puoi combinare.

text
"example.com" org:example-inc
"api_key" "example.com"
filename:.env "example.com"

github-search scripta la stessa idea con un token, tirando utenti, repo e corrispondenze di codice per un termine. Il suo script github-subdomains trova hostname citati ovunque nel codice pubblico, una fonte che gli strumenti DNS perdono.

bash
github-subdomains -d example.com -t $GITHUB_TOKEN -o gh-subs.txt

Allarga la rete alle persone attorno all'organizzazione. I dipendenti elencano il loro lavoro nel profilo, cosi una ricerca del nome dell'azienda tra gli utenti fa emergere account i cui repo personali a volte citano strumenti interni. Tieni quelle tracce, ma ricorda di chi e il dato e tratta un account personale con piu cura di uno aziendale.

Scansiona i cloni in cerca di segreti

Avuti i repo, clona quelli in ambito e scansiona in locale. gitleaks legge tutta la storia git, non solo i file attuali, cosi un segreto rimosso dopo salta comunque fuori.

bash
gitleaks detect --source ./example-repo --report-path leaks.json

trufflehog va oltre e verifica molti tipi di segreto provando se la credenziale funziona ancora, il che taglia nettamente i falsi positivi.

bash
trufflehog git https://github.com/example-inc/example-repo --only-verified

Un riscontro verificato e una credenziale viva. Non usarla. Registrala, con il commit e il file, per il report, e lascia che il proprietario la ruoti. Scansionare un grande monorepo richiede tempo, quindi parti dai repo che i tuoi dork hanno gia legato al bersaglio, non da ogni fork e mirror.

Scrivi buone query con la chat

Il dorking di GitHub e un problema di linguaggio: il qualificatore giusto trova la fuga, quello sbagliato la seppellisce. Chiedi alla chat di NotHoly di espandere un seme in un set di query.

text
Le mie radici di ambito sono example.com e example.net, org example-inc.
Scrivi 15 query di ricerca codice su GitHub per trovare segreti trapelati,
hostname interni e file di config legati a queste. Varia i
qualificatori (org, filename, path, language). Una per riga.

Le query le incolli tu stesso nella ricerca di GitHub, non in uno strumento che le esegue per te. Il modello legge bene anche un report di gitleaks: incolla il JSON e chiedi di raggruppare i riscontri per tipo di segreto e ordinarli per quanto e probabile che ciascuno sia reale e in ambito.

Ambito e privacy

Il codice pubblico spesso appartiene a persone, non all'azienda bersaglio. Il repo personale di un dipendente e il dato di una persona, e il suo vecchio progetto secondario non e nel tuo ambito. Resta sui repo dell'organizzazione o chiaramente legati all'infrastruttura del bersaglio. Non autenticarti mai con una credenziale trapelata, non fare mai push di un commit e segnala i segreti tramite il canale del programma cosi vengono ruotati.

Domande frequenti

Leggere un segreto trovato e un problema?

Leggere codice pubblico e una cosa; usare una credenziale che hai trovato e un'altra, e puo superare una linea di uso illecito di computer anche dentro un programma di bug bounty. Segnalalo e non testarlo accedendo.

E i vecchi commit che sono stati cancellati?

Git conserva la storia. Un segreto rimosso in un commit successivo sta ancora in quello precedente, ed e proprio per questo che gitleaks e trufflehog scansionano tutta la storia e non l'albero attuale.

La ricerca di codice completa le tue fonti automatiche. Poi affina la parte manuale in dorking sui motori che funziona. Torna a certificate transparency e storia DNS.

Fonti

  1. github-search, repository
  2. gitleaks, repository
  3. trufflehog, repository
  4. GitHub, searching code
  5. GitHub, about secret scanning

Altro su OSINT e recon

OSINT e recon

Flusso OSINT da zero, con IA come copilota

Flusso OSINT ripetibile per un bersaglio che puoi guardare: definisci ambito, raccogli a fasi, correla e la chat di NotHoly riassume.

Base3 min di lettura