discover 是一个使用知名搜索引擎的 API 快速发现 Internet 上暴露的主机的 go 包装器。
它在构建时考虑了自动化,因此您可以使用当前的管道工具对其进行查询并利用结果。目前支持shodan、shodan-internetdb、censys和fofa search API
查询多个搜索引擎的简单方便的实用程序
多种搜索引擎支持(Shodan、Censys、Fofa、Shodan-InternetDB)
自动密钥/凭证随机化
stdin / stdout支持输入和输出
discover需要go1.17才能安装成功。运行以下命令以获取 repo -
go install -v github.com/projectdiscovery/uncover/cmd/uncover@latest
使用下列命令可以查看该工具的帮助信息以及命令参数选项:
uncover -h
工具支持的参数选项如下所示:
Usage: ./uncover [flags]
Flags:
INPUT:
-q, -query string[] 搜索查询语句或列表 (文件或逗号分隔或STDIN)
-e, -engine string[] 指定搜索引擎 (例如shodan,shodan-idb,fofa,censys) (默认为shodan)
CONFIG:
-pc, -provider string 提供商配置文件 (默认为"$HOME/.config/uncover/provider-config.yaml")
-config string 参数配置文件 (默认为"$HOME/.config/uncover/config.yaml")
-timeout int 超时秒数 (默认为30)
-delay int 每次请求之间的间隔秒数 (默认为1)
OUTPUT:
-o, -output string 存储扫描结果的文件路径
-f, -field string 输出数据中要显示的字段 (例如ip,port,host) (默认为"ip:port")
-j, -json 将输出数据以JSON格式存储
-r, -raw 将远程API返回的数据转换为元数据输出
-l, -limit int 限制返回结果的数量 (默认为100)
-nc, -no-color 禁用输出数据中的颜色高亮显示
DEBUG:
-silent 近显示输出数据中的扫描结果
-version 显示项目版本信息
-v 显示Verbose输出
默认的提供者配置文件应该位于,$HOME/.config/uncover/provider-config.yaml并以如下内容为例。为了运行此工具,需要在此配置文件中添加 API 密钥/凭据或将其设置为环境变量。
shodan:
- SHODAN_API_KEY1
- SHODAN_API_KEY2censys:
- CENSYS_API_ID:CENSYS_API_SECRETfofa:
- FOFA_EMAIL:FOFA_KEY
当在配置文件中为同一个提供者指定多个密钥/凭证时,每次执行都将使用随机密钥。
或者,您也可以在 bash 配置文件中将 API 密钥设置为环境变量。
export SHODAN_API_KEY=xxxexport CENSYS_API_ID=xxxexport CENSYS_API_SECRET=xxxexport FOFA_EMAIL=xxxexport FOFA_KEY=xxx
可以通过在Shodan、Censys、Fofa上注册来获得所需的密钥。
discover支持多种查询方式,包括stdin或qflag
echo 'ssl:"Uber Technologies, Inc."' | uncover __ ______ _________ _ _____ _____ / / / / __ \/ ___/ __ \ | / / _ \/ ___// /_/ / / / / /__/ /_/ / |/ / __/ / \__,_/_/ /_/\___/\____/|___/\___/_/ v0.0.1 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:993107.180.26.155:443104.244.99.31:443161.28.20.79:443104.21.8.108:443198.71.233.203:443104.17.237.13:443162.255.165.171:44312.237.119.61:443192.169.250.211:443104.16.251.50:443
使用每行包含多个搜索查询 的文件输入运行发现。
cat dorks.txtssl:"Uber Technologies, Inc."title:"Grafana"
uncover -q dorks.txt __ ______ _________ _ _____ _____ / / / / __ \/ ___/ __ \ | / / _ \/ ___// /_/ / / / / /__/ /_/ / |/ / __/ / \__,_/_/ /_/\___/\____/|___/\___/_/ v0.0.1 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:993107.180.26.155:443104.244.99.31:443161.28.20.79:443104.21.8.108:443198.71.233.203:4432607:7c80:54:3::74:3001104.198.55.35:8046.101.82.244:300034.147.126.112:80138.197.147.213:8086
多搜索引擎 API (Shodan,Censys,Fofa)
discover支持多个搜索引擎,默认使用shodan,engineflag 可用于指定任何可用的搜索引擎。
echo jira | uncover -e shodan,censys,fofa __ ______ _________ _ _____ _____ / / / / __ \/ ___/ __ \ | / / _ \/ ___// /_/ / / / / /__/ /_/ / |/ / __/ / \__,_/_/ /_/\___/\____/|___/\___/_/ v0.0.3 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:500113.211.116.80:44343.130.1.221:631192.195.70.29:44352.27.22.181:443117.48.120.226:8889106.52.115.145:4915313.69.135.128:443193.35.99.158:44318.202.109.218:8089101.36.105.97:2137942.194.226.30:2626
discover支持shodan -internetdb API 为给定的 IP/CIDR 输入拉取可用端口。
shodan-idb当提供IP/CIDR作为输入时用作默认引擎,否则使用搜索引擎。shodan
echo 51.83.59.99/24 | uncover __ ______ _________ _ _____ _____ / / / / __ \/ ___/ __ \ | / / _ \/ ___// /_/ / / / / /__/ /_/ / |/ / __/ / \__,_/_/ /_/\___/\____/|___/\___/_/ v0.0.3 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:5351.83.59.1:1000051.83.59.2:5351.83.59.3:2551.83.59.3:8051.83.59.3:38951.83.59.3:44351.83.59.3:46551.83.59.3:58751.83.59.3:993
-f, -fieldflag 可用于指示要返回哪些字段,当前,ip,port, 和host受支持,可用于返回所需字段。
uncover -q jira -f host -silentec2-44-198-22-253.compute-1.amazonaws.comec2-18-246-31-139.us-west-2.compute.amazonaws.comtasks.devrtb.comleased-line-91-149-128-229.telecom.by74.242.203.213.static.inetbone.netec2-52-211-7-108.eu-west-1.compute.amazonaws.comec2-54-187-161-180.us-west-2.compute.amazonaws.com185-2-52-226.static.nucleus.beec2-34-241-80-255.eu-west-1.compute.amazonaws.com
discover有一个-f, -field标志,可用于自定义输出格式。例如,在 的情况下uncover -f https://ip:port/version,ip:port 将被替换为输出中的结果,同时保持定义的格式,它也可以用于指定已知的方案/路径/文件以准备输出,以便它可以立即作为输入传递给管道中的其他工具。
echo kubernetes | uncover -f https://ip:port/version -silenthttps://35.222.229.38:443/versionhttps://52.11.181.228:443/versionhttps://35.239.255.1:443/versionhttps://34.71.48.11:443/versi
onhttps://130.211.54.173:443/versionhttps://54.184.250.232:443/version
Uncover的输出可以进一步通过管道传输到工作流中接受stdin作为输入的其他项目,例如:
uncover -q example -f ip | naabu
- 在找到的主机上运行naabu进行端口扫描。
uncover -q title:GitLab | httpx
-为 Web 服务器运行httpx以探测找到的结果。
uncover -q 51.83.59.99/2
4 | httpx
-在从 shodan-internetdb 获得的主机/端口上运行httpx 。
uncover -q http.title:GitLab -silent | httpx -silenthttps://15.185.150.109https://139.162.137.16https://164.68.115.243https://135.125.215.186https://163.172.59.119http://15.236.10.197https://129.206.117.248
uncover -q 'org:"Example Inc."' | httpx | nuclei
- 运行httpx / nuclei进行漏洞评估。
笔记:
在运行或使用此项目之前,需要配置密钥/凭据。
queryflag 支持使用的底层 API 支持的所有过滤器。
query标志输入需要与使用的搜索引擎兼容。
结果仅限于100默认值,可以使用limit标志增加。
shodan-idbAPI 不需要 API 密钥并且开箱即用。
shodan-idb当提供IP/CIDR作为输入时,API 用作默认引擎。
Uncover:https://github.com/projectdiscovery/uncover
如有侵权,请联系删除
好文推荐