Pentesting 클라우드 방법론
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을 제출하여 해킹 트릭을 공유하세요.
기본 방법론
각 클라우드마다 고유한 특성이 있지만 일반적으로 클라우드 환경을 테스트할 때 확인해야 할 몇 가지 common things a pentester should check가 있습니다:
- Benchmark checks
- 이는 환경의 규모를 이해하는 것과 사용되는 서비스를 파악하는 데 도움이 됩니다.
- 대부분의 테스트를 자동화 도구로 수행할 수 있기 때문에 빠른 **잘못된 구성(misconfigurations)**을 찾는 데도 도움이 됩니다.
- Services Enumeration
- 벤치마크 테스트를 올바르게 수행했다면 여기서 더 많은 잘못된 구성을 찾기 어려울 수 있지만, 벤치마크에서 찾지 못한 항목을 발견할 수도 있습니다.
- 이는 클라우드 환경에서 정확히 무엇이 사용되고 있는지 알 수 있게 해줍니다.
- 다음 단계에서 많은 도움이 됩니다.
- Check exposed assets
- 이전 섹션 동안 수행할 수 있으며, 인터넷에 잠재적으로 노출된 모든 것과 그것이 어떻게 접근되는지를 찾아야 합니다.
- 여기서는 웹 페이지나 다른 포트가 노출된 인스턴스와 같은 수동으로 노출된 인프라뿐만 아니라 DBs나 buckets처럼 노출되도록 구성될 수 있는 클라우드 관리형 서비스도 포함합니다.
- 그런 다음 해당 리소스가 노출될 수 있는지 여부(기밀 정보인가? 취약점인가? 노출된 서비스의 설정 오류인가?)를 확인해야 합니다.
- Check permissions
- 여기서는 클라우드 내 각 역할/사용자의 모든 권한을 찾아내고 그것들이 어떻게 사용되는지를 확인해야 합니다.
- 너무 많은 고권한(모든 것을 제어) 계정이 있는가? 생성된 키가 사용되지 않고 있는가?… 대부분의 이러한 점검은 이미 벤치마크 테스트에서 수행되었어야 합니다.
- 클라이언트가 OpenID나 SAML 또는 다른 federation을 사용 중이라면 각 역할이 어떻게 할당되는지에 대해 추가 정보를 요청해야 할 수도 있습니다(관리자 역할이 1명에게 할당되는 것과 100명에게 할당되는 것은 같지 않습니다).
- 단순히 어떤 사용자가 admin 권한 ":"을 가지고 있는지를 찾는 것만으로는 충분하지 않습니다. 사용되는 서비스에 따라 매우 민감한 다른 많은 권한들이 있습니다.
- 또한 권한을 남용하여 따를 수 있는 잠재적 privesc 경로들이 있습니다. 이 모든 것을 고려하고 가능한 많은 privesc 경로를 보고해야 합니다.
- Check Integrations
- 클라우드 환경 내에서 다른 클라우드나 SaaS와의 **통합(integrations)**이 사용되고 있을 가능성이 매우 높습니다.
- 감사를 하는 클라우드와 다른 플랫폼 간의 통합에 대해서는 누가 그 통합을 (남용)할 수 있는지 알려야 하며, 수행되는 작업이 어느 정도 민감한지 물어보아야 합니다.
예를 들어, GCP가 데이터를 가져오는 AWS 버킷에 누가 쓰기 권한이 있는지(그 작업이 GCP에서 해당 데이터를 처리할 때 얼마나 민감한지 물어보세요). - 감사를 하는 클라우드 내부로 외부 플랫폼에서의 통합에 대해서는 외부에서 누가 그 통합을 (남용)할 수 있는지 물어보고 해당 데이터가 어떻게 사용되는지 확인해야 합니다.
예를 들어, 어떤 서비스가 GCR에 호스팅된 Docker 이미지를 사용한다면 누가 그 이미지를 수정할 수 있는지, 그리고 그 이미지가 AWS 클라우드 내부에서 실행될 때 어떤 민감한 정보와 접근 권한을 얻게 되는지 물어보아야 합니다.
Multi-Cloud 도구
여러 클라우드 환경을 테스트하는 데 사용할 수 있는 도구들이 있습니다. 이 섹션에서는 설치 단계와 링크를 안내합니다.
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는 Cloud Providers로부터 Assets (Hostnames, IP Addresses)를 가져오는 multi-cloud tool for getting Assets입니다.
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
회사(대상)의 인프라, 파일 및 앱을 주요 클라우드 제공업체(Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode)에서 찾아주는 도구입니다.
CloudFox
- CloudFox는 cloud infrastructure에서 exploitable attack paths를 찾는 도구입니다(현재는 AWS & Azure만 지원하며 GCP는 추후 지원 예정입니다).
- 수동 pentesting을 보완하도록 설계된 enumeration 도구입니다.
- cloud environment 내의 데이터를 생성하거나 수정하지 않습니다.
More lists of cloud security tools
GCP
Workspace
AWS
Azure
Attack Graph
Stormspotter creates an “attack graph” of the resources in an Azure subscription. 이를 통해 red teams와 pentesters가 attack surface 및 pivot 기회를 시각화할 수 있으며, defenders가 incident response 작업의 우선순위를 빠르게 파악하고 정하는 데 큰 도움을 줍니다.
Office365
Global Admin 또는 최소한 Global Admin Reader 권한이 필요합니다(단, Global Admin Reader는 약간 제한적입니다). 그러나 이러한 제한은 일부 PS modules에서 나타나며, 웹 애플리케이션을 통해 기능에 접근하면 우회할 수 있습니다.
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을 제출하여 해킹 트릭을 공유하세요.
HackTricks Cloud