Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ODBParser — オープンなElasticsearchおよびMongoDBディレクトリから、気になる公開データのみを検索、解析、ダンプするOSINTツール | Kitploit
ツール/GitHubGitHub/citcheese/odbparser
OSINT (オープンソースインテリジェンス)脆弱性スキャナーデータ流出情報収集データベースセキュリティ
GitHubcitcheese/odbparser

ODBParser

オープンなElasticsearchおよびMongoDBディレクトリから、気になる公開データのみを検索、解析、ダンプするOSINTツール

リポジトリを見る
4776年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

ODBParser

TL;DR

ODBParserは、オープンデータベースで露出している個人識別情報(PII)を検索するためのツールです。

露出したPIIを特定し、データベースの管理を怠っているサーバー所有者に警告する目的でのみ使用してください。
または、アクセス許可があるデータベースをクエリする場合のみ使用してください。

責任を持って使用してください。

これは何ですか?

オープンデータベースを検索、解析、分析して、サードパーティのサーバー上でのPIIの漏洩を特定するためのオールインワンOSINTツールを作りたいと思い、このツールを書きました。他のツールは、データベースの検索のみ、あるいは特定後に無差別にダンプするだけのものが多いようです。当初は1〜2個の機能から始まり、このリポジトリにあるものに成長したため、コードは可能な限りきれいで美しいものではありません。

機能

オープンデータベースを特定するために:

  • ShodanとBinaryEdgeをすべての可能なパラメータでクエリ(国、ポート番号などでフィルタリング)
  • 単一のIPアドレスを指定
  • IPアドレスのリストが含まれるファイルを読み込み
  • クリップボードからIPアドレスのリストを貼り付け

ダンプオプション:

  • すべてのデータベース/コレクションを解析し、指定したデータを特定
  • サーバー上のすべてを取得
  • 1つのインデックス/コレクションだけを取得
  • Ctrl+cを使用して特定のインデックスのダンプをスキップ

後処理:

  • JSONダンプをCSVに変換
  • CSVから不要な列を削除

その他の機能:

  • クエリしたすべてのIPアドレスとデータベース、および各サーバーに関する情報を追跡
  • クエリしたIP数、解析したデータベース数、ダンプしたレコード数の統計ファイルを維持
  • 合計レコード数が上限を超えるデータベースごとに、特別なファイルにエントリを作成し、5件のサンプルレコードを付けて確認できるようにする(データベースを取得する価値があるかどうかを判断するため)
  • デフォルトの出力は、各行にJSONオブジェクトが1つずつ含まれる改行区切りのJSONファイルです。「properjson」フラグを使用すると、「正しいJSON」形式のファイルを出力することもできます。
  • ファイルをCSVに変換するか、実行後に特定のファイルのみを変換することもできます(後者をお勧めします)。変換されたJSONファイルは、同じディレクトリの「JSON backups」というフォルダに移動されます。注:CSVに変換する際、スクリプトは正確な重複行を削除し、すべての値がNaNである列と行を削除します。これは私が意図した動作です。JSONファイルの正確なコピーが必要な場合は、関数を自由に編集してください。
  • Windowsのみ 対象のフィールドを持つインデックスが非常に多く返された場合、スクリプトはデータベース名をリスト表示し、10秒間一時停止して、すべてのインデックスからデータを取得するかどうかを決定する機会を与えます。これは、対象フィールドを指定した後でも多くのデータベースが返される場合、データが偽物か役に立たないログである可能性が高く、名前からそれがわかることが多いためです。10秒以内に操作しない場合、スクリプトはすべてのインデックスをダンプします。
  • ご存知かもしれませんが、多くの人がMongoDBデータベースをスキャンして人質に取り、名前を「TO_RESTORE_EMAIL_XXXRESTORE.COM」などに変更しています。MongoDBスクレイパーは、データベース/コレクション名を特定の侵害を示す文字列リストと照合することで、侵害されたデータベースとコレクションを無視します。
  • スクリプトはかなり冗長です(多すぎるかもしれません)が、何が起こっているかを確認するのが好きです。必要に応じてprint文を抑制してください。

カスタマイズ

odbconfig.pyファイルを参照してパラメータを指定してください。実際の目的は、あなたが関心のあるデータを公開することです。設定ファイルにいくつかの例を記載しました。これらを試してみてください!

