Pentesting Cloud Methodology
Reading time: 11 minutes
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 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
Basic Methodology
각 클라우드는 고유한 특성을 가지고 있지만, 일반적으로 클라우드 환경을 테스트할 때 펜테스터가 확인해야 할 몇 가지 공통 사항이 있습니다:
- 벤치마크 체크
- 이는 환경의 크기와 사용되는 서비스를 이해하는 데 도움이 됩니다.
- 또한 자동화 도구를 사용하여 대부분의 테스트를 수행할 수 있으므로 일부 빠른 잘못된 구성을 찾을 수 있습니다.
- 서비스 열거
- 벤치마크 테스트를 올바르게 수행했다면 여기에서 더 이상 잘못된 구성을 찾지 못할 가능성이 높지만, 벤치마크 테스트에서 찾지 못한 일부를 발견할 수 있습니다.
- 이는 클라우드 환경에서 정확히 무엇이 사용되고 있는지 알 수 있게 해줍니다.
- 이는 다음 단계에서 많은 도움이 됩니다.
- 노출된 자산 확인
- 이는 이전 섹션에서 수행할 수 있으며, 인터넷에 잠재적으로 노출된 모든 것과 어떻게 접근할 수 있는지를 찾아야 합니다.
- 여기서는 수동으로 노출된 인프라(웹 페이지가 있는 인스턴스나 다른 포트가 노출된 경우)와 노출되도록 구성할 수 있는 다른 클라우드 관리 서비스(예: DB 또는 버킷)에 대해 다룹니다.
- 그런 다음 해당 리소스가 노출될 수 있는지 여부를 확인해야 합니다(기밀 정보? 취약점? 노출된 서비스의 잘못된 구성?).
- 권한 확인
- 여기서는 클라우드 내 각 역할/사용자의 모든 권한을 찾아야 하며, 그것들이 어떻게 사용되는지를 확인해야 합니다.
- 너무 많은 고급 권한(모든 것을 제어하는) 계정이 있습니까? 생성된 키가 사용되지 않습니까?... 이러한 대부분의 체크는 이미 벤치마크 테스트에서 수행되었어야 합니다.
- 클라이언트가 OpenID 또는 SAML 또는 다른 연합을 사용하고 있다면, 각 역할이 어떻게 할당되는지에 대한 추가 정보를 요청해야 할 수 있습니다(관리자 역할이 1명에게 할당되는 것과 100명에게 할당되는 것은 다릅니다).
- 관리자 권한 "*:*"을 가진 사용자를 찾는 것만으로는 충분하지 않습니다. 사용되는 서비스에 따라 매우 민감할 수 있는 다른 권한이 많이 있습니다.
- 게다가, 권한을 남용하여 잠재적인 권한 상승 방법이 있습니다. 이러한 모든 사항을 고려해야 하며, 가능한 한 많은 권한 상승 경로를 보고해야 합니다.
- 통합 확인
- 클라우드 환경 내에서 다른 클라우드 또는 SaaS와의 통합이 사용되고 있을 가능성이 높습니다.
- 감사 중인 클라우드의 통합에 대해, 그 통합을 (남용할) 수 있는 접근 권한이 있는 사람을 알려야 하며, 수행되는 작업이 얼마나 민감한지를 물어봐야 합니다.
예를 들어, GCP가 데이터를 가져오는 AWS 버킷에 쓸 수 있는 사람은 누구인지(그 데이터 처리에서 GCP의 작업이 얼마나 민감한지 물어보세요). - 감사 중인 클라우드 내에서 외부 플랫폼의 통합에 대해, 그 통합을 (남용할) 수 있는 외부 접근 권한이 있는 사람을 물어보고, 해당 데이터가 어떻게 사용되고 있는지를 확인해야 합니다.
예를 들어, 서비스가 GCR에 호스팅된 Docker 이미지를 사용하는 경우, 이를 수정할 수 있는 사람과 AWS 클라우드 내에서 실행될 때 해당 이미지가 어떤 민감한 정보와 접근 권한을 가지는지 물어봐야 합니다.
Multi-Cloud tools
여러 클라우드 환경을 테스트하는 데 사용할 수 있는 여러 도구가 있습니다. 설치 단계와 링크는 이 섹션에서 안내될 것입니다.
PurplePanda
클라우드 및 클라우드/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
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는 AWS, Azure, Office 365, Rackspace, Salesforce를 지원하는 클라우드 인프라 감사 스캔을 제공합니다. Client Id를 얻기 위해 Azure에서 추가 구성이 필요합니다.
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는 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
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
회사의 (대상) 인프라, 파일 및 앱을 주요 클라우드 제공업체(아마존, 구글, 마이크로소프트, 디지털오션, 알리바바, 벌트르, 리노드)에서 찾기 위한 도구입니다.
CloudFox
- CloudFox는 클라우드 인프라에서 악용 가능한 공격 경로를 찾기 위한 도구입니다(현재 AWS 및 Azure만 지원하며 GCP는 곧 지원 예정).
- 수동 펜테스팅을 보완하기 위한 열거 도구입니다.
- 클라우드 환경 내에서 데이터를 생성하거나 수정하지 않습니다.
클라우드 보안 도구 목록 더 보기
GCP
Workspace
AWS
Azure
Attack Graph
Stormspotter 는 Azure 구독의 리소스에 대한 “공격 그래프”를 생성합니다. 이는 레드 팀과 펜테스터가 테넌트 내에서 공격 표면과 피벗 기회를 시각화할 수 있게 하며, 방어자가 사건 대응 작업을 신속하게 정렬하고 우선순위를 정할 수 있도록 지원합니다.
Office365
Global Admin 또는 최소한 Global Admin Reader가 필요합니다(단, Global Admin Reader는 약간 제한적입니다). 그러나 이러한 제한은 일부 PS 모듈에서 나타나며 웹 애플리케이션을 통해 기능에 접근하여 우회할 수 있습니다.
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 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.