Pentesting Cloud Methodology

AWSハッキングをゼロからヒーローまで学ぶ htARTE (HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

基本的な方法論

各クラウドには独自の特徴がありますが、一般的には、クラウド環境をテストする際にペネトレーションテスターがチェックすべきいくつかの共通点があります:

  • ベンチマークチェック

  • これにより、環境の規模を理解し、使用されているサービスを把握できます

  • ほとんどのテストを自動化ツールで実行できるため、いくつかの速やかな誤設定を見つけることもできます

  • サービス列挙

  • ベンチマークテストを正しく実施した場合、ここで多くの誤設定を見つけることはないかもしれませんが、ベンチマークテストでは探されていなかったものを見つけることができるかもしれません。

  • これにより、クラウド環境で正確に何が使用されているかを知ることができます

  • これは次のステップに大いに役立ちます

  • 露出している資産のチェック

  • これは前のセクション中に行うことができます。インターネットに何らかの形で潜在的に露出しているすべてを見つけ出し、どのようにアクセスできるかを把握する必要があります。

  • ここでは、ウェブページや他のポートが露出しているインスタンスのような手動で露出したインフラと、露出するように設定できるクラウド管理サービス(DBやバケットなど)について取り上げています

  • 次に、そのリソースが露出してもよいかどうかをチェックする必要があります(機密情報?脆弱性?露出したサービスの誤設定?)

  • 権限のチェック

  • ここでは、クラウド内の各ロール/ユーザーのすべての権限を見つけ出し、それらがどのように使用されているかを把握する必要があります

  • 多くの高権限(すべてを制御)アカウント?使用されていない生成されたキー?... これらのチェックのほとんどは、すでにベンチマークテストで行われているはずです

  • クライアントがOpenIDやSAML、または他のフェデレーションを使用している場合、各ロールがどのように割り当てられているかについてさらに情報を求める必要があるかもしれません(管理者ロールが1ユーザーに割り当てられているのと100ユーザーに割り当てられているのとでは同じではありません)

  • 管理者権限を持つユーザーを見つけるだけでは十分ではありません "*:*"。使用されているサービスに応じて非常にセンシティブ他の権限がたくさんあります。

  • さらに、権限を悪用してプライベートエスカレーション(privesc)の方法があります。これらすべてのことを考慮に入れ、可能な限り多くのprivescパスを報告する必要があります。

  • 統合のチェック

  • クラウド環境内で他のクラウドやSaaSとの統合が使用されている可能性が非常に高いです。

  • 監査しているクラウドの他のプラットフォームとの統合については、その統合を(悪用して)使用することができるアクセス権を持つ人を通知し、実行されているアクションがどれだけセンシティブであるかを尋ねる必要があります。 例えば、GCPがデータを取得しているAWSバケットに誰が書き込むことができるか(GCPがそのデータを扱うアクションがどれだけセンシティブかを尋ねる)。

  • 外部プラットフォームから監査しているクラウド内の統合については、その統合を外部から(悪用して)使用することができるアクセス権を持つ人を尋ね、そのデータがどのように使用されているかをチェックする必要があります。 例えば、サービスがGCRでホストされているDockerイメージを使用している場合、そのイメージを変更するアクセス権を持つ人を尋ね、AWSクラウド内で実行されたときにそのイメージがどのような機密情報とアクセスを得るかをチェックする必要があります。

マルチクラウドツール

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

クラウドおよびクラウド/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

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

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

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をダウンロードしてインストールしてください(https://steampipe.io/downloads)。またはBrewを使用します:

brew tap turbot/tap
brew install steampipe

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

Nessus

Nessusには_Audit Cloud Infrastructure_ スキャンがあり、AWS、Azure、Office 365、Rackspace、Salesforceをサポートしています。Azureで追加の設定が必要で、Client Idを取得する必要があります。

Cloudlistは、クラウドプロバイダーからアセット(ホスト名、IPアドレス)を取得するためのマルチクラウドツールです。

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は、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は、クラウドインフラストラクチャ、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

スキャンされた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

トップクラウドプロバイダー(Amazon、Google、Microsoft、DigitalOcean、Alibaba、Vultr、Linode)上で、企業(ターゲット)のインフラストラクチャ、ファイル、アプリを見つけるツールです。

  • CloudFoxは、クラウドインフラストラクチャ(現在はAWSとAzureのみ対応、GCPは近日対応予定)内の攻撃可能なパスを見つけるツールです。

  • これは列挙ツールであり、手動のペネトレーションテストを補完することを目的としています。

  • クラウド環境内でデータを作成または変更することはありません。

クラウドセキュリティツールのさらなるリスト

Google

GCP

pageGCP Pentesting

Workspace

pageGWS - Workspace Pentesting

AWS

pageAWS Pentesting

Azure

pageAzure Pentesting

攻撃グラフ

Stormspotter はAzureサブスクリプション内のリソースの「攻撃グラフ」を作成します。これにより、レッドチームとペネトレーションテスターは、テナント内の攻撃面とピボットの機会を視覚化し、ディフェンダーはインシデント対応作業を迅速に方向付け、優先順位を決定することができます。

Office365

Global Adminまたは少なくともGlobal Admin Reader(ただしGlobal Admin ReaderはいくつかのPSモジュールで制限があります)が必要です。ただし、これらの制限はウェブアプリケーション経由で機能にアクセスすることで回避できます。

htARTE (HackTricks AWS Red Team Expert)でAWSのハッキングをゼロからヒーローまで学ぶ こちら

HackTricksをサポートする他の方法:

最終更新