できること:

  • 収集したいインデックス名やコレクション名のサブ文字列を設定ファイルで指定できます。たとえば、「client」という用語があれば、「clients」や「client_data」というインデックスを取得します。これらのリストは空白のままにし、代わりに関心のあるフィールドを指定することをお勧めします。なぜなら、関心のあるデータベースが何と呼ばれるか予測できないからです。
  • 関心のあるフィールドを指定できます。たとえば、フィールド名に「email」を含むESインデックス(例:「user_emails」)のみを取得したい場合、それが可能です。また、インデックスに関心のあるフィールドが少なくとも2つ含まれていることを確認することもできます。あるいは、フィールドに関係なくすべてを取得することもできます。
  • 取得したくないインデックスを指定できます(例:システムインデックス名や基本ログ用の一般的なものなど)。設定ファイルに例があります。
  • 設定を上書きしてサーバー上のすべてを取得できます。
  • 出力形式(デフォルトはJSON、CSVも選択可能)を指定できます。
  • スクリプトがデフォルトでダンプするデータベースの最小および最大サイズを設定でき、必要に応じて最大ドキュメント数を上書きするフラグを設定できます。

インストールと要件

  • マシンにクローンまたはダウンロードします
  • Shodanおよび/またはBinaryEdgeのAPIキーを取得します
  • ODBconfig.pyファイルでパラメータを設定します
  • ファイルから要件をインストールします

間違ったモジュールバージョンの問題を避けるため、ODBParser用の仮想環境を作成することをお勧めします。 注: Python 3.7.3およびWindows 10でのみテストされています。

責任を持って使用してください。

次のステップと既知の問題

  • コードをもう少し整理する
  • 複数のプロセスをマルチスレッド化する
  • 他のデータベースタイプに拡張する
  • 他のオープンディレクトリ検索エンジン(Zoomeyeなど)を追加する
  • ES <2.0の動作方法により、特定のESインスタンスで最初のページをスクロールできない。助けていただければ幸いです!おそらく修正済み。scrollidエラーが発生した場合はIssueを開いてください。

使用方法

root@kitploit:~
    Examples: 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

    Damage to-date: 0 servers parsed | 0 databases dumped | 0 records pulled
    _____________________________________________________________________________

optional arguments: -h, --help このヘルプメッセージを表示して終了

Query Options: --shodan, -sh Shodanを使用する場合にこのフラグを追加。ESまたはMDBをフラグで指定。 --binary, -be BinaryEdgeを使用する場合にこのフラグを追加。ESまたはMDBをフラグで指定。 --ip , -ip 1台のサーバーをクエリ。ポートは '192.165.2.1:8080' のように追加。省略時は各DBタイプのデフォルトポートを使用。ESまたはMDBフラグでパーサーを指定。 --file , -f ファイルから改行区切りのIPを読み込み。ポートを追加するか、各DBタイプのデフォルトポートを使用。ESまたはMDBフラグでパーサーを指定。 --paste, -v クリップボードから改行区切りのIPをクエリ。ポートを追加するか、各DBタイプのデフォルトポート(例:ESの場合は9200)を使用。ESまたはMDBフラグでパーサーを指定。

Shodan/BinaryEdge Options: --limit , -l 1回のクエリあたりの最大結果数。デフォルトは500。 --port , -p ポートでフィルタリング。 --country , -cn 国(2文字の国コード)でフィルタリング。 --terms , -t ここに追加入力クエリ用語を入力。例:'users'

Dump Options: --mongo, -mdb IP、Shodan、BinaryEdge、ペーストの各メソッドで使用し、パーサーを指定。 --elastic, -es IP、Shodan、BinaryEdge、ペーストの各メソッドで使用し、パーサーを指定。 --properjson, -pj 出力を正しいJSONファイルにしたい場合に追加。デフォルトは1行に1つのJSON文字列オブジェクト。 --database , -db 取得したいデータベースを指定。MDBの場合は 'db:collection' の書式で指定。IP引数と'es'または'mdb'フラグと共に使用。 --getall, -g フィールドやコレクション/インデックス名に関係なくすべてのインデックスを取得(設定ファイルの選択を上書き)。 --ignorelogs 既にチェック済みのサーバーに接続。 --nosizelimits, -n サイズに関係なくインデックスをダンプ。デフォルトの最大ドキュメント数は800,000。 --csv JSONダンプをその場でCSV形式に変換。(変換に問題がある場合に備え、JSONファイルをバックアップフォルダに移動)

CSV/Post-processing Options: --convertToCSV , -c 後からJSONファイルまたはJSONダンプのフォルダをCSVに変換。現在の作業ディレクトリ内のフルパスまたはフォルダ名を入力。 --dontflatten 後処理でJSONファイルをCSVに変換する際にメモリ問題が発生した場合に使用。 --basic --convertToCSVフラグと共に使用。JSONダンプが真のJSONファイルではなく、他のソースから取得した改行区切りのJSONオブジェクトの場合に使用。 --dontclean, -dc CSVに変換する際に無用なデータを保持したい場合に選択。詳細はドキュメントを参照。

ツールをダウンロード