
Scopri rapidamente gli host esposti su internet utilizzando più motori di ricerca.
Caratteristiche • Installazione • Utilizzo • Configurazione • Eseguire Uncover • Unisciti a Discord
uncover è un wrapper Go che utilizza le API di noti motori di ricerca per scoprire rapidamente host esposti su Internet. È progettato per l'automazione, in modo da poter eseguire query e utilizzare i risultati con i tuoi strumenti attuali della pipeline.
uncover richiede go1.21 per essere installato correttamente. Esegui il comando seguente per ottenere il repository -
go install -v github.com/projectdiscovery/uncover/cmd/uncover@latest
uncover -h
Questo mostrerà la guida dello strumento. Ecco tutti i flag supportati:
Usage:
./uncover [flags]
Flags:
INPUT:
-q, -query string[] query di ricerca, supporta: stdin,file,config input (esempio: -q 'example query', -q 'query.txt')
-e, -engine string[] motore di ricerca da interrogare (shodan,shodan-idb,fofa,censys,quake,hunter,zoomeye,netlas,criminalip,publicwww,hunterhow,google,driftnet,daydaymap) (default shodan)
-asq, -awesome-search-queries string[] utilizza awesome search queries per scoprire asset esposti su Internet (esempio: -asq 'jira')
SEARCH-ENGINE:
-s, -shodan string[] query di ricerca per shodan (esempio: -shodan 'query.txt')
-sd, -shodan-idb string[] query di ricerca per shodan-idb (esempio: -shodan-idb 'query.txt')
-ff, -fofa string[] query di ricerca per fofa (esempio: -fofa 'query.txt')
-cs, -censys string[] query di ricerca per censys (esempio: -censys 'query.txt')
-qk, -quake string[] query di ricerca per quake (esempio: -quake 'query.txt')
-ht, -hunter string[] query di ricerca per hunter (esempio: -hunter 'query.txt')
-ze, -zoomeye string[] query di ricerca per zoomeye (esempio: -zoomeye 'query.txt')
-ne, -netlas string[] query di ricerca per netlas (esempio: -netlas 'query.txt')
-cl, -criminalip string[] query di ricerca per criminalip (esempio: -criminalip 'query.txt')
-pw, -publicwww string[] query di ricerca per publicwww (esempio: -publicwww 'query.txt')
-hh, -hunterhow string[] query di ricerca per hunterhow (esempio: -hunterhow 'query.txt')
-gg, -google string[] query di ricerca per google (esempio: -google 'query.txt')
-on, -onyphe string[] query di ricerca per onyphe (esempio: -onyphe 'query.txt')
-df, -driftnet string[] query di ricerca per driftnet (esempio: -driftnet 'query.txt')
-ddm, -daydaymap string[] query di ricerca per daydaymap (esempio: -daydaymap 'query.txt')
CONFIG:
-pc, -provider string file di configurazione del provider (default "$CONFIG/uncover/provider-config.yaml")
-config string file di configurazione dei flag (default "$CONFIG/uncover/config.yaml")
-timeout int timeout in secondi (default 30)
-rl, -rate-limit int numero massimo di richieste HTTP al secondo
-rlm, -rate-limit-minute int numero massimo di richieste al minuto
-retry int numero di tentativi per una richiesta fallita (default 2)
-proxy string proxy HTTP da usare con uncover
OUTPUT:
-o, -output string file di output per scrivere i risultati trovati
-f, -field string campo da visualizzare nell'output (ip,port,host) (default "ip:port")
-j, -json scrive l'output in formato JSONL(ines)
-r, -raw scrive l'output grezzo ricevuto dall'API remota
-l, -limit int limita il numero di risultati da restituire (default 100)
-nc, -no-color disabilita i colori nell'output
DEBUG:
-silent mostra solo i risultati nell'output
-version mostra la versione del progetto
-v mostra output verbose
Un esempio di utilizzo di uncover come libreria è fornito nella directory examples.
Il file di configurazione predefinito del provider dovrebbe trovarsi in $CONFIG/uncover/provider-config.yaml e avere il seguente contenuto di esempio.
Nota: le chiavi API sono obbligatorie e devono essere configurate prima di eseguire uncover.
shodan:
- SHODAN_API_KEY_1
- SHODAN_API_KEY_2
censys:
- CENSYS_API_TOKEN_1:CENSYS_ORGANIZATION_ID_1
- CENSYS_API_TOKEN_2:CENSYS_ORGANIZATION_ID_2
fofa:
- FOFA_EMAIL_1:FOFA_KEY_1
- FOFA_EMAIL_2:FOFA_KEY_2
quake:
- QUAKE_TOKEN_1
- QUAKE_TOKEN_2
hunter:
- HUNTER_API_KEY_1
- HUNTER_API_KEY_2
zoomeye:
- ZOOMEYE_API_KEY_1
- ZOOMEYE_API_KEY_2
netlas:
- NETLAS_API_KEY_1
- NETLAS_API_KEY_2
criminalip:
- CRIMINALIP_API_KEY_1
- CRIMINALIP_API_KEY_2
publicwww:
- PUBLICWWW_API_KEY_1
- PUBLICWWW_API_KEY_2
hunterhow:
- HUNTERHOW_API_KEY_1
- HUNTERHOW_API_KEY_2
google:
- GOOGLE_API_KEY_1:Google_API_CX_1
- GOOGLE_API_KEY_2:Google_API_CX_2
onyphe:
- ONYPHE_API_KEY_1
- ONYPHE_API_KEY_2
driftnet:
- DRIFTNET_API_KEY_1
- DRIFTNET_API_KEY_2
daydaymap:
- DAYDAYMAP_API_KEY_1
- DAYDAYMAP_API_KEY_2
nerdydata:
- NERDYDATA_API_KEY_1
- NERDYDATA_API_KEY_2
Quando vengono specificate più chiavi/credenziali per lo stesso provider nel file di configurazione, verrà utilizzata una chiave casuale per ogni esecuzione.
In alternativa, puoi anche impostare la chiave API come variabile d'ambiente nel tuo profilo bash.
export SHODAN_API_KEY=xxx
export CENSYS_API_TOKEN=xxx
export CENSYS_ORGANIZATION_ID=xxx
export FOFA_EMAIL=xxx
export FOFA_KEY=xxx
export QUAKE_TOKEN=xxx
export HUNTER_API_KEY=xxx
export ZOOMEYE_API_KEY=xxx
export NETLAS_API_KEY=xxx
export CRIMINALIP_API_KEY=xxx
export PUBLICWWW_API_KEY=xxx
export HUNTERHOW_API_KEY=xxx
export GOOGLE_API_KEY=xxx
export GOOGLE_API_CX=xxx
export ONYPHE_API_KEY=xxx
export DRIFTNET_API_KEY=xxx
export DAYDAYMAP_API_KEY=xxx
export NERDYDATA_API_KEY=xxx
Le chiavi API richieste possono essere ottenute registrandosi sulle seguenti piattaforme Shodan, Censys, Fofa, Quake, Hunter, ZoomEye, Netlas, CriminalIP, Publicwww, Google [1],[2], Onyphe, Driftnet, DayDayMap e NerdyData.
uncover supporta diversi modi per effettuare la query, inclusi stdin o il flag q. Di default, viene utilizzato il motore shodan se non viene specificato alcun motore.
echo 'ssl:"Uber Technologies, Inc."' | uncover
__ ______ _________ _ _____ _____
/ / / / __ \/ ___/ __ \ | / / _ \/ ___/
/ /_/ / / / / /__/ /_/ / |/ / __/ /
\__,_/_/ /_/\___/\____/|___/\___/_/ v0.0.9
projectdiscovery.io
[WRN] Use with caution. You are responsible for your actions
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
[WRN] By using uncover, you also agree to the terms of the APIs used.
107.180.12.116:993
107.180.26.155:443
104.244.99.31:443
161.28.20.79:443
104.21.8.108:443
198.71.233.203:443
104.17.237.13:443
162.255.165.171:443
12.237.119.61:443
192.169.250.211:443
104.16.251.50:443
Eseguire uncover con un file di input contenente più query di ricerca per riga.
cat dorks.txt
ssl:"Uber Technologies, Inc."
title:"Grafana"
uncover -q dorks.txt
__ ______ _________ _ _____ _____
/ / / / __ \/ ___/ __ \ | / / _ \/ ___/
/ /_/ / / / / /__/ /_/ / |/ / __/ /
\__,_/_/ /_/\___/\____/|___/\___/_/ v0.0.9
projectdiscovery.io
[WRN] Use with caution. You are responsible for your actions
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
[WRN] By using uncover, you also agree to the terms of the APIs used.
107.180.12.116:993
107.180.26.155:443
104.244.99.31:443
161.28.20.79:443
104.21.8.108:443
198.71.233.203:443
2607:7c80:54:3::74:3001
104.198.55.35:80
46.101.82.244:3000
34.147.126.112:80
138.197.147.213:8086
uncover supporta più motori di ricerca. Di default viene utilizzato shodan, il flag -e può essere utilizzato per eseguire la stessa query su uno o più motori di ricerca.
echo jira | uncover -e shodan,censys,fofa,quake,hunter,zoomeye,netlas,criminalip,driftnet,daydaymap
__ ______ _________ _ _____ _____
/ / / / __ \/ ___/ __ \ | / / _ \/ ___/
/ /_/ / / / / /__/ /_/ / |/ / __/ /
\__,_/_/ /_/\___/\____/|___/\___/_/ v0.0.9
projectdiscovery.io
[WRN] Use with caution. You are responsible for your actions
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
[WRN] By using uncover, you also agree to the terms of the APIs used.
176.31.249.189:5001
13.211.116.80:443
43.130.1.221:631
192.195.70.29:443
52.27.22.181:443
117.48.120.226:8889
106.52.115.145:49153
13.69.135.128:443
193.35.99.158:443
18.202.109.218:8089
101.36.105.97:21379
42.194.226.30:2626
uncover -shodan 'http.component:"Atlassian Jira"' -censys 'services.software.product=`Jira`' -fofa 'app="ATLASSIAN-JIRA"' -quake 'Jira' -hunter 'Jira' -zoomeye 'app:"Atlassian JIRA"' -netlas 'jira' -criminalip 'Jira' -driftnet 'field=product-tag:jira' -daydaymap 'Jira'
__ ______ _________ _ _____ _____
/ / / / __ \/ ___/ __ \ | / / _ \/ ___/
/ /_/ / / / / /__/ /_/ / |/ / __/ /
\__,_/_/ /_/\___/\____/|___/\___/_/ v0.0.9
projectdiscovery.io
[WRN] Use with caution. You are responsible for your actions
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
[WRN] By using uncover, you also agree to the terms of the APIs used.
104.68.37.129:443
162.222.160.42:443
34.255.84.133:443
52.204.121.166:443
23.198.29.120:443
136.156.180.95:443
54.194.233.15:443
104.117.55.155:443
149.81.4.6:443
54.255.218.95:443
3.223.137.57:443
83.228.124.171:443
23.202.195.82:443
52.16.59.25:443
18.159.145.227:443
104.105.53.236:443
uncover supporta l'API shodan-internetdb per ottenere le porte disponibili per un determinato input IP/CIDR.
shodan-idb viene utilizzato come motore predefinito quando viene fornito un input IP/CIDR, altrimenti viene utilizzato il motore di ricerca shodan.
echo 51.83.59.99/24 | uncover
__ ______ _________ _ _____ _____
/ / / / __ \/ ___/ __ \ | / / _ \/ ___/
/ /_/ / / / / /__/ /_/ / |/ / __/ /
\__,_/_/ /_/\___/\____/|___/\___/_/ v0.0.9
projectdiscovery.io
[WRN] Use with caution. You are responsible for your actions
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
[WRN] By using uncover, you also agree to the terms of the APIs used.
51.83.59.1:53
51.83.59.1:10000
51.83.59.2:53
51.83.59.3:25
51.83.59.3:80
51.83.59.3:389
51.83.59.3:443
51.83.59.3:465
51.83.59.3:587
51.83.59.3:993
uncover supporta l'utilizzo dell'API driftnet per una rapida ricerca delle porte aperte per un determinato input IP/CIDR.
echo 8.8.8.8/20 | uncover -e driftnet
__ ______ _________ _ _____ _____
/ / / / __ \/ ___/ __ \ | / / _ \/ ___/
/ /_/ / / / / /__/ /_/ / |/ / __/ /
\__,_/_/ /_/\___/\____/|___/\___/_/ v0.0.9
projectdiscovery.io
[WRN] Use with caution. You are responsible for your actions
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
[WRN] By using uncover, you also agree to the terms of the APIs used.
...
8.8.4.4:443
8.8.4.4:53
8.8.4.4:853
8.8.6.29:443
8.8.6.40:443
8.8.6.70:443
8.8.6.94:443
8.8.11.1:22
8.8.11.253:22
8.8.11.64:443
8.8.8.8:443
8.8.8.8:53
8.8.8.8:853
...
Il flag -f, -field può essere utilizzato per indicare quali campi restituire. Attualmente sono supportati ip, port e host e possono essere utilizzati per restituire i campi desiderati.
uncover -q jira -f host -silent
ec2-44-198-22-253.compute-1.amazonaws.com
ec2-18-246-31-139.us-west-2.compute.amazonaws.com
tasks.devrtb.com
leased-line-91-149-128-229.telecom.by
74.242.203.213.static.inetbone.net
ec2-52-211-7-108.eu-west-1.compute.amazonaws.com
ec2-54-187-161-180.us-west-2.compute.amazonaws.com
185-2-52-226.static.nucleus.be
ec2-34-241-80-255.eu-west-1.compute.amazonaws.com
uncover ha un flag -f, -field che può essere utilizzato per personalizzare il formato di output. Ad esempio, nel caso di uncover -f https://ip:port/version, ip:port verrà sostituito con i risultati nell'output mantenendo il formato definito. Può anche essere utilizzato per specificare uno schema/percorso/file noto per preparare l'output in modo che possa essere immediatamente passato come input ad altri strumenti nella pipeline.
echo kubernetes | uncover -f https://ip:port/version -silent
https://35.222.229.38:443/version
https://52.11.181.228:443/version
https://35.239.255.1:443/version
https://34.71.48.11:443/version
https://130.211.54.173:443/version
https://54.184.250.232:443/version
L'output di uncover può essere ulteriormente convogliato in altri progetti della pipeline che accettano stdin come input, ad esempio:
uncover -q example -f ip | naabu - Esegue naabu per la scansione delle porte sull'host trovato.uncover -q title:GitLab | httpx - Esegue httpx per il probing del server web sui risultati trovati.uncover -q 51.83.59.99/24 | httpx - Esegue httpx sugli host/porte ottenuti da shodan-internetdb.uncover -q http.title:GitLab -silent | httpx -silent
https://15.185.150.109
https://139.162.137.16
https://164.68.115.243
https://135.125.215.186
https://163.172.59.119
http://15.236.10.197
https://129.206.117.248
uncover -q 'org:"Example Inc."' | httpx | nuclei - Esegue httpx / nuclei per la valutazione delle vulnerabilità.
query supporta tutti e solo i filtri supportati dal motore di ricerca.100 per impostazione predefinita e possono essere aumentati con il flag limit.shodan-idb non richiede una chiave API e funziona immediatamente.shodan-idb viene utilizzata come motore predefinito quando viene fornito un input IP/CIDR.uncover è realizzato con 🖤 dal team projectdiscovery.