
Strumento di ricognizione OSINT per la scoperta di rete, enumerazione dei sottodomini, arricchimento degli IP e rilevamento di segreti tramite log dei certificati, Shodan e ricerca del codice su GitHub—tutto senza chiavi API.
<p align="center">
<img alt="Metabigor" src="https://assets.kitploit.com/production/public/readmes/2602/a91acb0c74fbed7b623c138dcc568e51b46b54c20992493fa0be6f3dea3d9c1d.png" height="140" />
<br />
<strong>Metabigor - potenza OSINT senza il fastidio delle chiavi API</strong>
<p align="center">
<a href="https://docs.osmedeus.org/donation/"><img src="https://img.shields.io/badge/Sponsors-0078D4?style=for-the-badge&logo=GitHub-Sponsors&logoColor=39ff14&labelColor=black&color=black"></a>
<a href="https://twitter.com/OsmedeusEngine"><img src="https://img.shields.io/badge/@OsmedeusEngine-0078D4?style=for-the-badge&logo=Twitter&logoColor=39ff14&labelColor=black&color=black"></a>
<a href="https://github.com/j3ssie/osmedeus/releases"><img src="https://img.shields.io/github/release/j3ssie/metabigor?style=for-the-badge&labelColor=black&color=2fc414&logo=Github"></a>
</p>
</p>
***
## Cos'è Metabigor?
Metabigor mappa l'infrastruttura di un target senza chiederti di registrarti per una qualsiasi chiave API.
Intervalli di rete, certificati, domini correlati, porte esposte, vendor CDN e fughe di codice: tutto
da fonti gratuite, tutto componibile in pipe tra loro.
## Funzionalità
- **Scoperta di rete** - trova intervalli IP (CIDR) da un ASN, un'organizzazione, un dominio o un IP
- **Trasparenza dei certificati** - scopri sottodomini tramite crt.sh
- **Arricchimento IP** - porte, hostname e CVE tramite Shodan InternetDB (gratuito, senza chiave)
- **Ricerca codice GitHub** - trova segreti, credenziali e sottodomini nei repository pubblici tramite grep.app
- **Clustering IP** - raggruppa gli IP per ASN per mappare l'infrastruttura
- **Domini correlati** - pivot tramite log dei certificati, reverse WHOIS e ID analytics
- **Rilevamento CDN/WAF** - separa gli indirizzi protetti dalle origini candidate
- **Raccolta URL** - ogni URL visto dagli archivi web, inclusi gli endpoint estratti dai WARC
## Installazione
```bash
npm install -g @j3ssie/metabigor # macOS, Linux, Windows
brew install j3ssie/tap/metabigor # macOS, Linux
```
Entrambi includono lo stesso binario precompilato per la tua piattaforma: non serve il toolchain Go.
Oppure compila dai sorgenti:
```bash
git clone https://github.com/j3ssie/metabigor.git
cd metabigor
make build # binary at ./bin/metabigor
```
Oppure scarica un binario dalla [pagina delle release](https://github.com/j3ssie/metabigor/releases).
## Il tour in 30 secondi
```bash
metabigor net AS13335 # network ranges behind an ASN
metabigor cert hackerone.com # subdomains from certificate logs
metabigor ip 1.1.1.1 # open ports and CVEs for an IP
metabigor related tesla.com # other domains the target owns
metabigor cdn --exclude -I ips.txt # candidate origin servers
```
## Come funziona ogni comando
Le stesse convenzioni valgono ovunque, quindi una volta imparato un comando li conosci tutti.
### Quattro modi per passare i target
```bash
metabigor cert example.com # as an argument
metabigor cert example.com tesla.com # several arguments
metabigor cert -i example.com # with -i
metabigor cert -I domains.txt # from a file, one per line (# comments are ignored)
cat domains.txt | metabigor cert # on stdin
```
Si combinano e la lista risultante viene deduplicata:
```bash
metabigor cluster 1.1.1.1 -i 8.8.8.8 -I more-ips.txt
```
Gli argomenti sono la via più diretta e funzionano su ogni comando. Ricorri a `-i` quando il target
sembrerebbe altrimenti un flag, o quando uno script costruisce il comando per te:
```bash
metabigor github -i "--endpoint-url"
metabigor net --input "$TARGET" -f json
```
Lo stdin viene letto solo quando il target non è stato fornito in nessun altro modo, quindi `metabigor net AS13335` non si blocca mai in attesa di input dentro uno script o un job CI.
### Un solo flag per la forma dell'output
`-f/--format` funziona su ogni comando:
| Formato | Cosa ottieni | A cosa serve |
|---|---|---|
| `text` *(predefinito)* | Colonne leggibili | Leggere in un terminale |
| `flat` | Il solo valore primario | Pipe verso altri strumenti |
| `json` | Un oggetto JSON per riga | `jq`, automazione |
| `csv` | Righe sotto un'unica intestazione | Fogli di calcolo, report |
```bash
metabigor ip 1.1.1.0/28 # 1.1.1.1 | 80,443 | one.one.one.one
metabigor ip 1.1.1.0/28 -f flat # 1.1.1.1:80
metabigor ip 1.1.1.0/28 -f json # {"ip":"1.1.1.1","ports":[80,443],...}
metabigor ip 1.1.1.0/28 -f csv -o ports.csv
```
I risultati vanno sempre su stdout e i log sempre su stderr, così le pipe restano pulite a qualsiasi livello di log. `-o` scrive i risultati anche su un file, sovrascrivendolo a meno che non passi `--append`. Il file viene riscritto solo quando c'è un risultato da scrivere, quindi un'esecuzione che fallisce o non trova nulla lascia intatti i risultati precedenti.
### I comandi si concatenano
```bash
metabigor net AS13335 -f flat | metabigor ip -f flat
metabigor related tesla.com -f flat | metabigor cert
cat domains.txt | dnsx -silent -resp-only | metabigor cdn --exclude
```
## Comandi
### `net` - Scoperta di rete
Trova i CIDR dietro un ASN, IP, dominio o organizzazione. Usa il database offline incluso.
```bash
metabigor net AS13335 # every CIDR announced by an ASN
metabigor net 1.1.1.1 --detail # which ASN owns this IP
metabigor net --org Cloudflare # search by company name
metabigor net --live tesla.com # query live sources instead of the local DB
metabigor net -I asn-list.txt -f csv -o ranges.csv
```
Il tipo di target viene rilevato automaticamente. Sostituiscilo con `--asn`, `--ip`, `--domain` o `--org` (mutuamente esclusivi). `--detail` aggiunge le colonne ASN, organizzazione e paese.
### `cert` - Trasparenza dei certificati
```bash
metabigor cert hackerone.com # one domain per line
metabigor cert "HackerOne Inc" # search by organization
metabigor cert example.com --clean # strip the *. from wildcards
metabigor cert example.com --wildcard # only wildcard entries
metabigor cert example.com --detail # cert IDs, issuers, validity dates
metabigor cert tesla.com | dnsx -silent
```
### `ip` - Arricchimento IP (Shodan InternetDB)
```bash
metabigor ip 1.1.1.1 # ports, hostnames, CVEs
metabigor ip 1.1.1.0/28 # CIDRs expand to hosts
metabigor ip 1.1.1.0/28 -f flat # IP:PORT pairs
metabigor ip -I ips.txt -c 30 -f csv -o ports.csv
```
Gli IP di cui InternetDB non sa nulla vengono saltati; passa `--all` per conservarli.
### `github` - Ricerca codice (grep.app)
```bash
metabigor github hackerone.com # repo and path per match
metabigor github tesla.com --subs # only subdomains found in matches
metabigor github "api_key=" --detail # show the matching code
metabigor github AKIA --pages 3 --detail
```
Richiede Chrome o Chromium: grep.app risponde ai client HTTP semplici con una sfida anti-bot. Le ricerche vengono eseguite una alla volta indipendentemente da `-c`, per rispettare il rate limit di grep.app.
### `cluster` - Clustering IP
Raggruppa gli IP in base all'ASN che li possiede, dal cluster più grande in giù. Accetta IP o CIDR. Funziona offline.
```bash
cat ips.txt | metabigor cluster
metabigor cluster -I ips.txt -f csv -o clusters.csv
cat domains.txt | dnsx -silent -resp-only | metabigor cluster
```
### `related` - Scoperta domini correlati
```bash
metabigor related hackerone.com # all sources
metabigor related tesla.com --sources crt
metabigor related tesla.com --sources crt,whois
```
Fonti: `crt` (crt.sh), `whois` (reverse WHOIS di viewdns.info), `analytics` (ID condivisi di Google Analytics / Tag Manager) o `all`. I risultati vengono deduplicati tra le fonti ed etichettati con la fonte che li ha trovati per prima.
### `url` - Raccolta URL dagli archivi web
```bash
metabigor url hackerone.com # every keyless source, subdomains included
metabigor url blog.hackerone.com --no-subs # one hostname only
metabigor url hackerone.com/reports # scope to a path prefix
metabigor url tesla.com --sources wayback,urlscan
metabigor url tesla.com --keywords '\.js(\?|$)' # JavaScript only
metabigor url tesla.com --blacklist default --no-params
metabigor url tesla.com -f flat | httpx
```
Fonti: `wayback`, `commoncrawl`, `otx`, `urlscan`, `ghostarchive`, più `virustotal` e `intelx` quando le relative chiavi sono impostate. Le cinque fonti senza chiave vengono eseguite di default; le due con credenziali si aggiungono automaticamente quando `VT_API_KEY` / `INTELX_API_KEY` sono presenti nell'ambiente, e `URLSCAN_API_KEY` aumenta la dimensione di pagina di urlscan. Nominare una fonte con credenziali senza la sua chiave è un errore, non un salto silenzioso.
**I sottodomini sono inclusi di default** - la query è `*.target`, non `target`. Questa è la leva più importante su quanto restituisce un'esecuzione; `--no-subs` la restringe.
**GhostArchive viene estratto, non solo elencato.** Ogni pagina archiviata ha anche un WARC grezzo, e un WARC registra ogni sotto-richiesta fatta dal browser durante la cattura della pagina: chiamate XHR, endpoint JSON, URL di script costruiti dinamicamente. Niente di tutto ciò appare in un indice CDX, che indicizza solo le catture dell'URL della pagina stessa. Nei test, 8 richieste verso `tesla.com` hanno restituito 147 URL, inclusi endpoint JSON API live. Contieni il costo con `--limit-requests`.
I filtri sono disattivati di default, così nulla viene scartato senza richiesta. `--match-status` / `--filter-status`, `--match-mime` / `--filter-mime`, `--from` / `--to` e `--keywords` vengono passati alle API di Wayback e Common Crawl lato server e ricontrollati localmente; `--blacklist` e `--no-params` sono locali. `--limit-requests` limita le richieste per fonte e `--limit-collections` definisce quanto in profondità cercare nelle ~126 collezioni di indici di Common Crawl (`0` per tutte, fino al 2008).
### `cdn` - Rilevamento CDN/WAF
```bash
metabigor cdn 1.1.1.1 # vendor and type
cat ips.txt | metabigor cdn --exclude # candidate origins
cat ips.txt | metabigor cdn --only # only protected addresses
```
### `update` - Aggiorna i database locali
```bash
metabigor update
```
Aggiorna sia il database IP-ASN sia quello IP-paese in `~/.metabigor`. Una copia è inclusa nel binario e viene estratta al primo utilizzo, quindi serve solo per ricevere dati di routing più recenti.
### `skills` - Skill per agenti di coding
Metabigor include una skill [agentskills.io](https://agentskills.io) che insegna a un agente di coding AI (Claude Code, Codex o qualsiasi agente compatibile) come usare la CLI. La skill è incorporata nel binario, quindi corrisponde sempre alla versione che hai installato.
```bash
metabigor skills # list the bundled skills
metabigor skills get metabigor --full # print the skill and its references
metabigor skills install # install into .claude/skills (this project)
metabigor skills install --scope global # install into ~/.claude/skills
metabigor skills install --agent agents # install into .agents/skills for Codex
metabigor skills install --dir ./skills # install into a directory you choose
```
`get` stampa il Markdown grezzo su stdout (passalo in pipe oppure usa `-o` per salvarlo). `install` copia l'intero bundle - `SKILL.md` più la sua `references/` - e salta una copia esistente a meno che non passi `--force`. Una volta installata, l'agente attiva automaticamente la skill ogni volta che menzioni metabigor.
## Flag globali
```
-i, --input string Target to look up (also accepts arguments or stdin)
-I, --input-file string File of targets, one per line (use - for stdin)
-o, --output string Also write results to this file
-f, --format string Output format: text, json, csv, flat (default "text")
--append Append to the output file instead of overwriting it
-c, --concurrency int Number of parallel workers (default 10)
-t, --timeout int Request timeout in seconds (default 40)
--retry int Retries per failed request (default 3)
--proxy string Upstream proxy, e.g. http://127.0.0.1:8080
-v, --verbose Show step-by-step progress
-q, --quiet Show results and errors only
--debug Show HTTP traffic and internal traces (implies --verbose)
--no-color Disable colored log output
```
Metabigor esce con codice non zero in caso di errore, quindi si combina bene con `&&`, `set -e` e CI.
## Aggiornamento dalla v2
La v3 rinomina flag e comandi per coerenza. Non ci sono alias: aggiorna i tuoi script.
| v2 | v3 | Perché |
|---|---|---|
| `metabigor ipc` | `metabigor cluster` | `ipc` era impossibile da indovinare |
| `-I, --inputFile` | `-I, --input-file` | il camelCase non è una convenzione CLI |
| `-q, --silent` | `-q, --quiet` | `-q` dovrebbe corrispondere alla sua forma lunga |
| `--json` | `-f json` | un solo flag controlla la forma dell'output |
| `ip --csv` / `ip --flat` | `-f csv` / `-f flat` | idem |
| `cert --simple` | *(ora è il default)* | `--detail` opta per il blocco dettagliato |
| `net --dynamic` | `net --live` | linguaggio semplice |
| `cdn --strip-cdn` | `cdn --exclude` | si abbina al nuovo `--only` |
| `related -s ua` / `-s gtm` | `--sources analytics` | facevano entrambi la stessa cosa |
| `related -s` | `-s, --sources` | ora accetta davvero una lista |
| `github` *(sottodomini di default)* | `github --subs` | la forma dell'output non dipende più dai risultati |
Cambi di comportamento da conoscere:
- **L'output di avanzamento è silenzioso di default.** Le righe `[verbose]` ora richiedono `-v`.
- **`-o` sovrascrive** invece di accodare in silenzio. Usa `--append` per il vecchio comportamento.
- **`ip` stampa testo leggibile**, non JSON grezzo. Usa `-f json` per il JSON.
- **`cert` stampa una semplice lista di domini.** Usa `--detail` per la vista raggruppata dei certificati.
- **`net` su un CIDR riporta la rete proprietaria** invece di espandersi a ogni host.
- **Gli errori fanno uscire con codice 1.** Prima ogni errore usciva comunque con 0.
- **`metabigor update` aggiorna entrambi i database.** Prima saltava il database dei paesi.
## Integra Metabigor nel tuo workflow di ricognizione senza sforzo?
<p align="center">
<img alt="OsmedeusEngine" src="https://assets.kitploit.com/production/public/readmes/2602/eafa8ee9ab8d11baf808ad0024f1153b25dd09c470be9ccc68ccf44c2ab63b2a.png" />
<p align="center">
Questo progetto faceva parte di Osmedeus Engine. Scopri come è stato integrato su <a href="https://twitter.com/OsmedeusEngine">@OsmedeusEngine</a>
</p>
</p>
# Crediti
Logo preso da [flaticon](https://image.flaticon.com/icons/svg/1789/1789851.svg) di [freepik](https://www.flaticon.com/authors/freepik)
## 📊 Fonti dei dati
- **Database locale** - mappature IP-ASN e IP-paese (2M+ voci)
- **crt.sh** - log di trasparenza dei certificati
- **Shodan InternetDB** - API gratuita di arricchimento IP
- **grep.app** - ricerca codice GitHub
- **bgp.he.net** - dati di routing BGP in tempo reale
- **viewdns.info** - ricerche reverse WHOIS
- **builtwith.com** - correlazione del tracciamento analytics
- **projectdiscovery/cdncheck** - libreria di rilevamento CDN/WAF
- **web.archive.org** - indice CDX della Wayback Machine
- **index.commoncrawl.org** - indici CDX di Common Crawl
- **otx.alienvault.com** - liste URL di AlienVault OTX
- **urlscan.io** - ricerca nella cronologia degli scan
- **ghostarchive.org** - pagine archiviate e relativi file WARC
- **virustotal.com** - relazioni tra domini (chiave API opzionale)
- **intelx.io** - phonebook di Intelligence X (chiave API opzionale)
# Esclusione di responsabilità
Questo strumento è solo a scopo educativo. Sei responsabile delle tue azioni. Se combini qualche guaio o infrangi
qualsiasi legge usando questo software, è colpa tua, e solo tua.
# Licenza
`Metabigor` è fatto con ♥ da [@j3ssie](https://twitter.com/j3ssie) ed è rilasciato sotto licenza MIT.
# Donazione
[](https://paypal.me/j3ssiejjj)
[](https://www.buymeacoffee.com/j3ssie)