yamada_yoshiki Posted by

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

前回のpart1【勉強会の内容編(Level1)】に続きまして、今回はLevel2の問題を解説します。

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

問題

『Level2はLevel1とほぼ同じ。ただAWSアカウント必要だ。』
Level2Level1と同様にS3バケットのURL[http://level2-c8b217a33fcf1f839f6f1f73a00a9ae7.flaws.cloud.s3-us-west-2.amazonaws.com/]にアクセスしてもAccessDenied(アクセス拒否)と表示されます。

ヒント

Level2のバケット名:level2-c8b217a33fcf1f839f6f1f73a00a9ae7.flaws.cloud
Level2のリージョン:us-west-2

AWSマネジメントコンソールについて


AWSサービスを利用する管理用Webインタフェースです。
AWSの各サービスへのアクセスなどを行い、シンプルで直感的な操作が可能です。

AWSマネジメントコンソールを利用する為に必要なクレデンシャル(認証情報)
1.ID
2.パスワード

ルートユーザー:管理者のこと全ての権限を持つユーザー
IAMユーザー:AWSへのアクセス権限を人やAWS以外のサーバに付与するためのもの
※ルートユーザで作業し続けるのは危険なので、最低限の権限を与えたIAMユーザで作業するようにして下さい。

アクセスキーについて


AWS API, AWS CLI, AWS SDK, Windows PowerShell用, AWSツール等からAWSを呼び出す場合に使用する。

CLI認証情報を設定する為に必要なクレデンシャル(認証情報)
1.アクセスキーID
2.シークレットアクセスキー

IAMユーザーの作成


AWSマネジメントコンソールにアクセスし[IAM]を検索

IAMユーザの作成方法

アクセスキーとシークレットアクセスキーの取得

IAMユーザの作成方法で作成したIAMユーザーアクセスキーとシークレットアクセスキーを取得します。

1.IAMにアクセスします
2.アクセス管理→ユーザー→作成したユーザー名の順にクリック

3.認証情報→アクセスキーの作成の順にクリック

4.アクセスキーとシークレットアクセスキーが発行される

AWS CLIで認証情報を設定

[aws configure]コマンドを実行しします。
コマンドを実行すると4つの情報の入力が求められます。
・アクセスキー
・シークレットアクセスキー
・AWSリージョン(地域)
・出力形式

発行されたアクセスキーシークレットアクセスキーを入力して認証情報を設定します。
・アクセスキー:発行されたアクセスキー
・シークレットアクセスキー:発行されたシークレットアクセスキー
・AWSリージョン(地域):ap-northeast-1
・出力形式:json

ap-northeast-1:アジアパシフィック (東京)
出力形式[json][yaml][table]から選択可能

([aws configure –profile]コマンドを実行するとプロファイル名を指定して認証情報を登録することができます。)

回答

アクセスキーを設定した状態で、S3バケットにアクセスするとLevel1のように中身が見えるようになります。

コマンドからアクセス
[aws s3 ls s3://バケット名]
[aws s3 ls s3://level2-c8b217a33fcf1f839f6f1f73a00a9ae7.flaws.cloud]

するとLevel1と同様に一番下に怪しいファイル『secret-e4443fc.html』があります。
最初にAccessDeniedになった[http://level2-c8b217a33fcf1f839f6f1f73a00a9ae7.flaws.cloud.s3-us-west-2.amazonaws.com/]内部の怪しいファイル『secret-e4443fc.html』にブラウザでアクセスします。

[http://level2-c8b217a33fcf1f839f6f1f73a00a9ae7.flaws.cloud.s3-us-west-2.amazonaws.com/secret-e4443fc.html]にアクセスすると

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

問題から学べること

Level1と同じようにS3の権限設定の不備に関する問題です。
S3には、あらかじめいくつかのグループが定義されており、グループに対してアクセス権を付与することもできますが、
『Any Authenticated AWS User』という権限を付与してしまうとLevel2のように自分のアカウントに所属していないAWSアカウントでもアクセスできる状態となり、 AWSのアカウントさえあれば誰でもアクセス可能になってしまいます。

最後に

今回はflaws.cloudlevel2の内容をまとめました。

勉強会ではflaws.cloudLecel6まで学びましたが、flaws2.cloudの問題はできなかったので、flaws.cloudLevel6までの説明ができれば挑戦して投稿します。

※今回作成した不要なユーザー及びアクセスキーは不正アクセスされる可能性もありますので必ず削除してください。

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