CloudGoatを活用したAWSに対するペネトレーションテストの勉強方法!

セキュリティ界隈の皆さん、こんにちは!

今回はAWSセキュリティを攻撃者の視点から学べる教材「CloudGoat」について紹介です。

「CloudGoat」を利用することで、AWSに対する代表的なハッキング手法や、攻撃に利用するツールなどを学習することができます。

近年、ペンテストでAWSを評価することが増えているので、ぜひCloudGoatを利用して勉強してみてください!

CloudGoatとは?

CloudGoatとは、AWS上に脆弱な環境を自動的に構築してくれるツールです。
Rhino Security Labs社が開発しており、Githubにて無償公開されています。

github.com

導入は非常に簡単で、コマンドを1つ2つ打つだけで、Terraformと連携して環境構築を行います。

CloudGoatには現在10個のシナリオ(脆弱な環境)が用意されているのですが、主に次のようなことを学ぶことが可能です。

  • IAMの設定不備を突いた特権昇格
  • EC2インスタンスのメタデータを悪用した情報漏洩
  • SSRFによるIAMキーの窃取
  • セキュリティ保護されたRDSデータベースへの不正アクセス

セットアップ手順

大前提

ソフトウェア要件としては次の通りです。

• LinuxまたはMaxOS
• Python 3.6以上
• Terraform 0.14以上
• aws CLI

aws CLIやTerraformの構築はここでは割愛しますが、もし分からない方がいれば下記を参考にしてください。

CloudGoat導入手順

1. CloudGoatのインストール

git clone https://github.com/RhinoSecurityLabs/cloudgoat.git
cd cloudgoat
pip3 install -r ./core/python/requirements.txt
chmod u+x cloudgoat.py

2. 設定ファイルの作成

./cloudgoat.py config profile

3. 「ローカル端末のグローバルIPアドレス」をホワイトリストに追加

./cloudgoat.py config whitelist --auto

ここまでで基本的な設定は完了です。次からは脆弱な環境をAWS上に構築し、攻撃を行います。

シナリオ選択&環境構築

現在用意されているシナリオは次のコマンドで表示可能です。

./cloudgoat.py list undeployed

f:id:yuukoutetu:20220129051004p:plain

本記事では、cloud_breach_s3を紹介します。

このシナリオでは、EC2のリバースプロキシの設定を悪用することで、①メタデータからインスタンスプロファイル(IAMキー含む)を取得し、②s3に保存されている機密情報を窃取するといったものです。

f:id:yuukoutetu:20220129055631p:plain

では、実際に下記のコマンドで環境構築します。

./cloudgoat.py create cloud_breach_s3

上記コマンドを実行するとEC2のグローバルIPアドレスが出力されるのでメモします。
(GUIからでも確認可能)

f:id:yuukoutetu:20220129060357p:plain

次に作成したEC2のメタデータを取得してみます。

f:id:yuukoutetu:20220129052255p:plain

iamが見つかったのでさらに調べてみます。

f:id:yuukoutetu:20220129055836p:plain

結果的に、「http://100.26.41.216/latest/meta-data/iam/security-credential/cg-banking-WAF-Role-cloud_creach_s3_cgid6buw9gslv5」にインスタンスプロファイルを発見しました。

f:id:yuukoutetu:20220129060055p:plain

次にこのIAMキーを「~/.aws/credentials」に追加し、aws CLIで権限を確認するとアクセス可能なs3を発見しました。

f:id:yuukoutetu:20220129060726p:plain

後はs3に保存されている機密情報をダウンロードし完了です。

f:id:yuukoutetu:20220129060953p:plain

データの中身はダミーの個人情報でした。

f:id:yuukoutetu:20220129061043p:plain

まとめ

AWSセキュリティをハンズオンで学べるCloudGoatを紹介しました。

今回紹介したシナリオ以外にも様々なシナリオがあるので、興味ある方はぜひ一度やってみてください。

もし、AWS初心者の方でCloudGoatが難しすぎて分からないと感じたら、まずはAWSの基礎を勉強してから取り組まれることがオススメです。
というのも、AWSハッキングは基本的な用語やアーキテクチャを理解していないと学習できないからです。

個人的には、AWS 認定ソリューションアーキテクトの知識があればベースは十分に出来上がると思います。
下記教材は初心者の方でも取り組みやすく、さっとAWSの全体像を理解するのによい教材なのでぜひ使ってみてください。

1) ハンズオンで学びたい方におすすめ

2) 本でさらっと学びたい方におすすめ

最新情報をチェックしよう!