Pentesting クラウド方法論

Tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

基本的なメソドロジー

各クラウドには固有の特性がありますが、一般的にクラウド環境をテストする際にペンテスターが確認すべき共通の項目がいくつかあります:

  • ベンチマークチェック
  • これは環境の規模を理解し、利用されているサービスを把握するのに役立ちます
  • ほとんどのテストを自動化ツールで実行できるため、迅速な設定ミスを見つけるのにも有効です
  • サービスの列挙
  • ベンチマークテストを正しく実施していればここで新たな設定ミスは多く見つからない可能性がありますが、ベンチマークで見られていなかったものが見つかることがあります
  • これによりクラウド環境で具体的に何が使われているかを把握できます
  • 次のステップで非常に役立ちます
  • 公開されているアセットの確認
  • これは前節の間に実施できます。インターネットに何が潜在的に公開されているか、またそれにどうアクセスできるかを全て見つけ出す必要があります。
  • ここでは手動で公開されたインフラ(ウェブページや他のポートが公開されているインスタンスなど)や、公開可能に設定されうるクラウド管理サービス(例えば DBs やバケット)について扱います
  • 次にそのリソースが公開可能かどうかを確認するべきです(機密情報か?脆弱性か?公開サービスの設定ミスか?)
  • 権限の確認
  • ここではクラウド内の各ロール/ユーザーの全ての権限を調べ、それらがどのように使われているかを把握するべきです
  • あまりにも多くの高権限アカウント(すべてを制御する)がありますか? 生成されたキーが未使用ですか?… これらの多くはベンチマークテストで既に確認されているはずです
  • クライアントが OpenID や SAML やその他の federation を使用している場合、各ロールがどのように割り当てられているかについてさらに情報を求める必要があるかもしれません(admin ロールが 1 人に割り当てられているのと 100 人に割り当てられているのとでは同じではありません)
  • 単にどのユーザーが “admin” 権限(“:”)を持っているかを見つけるだけでは不十分です。利用されているサービスによっては他にも非常にセンシティブな権限が多数あります。
  • さらに、権限を悪用して進められるprivesc の経路が存在する可能性があります。これらすべてを考慮し、可能な限り多くの privesc パスを報告すべきです。
  • 統合の確認
  • クラウド環境内で他のクラウドや SaaS との統合が利用されている可能性が高いです。
  • 監査対象のクラウドが他のプラットフォームと統合されている場合、その統合を(濫用)できるのは誰かを通知し、その操作がどれほどセンシティブかを確認すべきです。
    例えば、GCP がデータを取得している AWS のバケットに誰が書き込みできるか(GCP 側でそのデータを扱う操作がどれほどセンシティブかを確認する)など。
  • 監査対象のクラウド内に外部プラットフォームからの統合がある場合、外部からその統合を(濫用)できるのは誰かを確認し、そのデータがどのように使われているかをチェックすべきです。
    例えば、あるサービスが GCR にホストされた Docker image を使用している場合、その image を修正できるのは誰か、そしてその image が AWS クラウド内で実行されたときにどのような機密情報やアクセスを得るかを確認すべきです。

マルチクラウド用ツール

さまざまなクラウド環境をテストするために使えるツールがいくつかあります。インストール手順とリンクはこのセクションで示します。

PurplePanda

クラウド内およびクラウド/SaaS 間での不適切な設定や privesc パスを特定するツールです。

# You need to install and run neo4j also
git clone https://github.com/carlospolop/PurplePanda
cd PurplePanda
python3 -m venv .
source bin/activate
python3 -m pip install -r requirements.txt
export PURPLEPANDA_NEO4J_URL="bolt://neo4j@localhost:7687"
export PURPLEPANDA_PWD="neo4j_pwd_4_purplepanda"
python3 main.py -h # Get help

Prowler

これは AWS, GCP & Azure をサポートしています。各プロバイダの設定方法は https://docs.prowler.cloud/en/latest/#aws を参照してください。

# Install
pip install prowler
prowler -v

# Run
prowler <provider>
# Example
prowler aws --profile custom-profile [-M csv json json-asff html]

