URL(Uniform Resource Locator)という略語の正確な意味を思い出せないことがあっても、それが何であり、何をするものであるかは誰もが知っています。それは、特定のIPアドレスに存在するオンラインリソースにアクセスするための、ブラウザの人間が読めるリンクです。
URLは、ウェブサイトのランディングページ(例:osintme.com)を指す一般的なものから、ファイルへのパスを使ってより定義されたオブジェクトやリソース(例:ウェブサイト上のPDFフォームやテキストファイル)を指すものまであります。
多くのドメインには、通常のユーザーがアクセスしたり検索したりすることのない隠しURLがあります。それらのURLはディープウェブの一部であり、検索エンジンにインデックスされていないものもありますが、正確なURLを発見してアクセスすることでアクセスできる場合もあります。
2. サブドメインの列挙インターネット上で有効なドメイン名は、以下の構成要素で成り立っています。
- トップレベルドメイン - URL文字列の最後のドットの後に続くもの。一般的なトップレベルドメインの例は以下の通りです。.com、.org、.gov、.net、.uk、.ie...
- セカンドレベルドメイン - トップレベルドメインの前にあるもの。例えば、このブログのセカンドレベルドメインはb-son、トップレベルドメインは.netです。
- サブドメイン - セカンドレベルドメインの前に位置するもの。例えば、aws.amazon.com - awsの部分がここではサブドメインになっています。
サブドメインの列挙は、使用頻度の低いサブドメインや、通常のユーザーがアクセスすることを想定していないサブドメインを特定し、公開するために使用されます。これは、セカンドレベルドメインの前に一般的な単語を追加するだけで、手動で行うことができます。
- blog.example.com
- news.example.com
- mail.example.com
- store.example.com
しかし、手動でのドメイン列挙は、長期的には効果がありません。手間と時間がかかるだけでなく、サブドメインに一般的でない名前がある場合には、まったく効果がありません。
Sublist3rのようなツールを使って、サブドメインの列挙を自動化することができます。
https://github.com/aboul3la/Sublist3r
The Harvesterというのもあります。
https://github.com/laramies/theHarvester
または、Spyse's Subdomain Finderなどのウェブツールを利用することもできます。
https://spyse.com/tools/subdomain-finder
3. IPアドレスによる直接接続
URLバーは、ドメイン名のような人間が読める入力に対してのみ機能するものではありません。
DNS(Domain Name System)のエントリーは、人間が読みやすい名前(www.google.com)で表示されますが、これはウェブサイトに接続する唯一の方法ではありません。すべての解決可能なドメインは、IPアドレスを指すAレコード(アドレスレコード)として知られています。
下記URLを例に説明します。
http://helpdesk.delivery.htb
このマシンを危険にさらす作業の一部として、IPアドレスを使って接続することがありましたが、ポート番号を追加することでさらに強化することができます。
http://10.129.229.49:22
http://10.129.229.49:80
もちろんポートが開いていればの話ですが、様々なポートを使ってオンラインリソースに接続することで、より多くの情報が得られることがあります。
注:この方法は、セキュリティ設定の詳細に依存するため、常に動作するとは限りません。また、Cloudflareなどのサービスやホスティングプロバイダーがこの接続方法をブロックしている可能性があります。
4. 数字のあるものは?列挙してください。
この手法は、順番に並んだリソースの存在を暗示するURLがあれば、どこでも使うことができます。例えば、LinkedInのグループを例にとってみましょう。
https://www.linkedin.com/groups/113/
そのURLの最後には、桁を入れ替えて操作できる数字があり、その数字の値を少しずつ増やしたり減らしたりしながら、リストアップされたリソースを検索することができます。
これは、フォトギャラリー、ファイルディレクトリ、ユーザー名などで特に有効です。
5. 画像の解像度を上げる
時々、低解像度の画像ファイルを含むリンクを目にすることがあります。もっと解像度の高い画像があるはずなのに、その正確なURLがわからないということがあります。
高解像度の画像は、URLからサイズを操作することで見ることができる場合があります。以下の画像を見てください。
https://ucarecdn.com//985d4f2c-973a-4ae6-a2b1-f992683da70b/-/resize/200x/
では、この「/200x/」の部分を、前に2を加えて「/2200x/」に変更してみてください...。
この方法が有効かどうかは、各ウェブサイトや各URLによります。例えば、このピザの画像のように、サービスによってパラメータの位置が異なり、URLの異なる部分に配置されます。
https://cdn.shopify.com/s/files/1/1405/0664/products/4791207-9790062099-Pizza1_250x250_crop_center@2x.progressive.jpg?v=1469649640
250×250の値(ここではピクセル)が気になった方は、他の値に変更してみてください。
例えば
https://cdn.shopify.com/s/files/1/1405/0664/products/4791207-9790062099-Pizza1_1250x1250_crop_center@2x.progressive.jpg?v=1469649640
他のサービスでは、URLの「small」を「large」に置き換えるなどして、サイズのパラメータを変更することができるかもしれません。
6. URLの最後に何かを追加する
多くのウェブサイトには、検索エンジンにインデックスされていないファイル(robots.txtなど)があります。
Googleの説明によると、robots.txtファイルは、ウェブサイトへのクローラーのトラフィックを管理するために使用され、ファイルの種類にもよりますが、通常はファイルをGoogleから遮断するために使用されます。
このファイルは、機密データを公開するものではありませんが、現在開発中のリソースや、ウェブサイトの所有者が広く一般に見られたくないものをユーザーに示す可能性があります。
この方法を試すには、ランダムなウェブサイトにアクセスして、この値 - /robots.txt - をURLに追加します(他のオプションも試してみてください)。
例
https://www.rte.ie/robots.txt
7. URLの短縮を解除する
短縮URLサービスは、非常に長くて煩雑なURLを、短くて読みやすく、人に優しいリンクに凝縮するために合法的に使用されます。しかし、残念なことに、これらのサービスは、詐欺師やサイバー犯罪者が、疑わしいと思われるURLを隠すために使用されることもあります。
幸いなことに、これらのリンクの短縮を解除するためのリソースやトリックがいくつかあります。
Bitlyで短縮されたURL(短縮されたURLにBitlyの名前が入っていることでわかる)であれば、URLの最後に+記号を加えるだけで短縮を解除することができます。
https://bit.ly/3F3vlKO
https://bitly.com/3F3vlKO+
この方法は、他のいくつかのURL短縮サービスでも有効です。その他のサービスについては、短縮されたリンクを切り離すのに役立つ以下のリソースのいずれかをご利用ください。
8. Webパラメータの改ざん[厳密にはOSINTではない!!!]
これらの URL 関連のヒントとコツの最後の部分は、OSINT、ペンテスト、および脆弱性の悪用の境界線上にある、非常にグレーな領域です。これらの手法の正当な使用例は、ウェブアプリケーションのペンテストです。
OWASP は、このような行為をウェブ・パラメータの改ざんとして分類し、不十分な記述や十分なセキュリティが確保されていないウェブ・アプリケーションに対して URL レベルで実行可能な数多くの攻撃を特定しています。
OWASPのページにあるように
攻撃者は、URL のパラメータを直接改ざんすることができます。例えば、ユーザが自分のプロファイルをコンボボックスから選択し、アカウントから引き落とすことを許可するウェブアプリケーションを考えてみましょう。
http://www.attackbank.com/default.asp?profile=741&debit=1000
この場合、攻撃者はURLを改ざんし、profileやdebitに別の値を使用することができます。
http://www.attackbank.com/default.asp?profile=852&debit=2000
他にも、属性パラメータなどを変更することができます。以下の例では、ステータス変数を改ざんして、サーバーからページを削除することが可能です。
http://www.attackbank.com/savepage.asp?nr=147&status=read
ページを削除するためにステータス変数を修正する。
http://www.attackbank.com/savepage.asp?nr=147&status=del