Pentesting Cloud Methodology

支持 HackTricks

基本方法论

每个云都有其独特之处,但一般来说,进行云环境测试时,渗透测试人员应该检查一些共同事项

  • 基准检查

  • 这将帮助你了解环境的规模使用的服务

  • 这也将使你能够找到一些快速的错误配置,因为你可以使用自动化工具执行大部分测试

  • 服务枚举

  • 如果你正确执行了基准测试,你可能不会在这里发现更多的错误配置,但你可能会发现一些在基准测试中未被关注的配置。

  • 这将使你知道在云环境中到底使用了什么

  • 这在接下来的步骤中会有很大帮助

  • 检查暴露的资产

  • 这可以在前面的部分中完成,你需要找出所有可能暴露于互联网的内容以及如何访问它。

  • 这里我指的是手动暴露的基础设施,如具有网页的实例或其他暴露的端口,以及其他可以配置为暴露的云管理服务(如数据库或存储桶)

  • 然后你应该检查该资源是否可以被暴露(机密信息?漏洞?暴露服务中的错误配置?)

  • 检查权限

  • 在这里你应该找出每个角色/用户的所有权限以及它们是如何使用的

  • 过多的高权限(控制一切)账户?未使用的生成密钥?... 大部分这些检查应该已经在基准测试中完成

  • 如果客户使用 OpenID 或 SAML 或其他联合,你可能需要向他们询问有关每个角色是如何分配的的进一步信息(管理员角色分配给 1 个用户或 100 个用户是不同的)

  • 仅仅找到哪些用户具有管理员权限 "*:*" 是不够的。还有很多其他权限,根据使用的服务可能非常敏感

  • 此外,还有潜在的权限提升方式可以通过滥用权限来跟进。所有这些都应该考虑在内,并且应该报告尽可能多的权限提升路径

  • 检查集成

  • 很可能在云环境中使用了与其他云或 SaaS 的集成

  • 对于你正在审计的云与其他平台的集成,你应该通知谁有权访问(滥用)该集成,并询问执行该操作的敏感性。 例如,谁可以在 AWS 存储桶中写入 GCP 正在获取数据的内容(询问在 GCP 中处理该数据的操作的敏感性)。

  • 对于你正在审计的云内部的集成来自外部平台,你应该询问谁有外部访问权限(滥用)该集成,并检查该数据是如何使用的。 例如,如果一个服务使用托管在 GCR 中的 Docker 镜像,你应该询问谁有权修改该镜像,以及在 AWS 云中执行该镜像时将获得哪些敏感信息和访问权限。

多云工具

有几种工具可以用于测试不同的云环境。安装步骤和链接将在本节中指明。

一个识别云及跨云/SaaS 中错误配置和权限提升路径的工具。

# 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, 阿里云, 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 有一个 审计云基础设施 扫描,支持: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 是一个 Python 工具,它将基础设施资产及其之间的关系整合在一个由 Neo4j 数据库驱动的直观图形视图中。

# 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

一个工具,用于在主要云服务提供商(亚马逊、谷歌、微软、DigitalOcean、阿里巴巴、Vultr、Linode)上查找公司的(目标)基础设施、文件和应用程序。

  • CloudFox 是一个用于查找云基础设施中可利用攻击路径的工具(目前仅支持 AWS 和 Azure,GCP 即将推出)。

  • 这是一个枚举工具,旨在补充手动 pentesting。

  • 它不会在云环境中创建或修改任何数据。

更多云安全工具列表

Google

GCP

Workspace

AWS

Azure

Attack Graph

Stormspotter 创建 Azure 订阅中资源的“攻击图”。它使红队和 pentesters 能够可视化攻击面和租户内的转移机会,并增强您的防御者快速定位和优先处理事件响应工作的能力。

Office365

您需要 Global Admin 或至少 Global Admin Reader(但请注意,Global Admin Reader 有一些限制)。然而,这些限制出现在某些 PS 模块中,可以通过 通过网络应用程序 访问功能来绕过。

支持 HackTricks

Last updated