Pentesting Cloud Methodology

从零开始学习AWS黑客技术,成为英雄 htARTE (HackTricks AWS Red Team Expert)

支持HackTricks的其他方式:

基本方法论

每个云都有其特殊性,但总体上有一些渗透测试者在测试云环境时应该检查的常见事项

  • 基准检查

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

  • 它还将允许您找到一些快速的配置错误,因为您可以使用自动化工具执行大多数测试

  • 服务枚举

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

  • 这将使您了解云环境中确切使用的内容

  • 这将在下一步中大有帮助

  • 检查暴露的资产

  • 这可以在上一节期间完成,您需要找出所有可能以某种方式暴露给互联网的内容以及如何访问它。

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

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

  • 检查权限

  • 这里您应该找出云中每个角色/用户的所有权限以及它们的使用方式

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

  • 如果客户正在使用OpenID或SAML或其他联合身份认证,您可能需要向他们进一步询问每个角色是如何分配的信息(管理员角色分配给1个用户还是100个用户并不相同)

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

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

  • 检查集成

  • 高度可能云环境内部或SaaS与其他云的集成正在使用。

  • 对于您正在审计的云与其他平台的集成,您应该通知谁有权限(滥用)使用该集成,并且您应该询问执行的操作有多敏感。 例如,谁可以在AWS从中获取数据的存储桶中写入(询问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中需要一些额外配置来获取客户端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

一款用于在顶级云提供商(Amazon、Google、Microsoft、DigitalOcean、Alibaba、Vultr、Linode)上找到公司(目标)基础设施、文件和应用程序的工具。

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

  • 它是一个枚举工具,旨在补充手动渗透测试。

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

更多云安全工具列表

Google

GCP

GCP Pentesting

Workspace

GWS - Workspace Pentesting

AWS

AWS Pentesting

Azure

Azure Pentesting

攻击图

Stormspotter 创建 Azure 订阅资源的“攻击图”。它使红队和渗透测试人员能够可视化攻击面和租户内的枢纽机会,并极大地加强防御者快速定位和优先处理事件响应工作。

Office365

您需要 全局管理员 或至少 全局管理员阅读器(但请注意全局管理员阅读器有些限制)。然而,这些限制出现在一些 PS 模块中,并且可以通过 通过网络应用程序 访问功能来绕过。

通过 htARTE (HackTricks AWS 红队专家) 从零开始学习 AWS 黑客攻击!

支持 HackTricks 的其他方式:

Last updated