# Get info about checks & services
prowler <provider> --list-checks
prowler <provider> --list-services

CloudSploit

AWS, Azure, Github, Google, Oracle, Alibaba

# Install
git clone https://github.com/aquasecurity/cloudsploit.git
cd cloudsploit
npm install
./index.js -h
## Docker instructions in github

ScoutSuite

AWS, Azure, GCP, Alibaba Cloud, Oracle Cloud Infrastructure

mkdir scout; cd scout
virtualenv -p python3 venv
source venv/bin/activate
pip install scoutsuite
scout --help
## Using Docker: https://github.com/nccgroup/ScoutSuite/wiki/Docker-Image

Steampipe

Steampipe をダウンロードしてインストールします(https://steampipe.io/downloads)。または Brew を使用:

brew tap turbot/tap
brew install steampipe

cs-suite

AWS, GCP, Azure, DigitalOcean.
python2.7 が必要で、メンテナンスされていないようです。

Nessus

Nessus には Audit Cloud Infrastructure スキャンがあり、以下をサポートします: AWS, Azure, Office 365, Rackspace, Salesforce。Azure では Client Id を取得するためにいくつか追加の設定が必要です。

cloudlist

Cloudlist は Cloud Providers から Assets(Hostnames, IP Addresses)を取得するための multi-cloud tool です。

cd /tmp
wget https://github.com/projectdiscovery/cloudlist/releases/latest/download/cloudlist_1.0.1_macOS_arm64.zip
unzip cloudlist_1.0.1_macOS_arm64.zip
chmod +x cloudlist
sudo mv cloudlist /usr/local/bin

cartography

Cartographyは、Neo4jデータベースによって駆動される直感的なグラフビューで、インフラ資産とそれらの関係を統合するPythonツールです。

# Installation
docker image pull ghcr.io/lyft/cartography
docker run --platform linux/amd64 ghcr.io/lyft/cartography cartography --help
## Install a Neo4j DB version 3.5.*

starbase

Starbaseは、クラウドインフラ、SaaSアプリケーション、セキュリティコントロールなどを含むサービスやシステムから資産と関係性を収集し、Neo4jデータベースで支えられた直感的なグラフビューに統合します。

# You are going to need Node version 14, so install nvm following https://tecadmin.net/install-nvm-macos-with-homebrew/
npm install --global yarn
nvm install 14
git clone https://github.com/JupiterOne/starbase.git
cd starbase
nvm use 14
yarn install
yarn starbase --help
# Configure manually config.yaml depending on the env to analyze
yarn starbase setup
yarn starbase run

# Docker
git clone https://github.com/JupiterOne/starbase.git
cd starbase
cp config.yaml.example config.yaml
# Configure manually config.yaml depending on the env to analyze
docker build --no-cache -t starbase:latest .
docker-compose run starbase setup
docker-compose run starbase run

SkyArk

スキャン対象の AWS または Azure 環境内で、AWS Shadow Admins を含む最も権限の高いユーザーを特定します。powershell を使用します。

Import-Module .\SkyArk.ps1 -force
Start-AzureStealth

# in the Cloud Console
IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/cyberark/SkyArk/master/AzureStealth/AzureStealth.ps1')
Scan-AzureAdmins

Cloud Brute

企業(ターゲット)のインフラ、ファイル、アプリを主要クラウドプロバイダ(Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode)上で発見するためのツール。

CloudFox

  • CloudFoxは、クラウドインフラ内の悪用可能な攻撃経路を発見するためのツールです(現時点ではAWSとAzureのみ対応、GCPは今後対応予定)。
  • 手動pentestingを補完する列挙ツールです。
  • クラウド環境内のデータを作成・変更しません。

クラウドセキュリティツールの追加リスト

Google

GCP

GCP Pentesting

Workspace

GWS - Workspace Pentesting

AWS

AWS Pentesting

Azure

Azure Pentesting

共通のクラウドセキュリティ機能

機密コンピューティング

Luks2 Header Malleability Null Cipher Abuse

Tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする