Pentesting Cloud Methodology

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

기본적인 방법론

각 클라우드에는 고유한 특징이 있지만, 일반적으로 클라우드 환경을 테스트할 때 펜테스터가 확인해야 할 몇 가지 공통 사항이 있습니다:

  • 벤치마크 확인

  • 이를 통해 환경의 크기사용되는 서비스를 이해할 수 있습니다.

  • 대부분의 이러한 테스트를 자동화된 도구를 사용하여 수행할 수 있으므로 빠른 잘못된 구성을 찾을 수도 있습니다.

  • 서비스 열거

  • 벤치마크 테스트를 올바르게 수행했다면 여기에서는 크게 더 많은 잘못된 구성을 찾지 못할 수도 있지만, 벤치마크 테스트에서 찾지 못한 일부를 찾을 수도 있습니다.

  • 이를 통해 클라우드 환경에서 정확히 무엇이 사용되고 있는지를 알 수 있습니다.

  • 다음 단계에서 많은 도움이 될 것입니다.

  • 노출된 자산 확인

  • 이는 이전 섹션에서 수행할 수 있으며, 어떤 자산이 어떻게 인터넷에 노출되는지 파악해야 합니다.

  • 여기에서는 웹 페이지나 다른 포트가 노출된 인스턴스와 같은 수동으로 노출된 인프라와 노출될 수 있는 다른 클라우드 관리 서비스(예: DB 또는 버킷)에 대해 이야기합니다.

  • 그런 다음 해당 리소스가 노출될 수 있는지 여부를 확인해야 합니다(기밀 정보? 취약점? 노출된 서비스의 잘못된 구성?).

  • 권한 확인

  • 여기에서는 클라우드 내의 각 역할/사용자의 모든 권한과 그 사용 방법을 알아내야 합니다.

  • 모든 것을 제어할 수 있는 너무 많은 권한이 있는 계정? 사용되지 않는 생성된 키?... 이러한 대부분의 확인은 이미 벤치마크 테스트에서 수행되어야 합니다.

  • 클라이언트가 OpenID 또는 SAML 또는 기타 페더레이션을 사용하는 경우 각 역할이 어떻게 할당되는지에 대한 자세한 정보를 요청해야 할 수도 있습니다(관리자 역할이 1명 또는 100명에게 할당되는 것은 같지 않습니다).

  • 관리자 권한 "*:*"을 가진 사용자를 찾는 것만으로는 충분하지 않습니다. 사용되는 서비스에 따라 매우 민감한 다른 권한이 많이 있습니다.

  • 게다가 권한을 남용할 수 있는 잠재적인 권한 상승 경로도 있습니다. 이러한 모든 사항을 고려해야 하며, 가능한 많은 권한 상승 경로를 보고해야 합니다.

  • 통합 확인

  • 클라우드 환경 내에서 다른 클라우드 또는 SaaS와의 통합이 사용되고 있을 확률이 매우 높습니다.

  • 감사 중인 클라우드의 다른 플랫폼과의 통합에 대해 (남용할 수 있는) 누가 액세스할 수 있는지 알려주어야 하며 수행되는 작업이 얼마나 민감한지 물어봐야 합니다. 예를 들어, GCP가 데이터를 가져오는 AWS 버킷에 쓸 수 있는 사람은 누구인지 (GCP에서 그 데이터를 처리할 때 그 작업이 얼마나 민감한지) 물어봐야 합니다.

  • 외부 플랫폼에서 감사 중인 클라우드 내의 통합에 대해, 외부에서 (남용할 수 있는) 누가 액세스할 수 있는지 알아보고 해당 데이터가 어떻게 사용되는지 확인해야 합니다. 예를 들어, 서비스가 GCR에 호스팅된 Docker 이미지를 사용하는 경우 해당 이미지를 수정할 수 있는 사람과 해당 이미지가 AWS 클라우드 내에서 실행될 때 어떤 민감한 정보와 액세스가 제공되는지 확인해야 합니다.

Multi-Cloud 도구

다양한 클라우드 환경을 테스트하는 데 사용할 수 있는 여러 도구가 있습니다. 설치 단계와 링크는 이 섹션에서 나와 있습니다.

클라우드 및 클라우드/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, 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는 AWS, Azure, Office 365, Rackspace, Salesforce를 지원하는 Audit Cloud Infrastructure 스캔을 제공합니다. 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 데이터베이스를 기반으로 한 직관적인 그래프 뷰에서 인프라 자산과 그들 간의 관계를 통합하는 파이썬 도구입니다.

# 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 환경에서 가장 권한이 있는 사용자를 발견하십시오. 이는 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를 지원하는 다른 방법:

最終更新