
設定ミスのあるCloudFrontドメインを特定するためのツール
CloudFruntは、設定ミスのあるCloudFrontドメインを特定するためのツールです。
CloudFrontは、Amazon Web Services (AWS)が提供するコンテンツデリバリネットワーク (CDN) です。CloudFrontユーザーは、特定のソース(例えばS3バケット)からコンテンツを配信する「ディストリビューション」を作成します。
各CloudFrontディストリビューションには、ユーザーがDNSレコードをポイントするための一意のエンドポイントがあります(例:d111111abcdef8.cloudfront.net)。特定のディストリビューションを使用するすべてのドメインは、そのディストリビューションのオプションの「代替ドメイン名(CNAMEs)」フィールドにリストされている必要があります。
CloudFrontエンドポイントがリクエストを受信しても、自動的に対応するディストリビューションからコンテンツを配信するわけではありません。代わりに、CloudFrontはリクエストのHOSTヘッダーを使用して、使用するディストリビューションを決定します。つまり、次の2つのことを意味します。
これにより、ドメインがハイジャックされる可能性が生じます。CloudFrontユーザーがHOSTヘッダーで受信される可能性のある必要なドメインをすべてリストアップできていないケースが多くあります。例:
つまり、CloudFrontが単一のディストリビューションにバインドする一意のエンドポイントは事実上無意味になります。特定のCloudFrontサブドメインへのリクエストは、それが関連付けられているディストリビューションに限定されません。
このソフトウェアは、作者によって「現状有姿」で提供されます。明示または黙示を問わず、商品性および特定目的への適合性の黙示の保証を含むがこれに限定されない、いかなる保証も否認されます。いかなる場合においても、作者は、契約、不法行為、またはその他の行為の如何にかかわらず、このソフトウェアの使用に起因または関連して生じたいかなる直接的、間接的、偶発的、特別、懲罰的、または結果的な損害(代替商品またはサービスの調達、使用、データ、または利益の喪失、または事業の中断を含むがこれに限定されない)についても、たとえそのような損害の可能性が事前に通知されていたとしても、一切の責任を負わないものとします。
$ git clone --recursive https://github.com/MindPointGroup/cloudfrunt
$ pip install -r requirements.txt
CloudFruntは、dnsreconスクリプトがdnsreconというサブディレクトリにクローンされていることを前提としています。
cloudfrunt.py [-h] [-l TARGET_FILE] [-d DOMAINS] [-o ORIGIN] [-i ORIGIN_ID] [-s] [-N]
-h, --help このメッセージを表示して終了
-s, --save 結果をresults.txtに保存
-N, --no-dns dnsreconを使用してスコープを拡大しない
-l, --target-file TARGET_FILE ドメインのリストを含むファイル(1行に1つ)
-d, --domains DOMAINS スキャンするドメインのカンマ区切りリスト
-o, --origin ORIGIN 脆弱なドメインをこのオリジンで新しいディストリビューションに追加
-i, --origin-id ORIGIN_ID 新しいディストリビューションで使用するオリジンID
$ python cloudfrunt.py -o cloudfrunt.com.s3-website-us-east-1.amazonaws.com -i S3-cloudfrunt -l list.txt
CloudFrunt v1.0.4
[+] Enumerating DNS entries for google.com
[-] No issues found for google.com
[+] Enumerating DNS entries for disloops.com
[+] Found CloudFront domain --> cdn.disloops.com
[+] Found CloudFront domain --> test.disloops.com
[-] Potentially misconfigured CloudFront domains:
[#] --> test.disloops.com
[+] Created new CloudFront distribution EXBC12DE3F45G
[+] Added test.disloops.com to CloudFront distribution EXBC12DE3F45G