このブログは、株式会社ArmorisアルバイトのShaderoが書いています。
あるもりすぶろぐの内容は個人の意見です。
はじめに
今回は、OSINTBuddyというオープンソースで開発されているOSINTツールを使って実際のフィッシングサイトを調査します。この調査を通じて、OSINTBuddyの現時点での実用性を紹介します。
OSINTBuddyのバージョンが変わった影響で手順は若干変わっていますが、環境構築については前回の記事をご参照ください。
Entity一覧
OSINTBuddyでは、標準でいくつかのEntityが用意されています。用意されているEntityは以下の通りです。
名前 | 説明 |
---|---|
CSE Result | Google カスタム検索の検索結果を表すEntity。 |
CSE Search | Google カスタム検索を用いて検索するためのEntity。 |
DNS | ドメインとDNSレコードが格納されたEntity。このEntityから、IP Entityに変換できます。 |
Google Result | Google検索の検索結果を表すEntity。 |
Google Search | Google検索を用いて検索するためのEntity。 |
IP | IPアドレスを表すEntity。IP Geolocation等に変換できます。 |
IP Geolocation | IPアドレスから取得した位置情報。 |
Subdomain | サブドメイン名を表すEntity。 |
Telegram Websearch | Telegram内で検索するためのEntity。内部実装では検索にCSEを使用しています。 |
URL | URLを表すEntity。Website Entityに変換できます。 |
Username | ユーザ名が格納されているEntity。 |
Username Profile | ユーザ情報を表すEntity。カテゴリ名とサイト名、URL、ユーザ名を格納できます。 |
Website | ドメイン情報を表すEntity。IPアドレスやWhois情報等を取り出せます。 |
Whois | 指定ドメインのWhois情報を表示するEntity。 |
一部Entityでは、新しい情報を外部から収集することが出来ます。例えばDNS Entityでは、指定ドメインとDNSレコードに紐付けられたIPアドレスを取得することが出来ます。
新しい情報を外部から収集することが出来るEntityは以下の通りです。また、現時点では収集機能が正常に動作しないEntityもあるため、その点についても記載します。
名前 | 情報収集機能の有無 | 動作の可否 |
---|---|---|
CSE Result | × | -- |
CSE Search | ○ | ○ |
DNS | ○ | ○ |
Google Result | × | -- |
Google Search | ○ | × |
IP | ○ | △ |
IP Geolocation | × | -- |
Subdomain | × | -- |
Telegram Websearch | ○ | × |
URL | × | -- |
Username | ○ | ○ |
Username Profile | × | -- |
Website | × | -- |
Whois | × | -- |
動作の可否を△としたIP Entityでは、IPアドレスから位置情報を取得する機能は正常に動作しましたが、IPアドレスからドメインや、サブドメインを逆引きする機能が正常に動作しませんでした。
なお、構築した検証環境での結果のため、他環境では結果が異なる場合があります。
OSINT調査
それでは実際にOSINTBuddyを用いて調査を行います。今回は、OSINTによって該当フィッシングサイトの情報を収集し、その情報を元に他フィッシングサイトを収集するという流れで調査を行います。
なお、調査に必要になるグラフは作成済みとします。グラフの作成方法等は前回の記事をご覧ください。
環境
今回の検証で用いる環境は以下の通りです。 基本的にOSINTBuddyはサーバ側で動作させ、クライアント側からアクセスする形で使います。
また、予め3000ポートと8000ポートをクライアント側にフォワーディングしています。
ssh username@serverIP -L 3000:localhost:3000 -L 8000:localhost:8000
サーバ
Name | Value |
---|---|
OS | Ubuntu 22.04 |
OSINTBuddy | v0.1.0 |
クライアント
Name | Value |
---|---|
OS | Windows 11 |
Browser | Microsoft Edge |
フィッシングサイトの情報を収集する
OSINTBuddyのグラフを用いて、フィッシングサイトの情報を収集します。
Website Entityに、フィッシングサイトのFQDNを入れた後、Entityを右クリックして、情報を収集します。
本来は、IPアドレスやGoogleの検索結果、Whois情報、DNS情報の4つがWebsite Entityから取得できるはずなのですが、不具合によりIPアドレスとWhois情報しか取得できませんでした。
その後、取得できた情報から、さらに収集した結果が以下の画像になります。
他フィッシングサイトを見つける
先ほどの工程で、フィッシングサイトの情報を収集しました。ここでは、その情報を元に他フィッシングサイトを見つけます。
収集したIPアドレスを紐付けている別ドメインを収集することで、他フィッシングサイトを見つけたいのですが、OSINTBuddyにはその機能が用意されていませんでした。そのため今回は、VirusTotalを用います。
先ほど収集したIPアドレスをVirusTotalに入力した結果、紐付けられているドメインを10件取得できました。
OSINTBuddyを使って、VirusTotalから取得したドメインから情報を収集します。
IPアドレスは取れたものの、ほとんどのドメインでWhois情報を取得できませんでした。ログを見ると、Whois情報取得の過程でCAPTHA認証を求められた事がWhois情報取得失敗の原因でした。
またIPアドレスが同じでも、別Entityとして登録されており、これらを纏める事が出来ませんでした。OSINTにおいて、同一情報を纏める事は重要なので、現状の機能では実用性に欠けると感じました。
おわりに
今回は、OSINTBuddyを用いて実際のフィッシングサイトを調査しました。
調査の過程で、不具合が多い点が気になりました。具体的には、Website EntityからDNS情報、Google検索結果を取得できない点や、Whois情報の取得に失敗するケースがある点などです。また同一Entityを纏める機能や、VirusTotalと連携するPluginが無い点も気になりました。
現状では実用性に欠けると感じましたが、Web上でOSINTが行える点やOSSである点は大きなメリットです。今後のアップデートに期待したいです。