Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ODBParser — OSINT工具,用于搜索、解析并仅转储您关心的暴露数据所在的开放Elasticsearch和MongoDB目录。 | Kitploit
工具/GitHubGitHub/citcheese/odbparser
OSINT (开源情报)漏洞扫描器数据泄露信息收集数据库安全
GitHubcitcheese/odbparser

ODBParser

OSINT工具,用于搜索、解析并仅转储您关心的暴露数据所在的开放Elasticsearch和MongoDB目录。

查看仓库
4776年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

ODBParser

TL;DR

ODBParser 是一款用于搜索开放数据库中暴露的 PII 的工具。

仅用于识别暴露的 PII 并警告服务器所有者其不负责任的数据库维护行为
或查询您有权访问的数据库!

请负责任地使用

这是什么?

编写此工具是为了创建一站式 OSINT 工具,用于搜索、解析和分析开放数据库,以识别第三方服务器上的 PII 泄露。其他工具似乎要么只搜索开放数据库,要么在识别后不加区分地转储所有数据。它从一个或两个函数逐渐演变为当前仓库中的内容,因此代码并非尽善尽美。

功能

识别开放数据库的方式:

  • 使用所有可能的参数查询 Shodan 和 BinaryEdge(按国家、端口号等过滤)
  • 指定单个 IP 地址
  • 加载包含 IP 地址列表的文件
  • 从剪贴板粘贴 IP 地址列表

转储选项:

  • 解析所有数据库/集合以识别您指定的数据
  • 抓取服务器上所有内容
  • 仅抓取单个索引/集合
  • 使用 Ctrl+C 跳过转储特定索引

后处理:

  • 将 JSON 转储转换为 CSV
  • 从 CSV 中移除无用列

其他功能:

  • 记录所有已查询的 IP 地址和数据库,以及每个服务器的相关信息。
  • 维护统计文件,包含已查询的 IP 数量、已解析的数据库数量和已转储的记录数量。
  • 将已有的 JSON 转储转换为 CSV
  • 对于每个记录总数超过限制的数据库,脚本会创建一个特殊文件,包含 5 条样本记录,供您查看并决定是否值得抓取。
  • 默认输出为每行一个 JSON 对象的文件。您可以通过 “properjson” 标志选择输出“标准 JSON”文件。
  • 您可以即时将文件转换为 CSV,也可以在运行完成后仅转换某些文件(建议后者)。转换后的 JSON 文件将被移动到同一目录下的 “JSON backups” 文件夹中。注意:转换为 CSV 时,脚本会删除完全重复的行,并丢弃所有值为 NaN 的列和行,因为这是我的需求。如果您希望完全保留 JSON 文件的内容,请随意修改函数。
  • 仅 Windows 如果脚本返回大量包含您关注字段的索引,脚本会列出数据库名称,暂停并给您十秒钟决定是否继续拉取所有索引的数据。因为我发现即使指定了所需字段,如果返回的数据库过多,数据很可能是假的或无用的日志,通常从名称就能判断。如果十秒内未操作,脚本将继续转储所有索引。
  • 正如您可能注意到的,许多人扫描 MongoDB 数据库并劫持它们,通常将名称改为类似 “TO_RESTORE_EMAIL_XXXRESTORE.COM”。MongoDB 扫描器会通过检查数据库/集合名称是否包含表示被劫持的字符串列表来忽略所有被入侵的数据库和集合。
  • 脚本输出比较详细(可能过于详细),但我喜欢看到运行情况。如果您希望静默,可以注释掉打印语句。

自定义

查看 odbconfig.py 文件来指定参数,因为关键在于暴露您感兴趣的数据。我在配置文件中提供了一些示例。您可以尝试修改!

您可以:

  • 通过配置文件中的子字符串指定要收集的索引或集合名称。例如,如果包含 “client”,脚本会拉取名为 “clients” 或 “client_data” 的索引。建议保持这些列表为空,因为您不知道关心的数据库会叫什么名字,而是指定您关注的字段。
  • 指定您关注的字段:如果您只想抓取包含 “email” 字段名的 ES 索引(例如 “user_emails”),可以这样做。如果您希望确保索引至少包含两个您关注的字段,也可以做到。或者,如果您只想抓取所有内容,无论字段是什么,也可以。
  • 指定您不想要的索引,例如系统索引名称以及其他通常用于基本日志记录的索引。配置文件中提供了示例。
  • 覆盖配置,抓取服务器上的所有内容。
  • 指定输出格式(默认为 JSON,可选择 CSV)。
  • 设置脚本默认转储的最小和最大数据库大小,并可以设置标志逐个覆盖最大文档数。

安装和依赖

  • 克隆或下载到您的机器
  • 获取 Shodan 和/或 BinaryEdge 的 API 密钥
  • 在 ODBconfig.py 文件中配置参数
  • 从文件中安装依赖

建议为 ODBParser 创建虚拟环境,以避免模块版本问题。 注意:仅在 Python 3.7.3 和 Windows 10 上测试过。

请负责任地使用

后续步骤和已知问题

  • 进一步清理代码
  • 多线程处理各种过程
  • 扩展到其他数据库类型
  • 添加其他开放目录搜索引擎(Zoomeye 等)
  • 由于 ES <2.0 的工作方式,某些 ES 实例无法滚动浏览第一页之后的内容。感谢任何帮助!基本确定已修复此问题。如果出现 scrollid 错误,请提交 Issue。

用法

root@kitploit:~
    示例:python ODBParser.py -cn US -p 8080 -t users --elastic --shodan --csv --limit 100
              python ODBParser.py -ip 192.168.2:8080 --mongo --ignorelogs --nosizelimits

    当前伤害:0 台服务器已解析 | 0 个数据库已转储 | 0 条记录已拉取
    _____________________________________________________________________________


可选参数:
  -h, --help            显示此帮助信息并退出

查询选项:
  --shodan, -sh         使用 Shodan 时添加此标志。配合 --elastic 或 --mongo 指定数据库类型。
  --binary, -be         使用 BinaryEdge 时添加此标志。配合 --elastic 或 --mongo 指定数据库类型。
  --ip , -ip            查询单台服务器。像这样添加端口 '192.165.2.1:8080',否则将使用每种数据库类型的默认端口。添加 --elastic 或 --mongo 标志指定解析器。
  --file , -f           从文件中加载按行分隔的 IP。添加端口,否则将使用每种数据库类型的默认端口。添加 --elastic 或 --mongo 标志指定解析器。
  --paste, -v           从剪贴板查询按行分隔的 IP。添加端口,否则将使用每种数据库类型的默认端口,例如 ES 的 9200。添加 --elastic 或 --mongo 标志指定解析器。

Shodan/BinaryEdge 选项:
  --limit , -l          每次查询的最大结果数。默认为 500。
  --port , -p           按端口过滤。
  --country , -cn       按国家过滤(两位字母国家代码)。
  --terms , -t          在此输入任何额外的查询词,例如 'users'

转储选项:
  --mongo, -mdb         用于 IP、Shodan、BinaryEdge 和 Paste 方法,指定解析器为 MongoDB。
  --elastic, -es        用于 IP、Shodan、BinaryEdge 和 Paste 方法,指定解析器为 Elasticsearch。
  --properjson, -pj     添加此标志以输出标准 JSON 文件。默认为每行一个 JSON 字符串对象。
  --database , -db      指定要抓取的数据库。对于 MongoDB,格式为 'db:collection'。与 --ip 参数及 --elastic 或 --mongo 标志一起使用。
  --getall, -g          获取所有索引,忽略字段和集合/索引名称(覆盖配置文件中的选择)。
  --ignorelogs          连接到之前已检查过的服务器。
  --nosizelimits, -n    无论索引多大都进行转储。默认最大文档数为 800,000。
  --csv                 即时将 JSON 转储转换为 CSV 格式。(将 JSON 文件放入备份文件夹,以防转换出现问题)

CSV/后处理选项:
  --convertToCSV , -c   事后将 JSON 文件或 JSON 转储文件夹转换为 CSV。输入当前工作目录中的完整路径或文件夹名称。
  --dontflatten         如果在后处理期间将 JSON 文件转换为 CSV 时遇到内存问题,请使用此选项。
  --basic               与 --convertToCSV 标志一起使用,适用于您的 JSON 转储不是真正的 JSON 文件,而是从其他来源获得的按行分隔的 JSON 对象。
  --dontclean, -dc      选择是否在转换为 CSV 时保留无用数据。详情请参阅文档。
下载工具