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

基本方法

每个云都有其自身的特殊性,但总体上在测试云环境时有几项是 pentester 应该检查的常见事项

  • 基准检查
  • 这将帮助你 了解环境规模使用的服务
  • 这也能让你找到一些 快速的错误配置,因为你可以使用 自动化工具 执行大部分这些测试
  • Services Enumeration
  • 如果你之前正确执行了基准测试,这里可能不会发现太多新的错误配置,但你可能会找到基准测试中未覆盖到的项。
  • 这将让你知道 云环境中到底使用了哪些服务
  • 这对后续步骤非常有帮助
  • 检查对外暴露的资产
  • 这可以在前一部分同时进行,你需要 找出所有可能以某种方式暴露在互联网上的资源,以及如何访问它们。
  • 这里我指的是 手动暴露的基础设施,比如有网页或其他端口暴露的实例,以及那些可以被配置为对外暴露的 云托管服务(例如 DBs 或 buckets)
  • 然后你应该检查 该资源是否可以被暴露(敏感信息?漏洞?暴露服务的错误配置?)
  • 检查权限
  • 在这里你应该 找出云中每个 role/user 的所有权限 以及这些权限如何被使用
  • 是否存在太多 高权限(可以控制一切) 账号?生成的 key 未被使用?…… 这些检查大多数应该已经在基准测试中完成
  • 如果客户使用 OpenID 或 SAML 或其他 federation,你可能需要向他们询问更多 关于每个 role 如何被分配信息(把 admin role 分配给 1 个用户和分配给 100 个用户并不是一回事)
  • 仅仅找出哪些用户具有 admin 权限 “*:*” 是 不够的。还有很多 其他权限,根据所使用的服务可能非常 敏感
  • 此外,存在滥用权限的 潜在 privesc 路径。所有这些都应被考虑在内,并尽可能报告 尽可能多的 privesc 路径
  • 检查集成
  • 非常可能在云环境中使用了 与其他云或 SaaS 的集成
  • 对于 你正在审计的云与其他平台之间的集成,你应当通知 谁有权限访问并(滥用)该集成,并询问该操作的 敏感性
    例如,谁可以向一个 AWS bucket 写入数据,而 GCP 从中获取数据(询问在 GCP 中处理这些数据的操作有多敏感)。
  • 对于 来自外部平台与被审计云之间的集成,你应询问 谁有外部访问权限可以(滥用)该集成,并检查这些数据如何被使用。
    例如,如果某个服务使用托管在 GCR 的 Docker image,你应询问谁有权限修改该镜像,以及该镜像在被执行于 AWS cloud 内时将获得哪些敏感信息和访问权限。

Multi-Cloud tools

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

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 是一个 多云工具,用于获取资产(主机名、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

Cartography 是一个 Python 工具,用于在由 Neo4j database 提供支持的直观图视图中整合基础设施资产及它们之间的关系。

# 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 是一个用于在 cloud infrastructure 中发现可利用攻击路径的工具(目前仅支持 AWS & Azure,GCP 即将支持)。
  • 它是一个 enumeration tool,旨在补充手动 pentesting。
  • 它不会在 cloud environment 中创建或修改任何数据。

更多 cloud 安全工具列表

Google

GCP

GCP Pentesting

Workspace

GWS - Workspace Pentesting

AWS

AWS Pentesting

Azure

Azure Pentesting

常见 Cloud 安全功能

机密计算

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