
Raccoglitore di email, sottodomini e nomi - OSINT

theHarvester raccoglie informazioni open-source (OSINT) su un dominio o un'organizzazione da motori di ricerca, log di trasparenza dei certificati, dataset DNS, repository di codice, piattaforme di threat intelligence e altre fonti pubbliche. Normalizza nomi host, indirizzi email, indirizzi IP, URL, ASN, persone, nomi di violazioni e prove strutturate da azioni opzionali.
Usa theHarvester durante la fase iniziale di ricognizione di una valutazione di sicurezza autorizzata. Eseguilo solo contro target di tua proprietà o per i quali hai esplicita autorizzazione al test.
theHarvester richiede Python 3.14 e uv. Il file .python-version del repository consente a uv di selezionare automaticamente la versione di Python richiesta:
git clone https://github.com/laramies/theHarvester.git
cd theHarvester
uv sync
uv run theHarvester -d example.com -b crtsh,certspotter
Questa prima esecuzione utilizza due fonti passive P0 che non richiedono una chiave API. Passivo significa che il target non viene contattato direttamente, ma i provider selezionati ricevono comunque la stringa del target. Il terminale riporta l'esito di ciascuna fonte e qualsiasi risultato conservato. Una fonte può completare con zero risultati, interrompersi anticipatamente con prove parziali oppure fallire senza cancellare le prove conservate dalle altre fonti.
Consulta la guida all'installazione per le distribuzioni pacchettizzate e la configurazione specifica per piattaforma.
| Interfaccia | Ideale per | Inizia con |
|---|---|---|
| CLI | Ricognizione una tantum e flussi di lavoro da shell | uv run theHarvester -h |
| HarvestView | Cronologia delle esecuzioni locali, revisione delle prove, modifiche ai nomi host e pianificazioni | uv run harvestview |
| REST API | Automazione e integrazioni locali autenticate | http://127.0.0.1:5000/docs |
La CLI, la REST API e HarvestView condividono un unico motore di esecuzione finita e un modello di prove normalizzato. HarvestView fornisce l'interfaccia locale nel browser.
Interroga diverse fonti passive P0:
uv run theHarvester -d example.com -b crtsh,certspotter,commoncrawl
Tre sorgenti di discovery vengono eseguite contemporaneamente per impostazione predefinita. Usa -j o --source-workers per modificare il numero di worker. Ogni sorgente selezionata viene comunque eseguita.
Esegui ogni sorgente che può contribuire con sottodomini:
uv run theHarvester -d example.com -b subdomains
Combina i selettori di capacità, oppure mescolali con nomi di sorgente espliciti:
uv run theHarvester -d example.com -b emails,urls,certspotter
I selettori di capability formano un'unione e scelgono quali sorgenti eseguire. Non scartano gli altri tipi di risultato restituiti da quelle sorgenti. I selettori disponibili sono subdomains, emails, ips, asns, urls, people e breaches. -b all esegue ogni sorgente passiva P0 catalogata. Le sorgenti DNS P1 e dirette P2 richiedono una selezione esplicita.
Passa --limit 0 per rimuovere il limite condiviso di risultati per sorgente e i limiti locali di pagina. Le quote del provider e le salvaguardie di runtime restano comunque applicate. Se un provider o un limite di sicurezza interrompe una sorgente dopo aver conservato i risultati, l'esecuzione li mantiene e registra un esito parziale con il motivo dell'interruzione.
Escludi i risultati di tipo hostname mantenendo gli altri tipi di risultato:
uv run theHarvester -d example.com -b emails,ips,urls --no-hosts -f non-host-results
--no-hosts salta le sorgenti basate solo su hostname e omette i risultati hostname mantenendo gli altri tipi di risultato. Non può essere combinato con azioni che dipendono dagli hostname. HarvestView e la REST API espongono la stessa opzione come no_hosts.
Salva i risultati come JSONL:
uv run theHarvester -d example.com -b crtsh,certspotter -f report
Questo genera report.jsonl per l'automazione e lo scambio, oltre ai report di compatibilità report.json e report.xml. Le esecuzioni completate vengono inoltre conservate nell'archivio locale di evidenze SQLite.
Risolvi gli host scoperti per un dominio autorizzato con l'elenco di resolver predefinito:
AUTHORIZED_DOMAIN='replace-with-a-domain-you-control'
uv run theHarvester -d "$AUTHORIZED_DOMAIN" -b crtsh,certspotter -r
Elenca ogni opzione e il suo comportamento attuale:
uv run theHarvester -h
P0, P1 e P2 descrivono un comportamento di rete osservabile, non il livello di confidenza o l'importanza.
| Classe | Comportamento di rete | Esempi |
|---|---|---|
| P0 | Interroga un provider o un dataset esistente senza indirizzare il traffico verso il target | Provider di ricerca, certificate transparency, codice e DNS passivo |
| P1 | Interroga il DNS su nomi o indirizzi autorizzati | Risoluzione, brute force, DNS ricorsivo e reverse lookup |
| P2 | Contatta un endpoint del target o causa un'interazione diretta equivalente | HTTP, TLS, screenshot, controlli di takeover, virtual host, porte e percorsi API |
Le attività P1 e P2 vengono eseguite solo quando le selezioni. Un hostname, una rete, un ASN o un URL correlato scoperto rimane un'evidenza da esaminare e non amplia automaticamente il target autorizzato. L'hostname esatto è importante: www.example.test e example.test sono target diversi a meno che l'incarico non autorizzi entrambi.
Le opzioni attive comuni includono la risoluzione DNS (-r), il brute force DNS (-c), il reverse DNS (-n), il DNS ricorsivo (--dns-recursive-depth), i controlli di takeover (-t), la scansione dei percorsi API (-a) e gli screenshot (--screenshot). Un indicatore di takeover è un'evidenza da esaminare, non la prova che una risorsa di un provider possa essere rivendicata.
Leggi Responsible use and scope prima di svolgere attività attive. Operator workflows tratta limiti, resolver, proxy e comportamento specifico delle azioni. Con la modalità proxy esplicita abilitata, le attività di discovery e le azioni supportate falliscono in modo sicuro quando non è disponibile alcun proxy, invece di inviare una richiesta diretta.