
オープンなElasticsearchおよびMongoDBディレクトリから、気になる公開データのみを検索、解析、ダンプするOSINTツール
![]() | ODBParser |
ODBParserは、オープンデータベースで露出している個人識別情報(PII)を検索するためのツールです。
露出したPIIを特定し、データベースの管理を怠っているサーバー所有者に警告する目的でのみ使用してください。
または、アクセス許可があるデータベースをクエリする場合のみ使用してください。
責任を持って使用してください。
オープンデータベースを検索、解析、分析して、サードパーティのサーバー上でのPIIの漏洩を特定するためのオールインワンOSINTツールを作りたいと思い、このツールを書きました。他のツールは、データベースの検索のみ、あるいは特定後に無差別にダンプするだけのものが多いようです。当初は1〜2個の機能から始まり、このリポジトリにあるものに成長したため、コードは可能な限りきれいで美しいものではありません。
オープンデータベースを特定するために:
ダンプオプション:
後処理:
その他の機能:
odbconfig.pyファイルを参照してパラメータを指定してください。実際の目的は、あなたが関心のあるデータを公開することです。設定ファイルにいくつかの例を記載しました。これらを試してみてください!
できること:
間違ったモジュールバージョンの問題を避けるため、ODBParser用の仮想環境を作成することをお勧めします。 注: Python 3.7.3およびWindows 10でのみテストされています。
責任を持って使用してください。
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に変換する際に無用なデータを保持したい場合に選択。詳細はドキュメントを参照。