
Быстро обнаруживайте открытые хосты в интернете, используя несколько поисковых систем.
Возможности • Установка • Использование • Конфигурация • Запуск Uncover • Присоединиться в Discord
uncover — это обёртка на Go, использующая API известных поисковых систем для быстрого обнаружения открытых хостов в интернете. Она создана с учётом автоматизации, поэтому вы можете выполнять запросы и использовать результаты в своих текущих инструментах пайплайна.
Для успешной установки uncover требуется go1.21. Выполните следующую команду, чтобы получить репозиторий:
go install -v github.com/projectdiscovery/uncover/cmd/uncover@latest
uncover -h
Эта команда выведет справку по инструменту. Вот все поддерживаемые флаги:
Использование:
./uncover [флаги]
Флаги:
ВВОД:
-q, -query string[] поисковый запрос; поддерживает: stdin, файл, конфигурационный ввод (пример: -q 'example query', -q 'query.txt')
-e, -engine string[] поисковая система для запроса (shodan,shodan-idb,fofa,censys,quake,hunter,zoomeye,netlas,criminalip,publicwww,hunterhow,google,driftnet,daydaymap) (по умолчанию shodan)
-asq, -awesome-search-queries string[] использовать отличные поисковые запросы для обнаружения открытых активов в интернете (пример: -asq 'jira')
ПОИСКОВАЯ СИСТЕМА:
-s, -shodan string[] поисковый запрос для shodan (пример: -shodan 'query.txt')
-sd, -shodan-idb string[] поисковый запрос для shodan-idb (пример: -shodan-idb 'query.txt')
-ff, -fofa string[] поисковый запрос для fofa (пример: -fofa 'query.txt')
-cs, -censys string[] поисковый запрос для censys (пример: -censys 'query.txt')
-qk, -quake string[] поисковый запрос для quake (пример: -quake 'query.txt')
-ht, -hunter string[] поисковый запрос для hunter (пример: -hunter 'query.txt')
-ze, -zoomeye string[] поисковый запрос для zoomeye (пример: -zoomeye 'query.txt')
-ne, -netlas string[] поисковый запрос для netlas (пример: -netlas 'query.txt')
-cl, -criminalip string[] поисковый запрос для criminalip (пример: -criminalip 'query.txt')
-pw, -publicwww string[] поисковый запрос для publicwww (пример: -publicwww 'query.txt')
-hh, -hunterhow string[] поисковый запрос для hunterhow (пример: -hunterhow 'query.txt')
-gg, -google string[] поисковый запрос для google (пример: -google 'query.txt')
-on, -onyphe string[] поисковый запрос для onyphe (пример: -onyphe 'query.txt')
-df, -driftnet string[] поисковый запрос для driftnet (пример: -driftnet 'query.txt')
-ddm, -daydaymap string[] поисковый запрос для daydaymap (пример: -daydaymap 'query.txt')
КОНФИГУРАЦИЯ:
-pc, -provider string файл конфигурации провайдера (по умолчанию "$CONFIG/uncover/provider-config.yaml")
-config string файл конфигурации флагов (по умолчанию "$CONFIG/uncover/config.yaml")
-timeout int таймаут в секундах (по умолчанию 30)
-rl, -rate-limit int максимальное количество HTTP-запросов в секунду
-rlm, -rate-limit-minute int максимальное количество запросов в минуту
-retry int количество повторных попыток при неудачном запросе (по умолчанию 2)
-proxy string HTTP-прокси для использования с uncover
ВЫВОД:
-o, -output string файл вывода для записи результатов
-f, -field string поле для отображения в выводе (ip,port,host) (по умолчанию "ip:port")
-j, -json запись вывода в формате JSONL(ines)
-r, -raw запись сырого вывода, как получено от удалённого API
-l, -limit int ограничение количества возвращаемых результатов (по умолчанию 100)
-nc, -no-color отключение цветов в выводе
ОТЛАДКА:
-silent показывать только результаты в выводе
-version показать версию проекта
-v показать подробный вывод
Пример использования uncover в качестве библиотеки приведён в каталоге examples.
Файл конфигурации провайдера по умолчанию должен находиться по пути $CONFIG/uncover/provider-config.yaml и содержать следующее в качестве примера.
Примечание: Ключи API обязательны и должны быть настроены перед запуском 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
Если для одного провайдера указано несколько ключей/учётных данных, при каждом запуске будет использоваться случайный ключ.
Также вы можете установить ключ API в качестве переменной окружения в вашем профиле 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
Необходимые ключи API можно получить, зарегистрировавшись на следующих платформах: Shodan, Censys, Fofa, Quake, Hunter, ZoomEye, Netlas, CriminalIP, Publicwww, Google [1],[2], Onyphe, Driftnet, DayDayMap и NerdyData.
uncover поддерживает несколько способов выполнения запроса, включая stdin или флаг q. По умолчанию, если не указана поисковая система, используется shodan.
echo 'ssl:"Uber Technologies, Inc."' | uncover
__ ______ _________ _ _____ _____
/ / / / __ \/ ___/ __ \ | / / _ \/ ___/
/ /_/ / / / / /__/ /_/ / |/ / __/ /
\__,_/_/ /_/\___/\____/|___/\___/_/ v0.0.9
projectdiscovery.io
[WRN] Используйте с осторожностью. Вы несёте ответственность за свои действия.
[WRN] Разработчики не несут ответственности за неправильное использование или ущерб.
[WRN] Используя uncover, вы также соглашаетесь с условиями используемых API.
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
Запуск uncover с файловым вводом, содержащим несколько поисковых запросов по строкам.
cat dorks.txt
ssl:"Uber Technologies, Inc."
title:"Grafana"
uncover -q dorks.txt
__ ______ _________ _ _____ _____
/ / / / __ \/ ___/ __ \ | / / _ \/ ___/
/ /_/ / / / / /__/ /_/ / |/ / __/ /
\__,_/_/ /_/\___/\____/|___/\___/_/ v0.0.9
projectdiscovery.io
[WRN] Используйте с осторожностью. Вы несёте ответственность за свои действия.
[WRN] Разработчики не несут ответственности за неправильное использование или ущерб.
[WRN] Используя uncover, вы также соглашаетесь с условиями используемых API.
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 поддерживает несколько поисковых систем; по умолчанию используется shodan. Флаг -e позволяет выполнить один и тот же запрос для любой или всех поисковых систем.
echo jira | uncover -e shodan,censys,fofa,quake,hunter,zoomeye,netlas,criminalip,driftnet,daydaymap
__ ______ _________ _ _____ _____
/ / / / __ \/ ___/ __ \ | / / _ \/ ___/
/ /_/ / / / / /__/ /_/ / |/ / __/ /
\__,_/_/ /_/\___/\____/|___/\___/_/ v0.0.9
projectdiscovery.io
[WRN] Используйте с осторожностью. Вы несёте ответственность за свои действия.
[WRN] Разработчики не несут ответственности за неправильное использование или ущерб.
[WRN] Используя uncover, вы также соглашаетесь с условиями используемых API.
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] Используйте с осторожностью. Вы несёте ответственность за свои действия.
[WRN] Разработчики не несут ответственности за неправильное использование или ущерб.
[WRN] Используя uncover, вы также соглашаетесь с условиями используемых API.
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 поддерживает API shodan-internetdb для получения доступных портов для заданного IP/CIDR.
shodan-idb используется как поисковая система по умолчанию, когда на вход подаётся IP/CIDR; в противном случае используется поисковая система shodan.
echo 51.83.59.99/24 | uncover
__ ______ _________ _ _____ _____
/ / / / __ \/ ___/ __ \ | / / _ \/ ___/
/ /_/ / / / / /__/ /_/ / |/ / __/ /
\__,_/_/ /_/\___/\____/|___/\___/_/ v0.0.9
projectdiscovery.io
[WRN] Используйте с осторожностью. Вы несёте ответственность за свои действия.
[WRN] Разработчики не несут ответственности за неправильное использование или ущерб.
[WRN] Используя uncover, вы также соглашаетесь с условиями используемых API.
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 поддерживает использование API driftnet для быстрого поиска открытых портов для заданного IP/CIDR.
echo 8.8.8.8/20 | uncover -e driftnet
__ ______ _________ _ _____ _____
/ / / / __ \/ ___/ __ \ | / / _ \/ ___/
/ /_/ / / / / /__/ /_/ / |/ / __/ /
\__,_/_/ /_/\___/\____/|___/\___/_/ v0.0.9
projectdiscovery.io
[WRN] Используйте с осторожностью. Вы несёте ответственность за свои действия.
[WRN] Разработчики не несут ответственности за неправильное использование или ущерб.
[WRN] Используя uncover, вы также соглашаетесь с условиями используемых API.
...
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
...
Флаг -f, -field используется для указания, какие поля возвращать. В настоящее время поддерживаются ip, port и host. Их можно комбинировать для получения нужных полей.
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 имеет флаг -f, -field, который можно использовать для настройки формата вывода. Например, в случае uncover -f https://ip:port/version ip:port будут заменены на результаты в выводе с сохранением заданного формата. Это также можно использовать для указания известной схемы/пути/файла, чтобы подготовить вывод для немедленной передачи в качестве входных данных другим инструментам пайплайна.
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
Вывод uncover можно передавать по конвейеру другим проектам в рабочем процессе, принимающим stdin в качестве входных данных, например:
uncover -q example -f ip | naabu — запускает naabu для сканирования портов на найденном хосте.uncover -q title:GitLab | httpx — запускает httpx для проверки веб-сервера найденного результата.uncover -q 51.83.59.99/24 | httpx — запускает httpx на хостах/портах, полученных от 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

query поддерживает все фильтры, поддерживаемые поисковой системой, и только их.100; можно увеличить с помощью флага limit.shodan-idb не требует ключа API и работает «из коробки».shodan-idb используется в качестве поисковой системы по умолчанию, когда на вход подаётся IP/CIDR.uncover создан с 🖤 командой projectdiscovery.