Exposor是一款功能强大的网络侦查工具,该工具基于互联网搜索引擎实现其功能,支持广大研究人员使用统一语法来检测网络中的安全威胁。
该工具支持跨Censys、Fofa、Shodan和Zoomeye实现技术检测,并且具备跨平台的统一查询语法,可以为安全研究人员和专业人员提供了暴露系统的清晰视图,从而能够快速识别风险。
1、为支持的 feed 配置 API 密钥,并保持情报文件更新;
2、使用 Exposor 的查询语法来查找技术;
3、在单一工作流程中检索并分析多个搜索引擎的结果;
4、贡献自定义 YAML 文件以扩展检测功能;
5、通过网络块、国家代码或主机名执行有针对性的搜索;
6、使用统一的语法跨多个 feed 执行查询;
7、使用 CPE 或 CVE 识别暴露的系统和潜在漏洞;
pyyaml
python-dotenv
pytest
pytest-mock
requests
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。
源码获取
广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/abuyv/exposor.git
然后切换到项目目录中,使用pip命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:
cd exposor
pip install -r requirements.txt
pip安装
#latest stable release
pip install exposor
要使用Exposor,必须为要搜索的 feed 配置 API 密钥。至少需要一个 API 密钥才能启用对 feed 的搜索。
我们可以通过两种方式添加 API 密钥:
1、使用--init选项
运行exposor --init选项来创建配置文件:
exposor --init shodan:api_key zoomeye:api_key censys:api_id:api_secret fofa:email:api_key
2、使用环境变量
使用以下命令将 API 密钥设置为环境变量:
# Unix
export CENSYS_API_ID="your_censys_api_id"
export CENSYS_API_KEY="your_censys_api_secret"
export FOFA_EMAIL="your_fofa_email"
export FOFA_API_KEY="your_fofa_api_key"
export SHODAN_API_KEY="your_shodan_api_key"
export ZOOMEYE_API_KEY="your_zoomeye_api_key"
# Windows
$env:CENSYS_API_ID="your_censys_api_id"
$env:CENSYS_API_KEY="your_censys_api_secret"
$env:FOFA_EMAIL="your_fofa_email"
$env:FOFA_API_KEY="your_fofa_api_key"
$env:SHODAN_API_KEY="your_shodan_api_key"
$env:ZOOMEYE_API_KEY="your_zoomeye_api_key"
运行 Exposor 以使用预定义的 YAML 文件检测特定技术:
__
/__\__ __ _ __ ___ ___ ___ _ __
/_\ \ \/ /| '_ \ / _ \ / __| / _ \ | '__|
//__ > < | |_) || (_) |\__ \| (_) || |
\__/ /_/\_\| .__/ \___/ |___/ \___/ |_|
|_|
version: 1.0.0
Usage: exposor.py -q cpe:2.3:a:vendor:product --feed all -o result.csv
Explore multiple feeds for a given CPE or CVE. Supported feeds include Censys, Fofa, Shodan, and Zoomeye.
General Options:
-h, --help 显示此帮助消息并退出
--init 初始化支持的feed的API密钥,格式为“feed:credentials”`
--update 更新情报文件(intels文件夹)以包含最新查询
Query Options:
-q, --query 指定搜索查询,例如`cpe:2.3:a:vendor:product`或 `CVE-2024-XXXX`
-qL, --query-limit 限制发送到给定CPE的指定feed查询数。默认值如果为“yes”,则表示查询已经限制为每个提要只发送一个查询。如果你要在每个提要中发送所有可能的查询,请使用`-qL-no禁用此选项`
-f, --feed 选择一个或多个数据源进行查询。使用“all”查询所有支持的feed
-c, --country 使用国家代码按特定国家搜索技术
-n, --netblock 提供要搜索的网络块或特定IP地址(例如“192.168.0.1/24”或“192.168.0.1”)
-d --domain-name 指定要搜索的目标域(例如`example.com`)
--limit 设置每个feed中每个查询要获取的最大结果数。例如,如果限制为10,并且对提要有3个查询,则总共有30个结果获取(10个结果×3个查询)。(默认值为“50”)
Result Options:
-v, --verbose 用详细输出以获取详细日志,增加输出详细度(-v,-vv)
-o, --output 指定输出文件名(例如`results.csv`)
本项目的开发与发布遵循MIT开源许可协议。
Exposor:
https://github.com/abuyv/exposor