yamada_yoshiki Posted by

おはようございます!こんにちは!こんばんは!おやすみなさい!
山田です。

さて、part0AWSの知識は十分についたので
今回の本題である勉強会の内容についてまとめいていきます。

↓参加した勉強会のグループになります↓
AWSハッキング(1月18日)&大和セキュリティ新年会

勉強内容


Scott Piper氏(@0xdabbad00)がオンラインで公開しているAWSのセキュリティについてCTF形式で学習することができる『flaws.cloud』『flaws2.cloud』というサイトがあります。

今回の勉強会はこのflawsの問題を解き、AWSのセキュリティに対しての知識を深める事を目的としています。

flaws.cloudサイト
flaws2.cloudサイト

flaws:AWSを利用して実際にページが公開されており、AWSのセキュリティ学習が行えるサイト
CTF形式『攻防戦形式』『クイズ形式』があり、サイバー攻撃への対処を学ぶ教育手法

事前準備

python3のインストール

python3インストール方法

AWS CLIのインストール

コマンドラインからAWSを操作できるツールです。

PCやサーバーにCLIをインストールし、AWSのアカウント情報を登録すれば、コンソール画面にアクセスしなくても、コマンドでAWSサービスを実行することができます。

(コマンド:例)
[aws (サービス名) (実行処理)]

CLIインストール方法

AWSアカウントの作成

AWSアカウント作成方法

問題


『最初にサブドメインを見つけなさい。』
flaws.cloudのサブドメインを探し出すのがLevel1の問題です。

ヒント

[nslookup]コマンドドメイン(flaws.cloud)を調べてみるとAWSのS3を利用していることがわかります。
また、ホスト(サーバー)があるリージョン(地域)us-west-2(米国西部(オレゴン))だということもわかります。
リージョン一覧

S3の仕様について

・S3のバケット名は全てのAWSアカウントで共有されており、重複した名前を付けることができません。
・S3バケットと独自ドメインを利用して、静的なサイトをホスティング(サーバーを借りて公開)する場合には、バケット名とドメイン名が一致する必要があります。

(例)
S3バケットと独自ドメインを利用している場合
ドメイン名 = バケット名
つまり、今回のflaws.cloudはドメイン名でもあり、バケット名でもあります。(ややこしや)

バケットS3におけるデータを格納するための最上位の領域、複数作成可能でありアクセス制御も可能。
(バケット作成時は、配置するリージョンを指定する必要があります)
ホスティング:サーバをネットワーク経由で顧客に貸し出すサービスのこと『レンタルサーバ』とも呼ばれる

S3バケットのURL

S3バケットを特定するためのURLの書き方
・http://バケット名.s3-リージョン名.amazonaws.com/
http://バケット名.s3.amazonaws.com/
http://s3-リージョン名.amazonaws.com/バケット名

つまりflaws.cloudを公開しているS3バケットのURLは以下となります。
http://flaws.cloud.s3-us-west-2.amazonaws.com/
http://flaws.cloud.s3.amazonaws.com/
http://s3-us-west-2.amazonaws.com/flaws.cloud/

回答

ブラウザで
http://flaws.cloud.s3-us-west-2.amazonaws.com/
http://flaws.cloud.s3.amazonaws.com/
http://s3-us-west-2.amazonaws.com/flaws.cloud/
のどれかにアクセスするとS3バケット内のフォイル一覧がXML形式で表示され、画像のような怪しいファイル[secret-dd02c7c.html]が発見できます。

ファイル一覧
hint1.html:ヒント1のHTMLファイルぽい名前
hint2.html:ヒント2のHTMLファイルぽい名前
hint3.html:ヒント3のHTMLファイルぽい名前
index.html:アクセスした際に読み込まれるファイルの名前
logo.png:ロゴ画像ぽい名前
robots.txt:ロボッツテキストファイル
secret-dd02c7c.html:なんだこれ?

ブラウザで
・http://flaws.cloud.s3-us-west-2.amazonaws.com/secret-dd02c7c.html
・http://flaws.cloud.s3.amazonaws.com/secret-dd02c7c.html
・http://s3-us-west-2.amazonaws.com/flaws.cloud/secret-dd02c7c.html
のどれかにアクセスする。

『おめでとうございます!秘密のファイルが見つかりました!』
と表示されLevel2に続く[http://level2-c8b217a33fcf1f839f6f1f73a00a9ae7.flaws.cloud]のリンクが貼られています。

ロボッツテキストファイル:Webサイトのファイルの内容を認識する[クローラー]の動作をコントロールする際に記述するファイルのこと

問題から学べること

・S3バケットに誤った設定をしてしまうことで、情報が漏洩してしまう危険性があります。
【Amazon S3バケットのアクセス設定に関する注意喚起】

・デフォルトのS3バケットセキュアに作成されますが、Webサイトとして設定している場合には、オブジェクトを読み取り可能とするために全ての利用者に対して“s3:GetObject”のアクセス許可を付与しているケースがあります。
静的ウェブサイトホスティング用に S3 バケットを設定する方法
セキュア:システムやネットワーク、データなどが安全な状態に保たれていること

・さらに全員に対してオブジェクトの一覧許可をすると、Level1のようにディレクトリリスティングが有効となってしまいます。
ディレクトリリスティング:URLで指定するとディレクトリに含まれるファイル一覧を表示するWebサーバの機能

最後に

今回はflaws.cloudのLevel1の内容をまとめました。
flaws.cloudの問題は全部で6問あるのでまだまだ続きますよ!!

part2【勉強会の内容編(Level2)】へ続きます。