Pentesting Cloud Methodology

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Temel Metodoloji

Her bulutun kendine özgü özellikleri olsa da, genel olarak bir bulut ortamını test ederken bir pentester'ın kontrol etmesi gereken birkaç ortak şey vardır:

  • Benchmarks kontrolleri

  • Bu, ortamın boyutunu ve kullanılan hizmetleri anlamanıza yardımcı olur

  • Ayrıca, bu testlerin çoğunu otomatik araçlarla gerçekleştirebileceğiniz için bazı hızlı yanlı yapılandırmaları bulmanıza olanak sağlar

  • Hizmetlerin Sıralaması

  • Eğer benchmark testlerini doğru bir şekilde gerçekleştirdiyseniz, burada çok fazla yanlı yapılandırma bulamayabilirsiniz, ancak benchmark testinde aranmayan bazı yanlı yapılandırmaları bulabilirsiniz.

  • Bu, bulut ortamında tam olarak neyin kullanıldığını bilmenizi sağlar

  • Bu, bir sonraki adımlarda çok yardımcı olacaktır

  • Açığa çıkarılan varlıkları kontrol edin

  • Bu, önceki bölümde yapılabilir, potansiyel olarak İnternet'e açık olan her şeyi ve nasıl erişilebileceğini bulmanız gerekmektedir.

  • Burada, web sayfaları veya diğer portlarla açığa çıkarılan manuel olarak açığa çıkarılan altyapıyı ve ayrıca açığa çıkarılabilecek diğer bulut yönetilen hizmetleri (örneğin DB'ler veya kovalar) ele alıyorum.

  • Ardından, o kaynağın açığa çıkarılıp çıkarılamayacağını kontrol etmelisiniz (gizli bilgi mi? zafiyetler mi? açığa çıkarılan hizmette yanlı yapılandırmalar mı?)

  • İzinleri kontrol edin

  • Burada, bulutta her bir rol/kullanıcının tüm izinlerini bulmanız ve nasıl kullanıldığını öğrenmeniz gerekmektedir

  • Çok fazla yüksek ayrıcalıklı (her şeyi kontrol eden) hesap mı var? Kullanılmayan oluşturulmuş anahtarlar mı var?... Bu kontrollerin çoğu zaten benchmark testlerinde yapılmış olmalıdır

  • İstemci OpenID veya SAML veya diğer federasyon kullanıyorsa, her bir rolün nasıl atanmış olduğu hakkında daha fazla bilgi istemeniz gerekebilir (admin rolünün 1 kullanıcıya mı yoksa 100 kullanıcıya mı atanmış olduğu aynı değildir)

  • Sadece hangi kullanıcıların admin izinlerine sahip olduğunu bulmak yeterli değildir "*:*". Kullanılan hizmetlere bağlı olarak çok sayıda diğer izin vardır ve bunlar çok duyarlı olabilir.

  • Dahası, izinleri kötüye kullanarak takip edilebilecek potansiyel ayrıcalık yükseltme yolları vardır. Tüm bu şeyler göz önünde bulundurulmalı ve mümkün olan en fazla ayrıcalık yükseltme yolu bildirilmelidir.

  • Entegrasyonları kontrol edin

  • Muhtemelen bulut ortamında diğer bulutlar veya SaaS'larla entegrasyonlar kullanılıyor.

  • Denetlediğiniz bulutun diğer platformlarla entegrasyonları için, o entegrasyona kimin erişimi olduğunu (kötüye kullanma) bildirmeli ve yapılan işlemin ne kadar duyarlı olduğunu sormalısınız. Örneğin, GCP'nin veri aldığı bir AWS kovasına kimin yazabileceğini (GCP'nin o veriyi nasıl işlediğini sormalısınız).

  • Dış platformlardan denetlediğiniz buluta entegre olan entegrasyonlar için, o entegrasyona dışarıdan kimin erişimi olduğunu (kötüye kullanma) sormalı ve o verinin nasıl kullanıldığını kontrol etmelisiniz. Örneğin, bir hizmetin GCR'de barındırılan bir Docker görüntüsünü kullandığı durumda, kimin bunu değiştirmeye erişimi olduğunu ve bu görüntünün bir AWS bulutunda çalıştırıldığında hangi hassas bilgilere ve erişime sahip olacağını sormalısınız.

Çoklu Bulut Araçları

Farklı bulut ortamlarını test etmek için kullanılabilecek birkaç araç vardır. Kurulum adımları ve bağlantılar bu bölümde belirtilecektir.

Bulutlarda ve bulutlar/SaaS'lar arasında yanlı yapılandırmaları ve ayrıcalık yükseltme yollarını belirlemek için bir araç.

# 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 ve Azure'yi destekler. Her sağlayıcının nasıl yapılandırılacağını https://docs.prowler.cloud/en/latest/#aws adresinden kontrol edin.

# 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'i indirin ve kurun (https://steampipe.io/downloads). Veya Brew kullanın:

brew tap turbot/tap
brew install steampipe

AWS, GCP, Azure, DigitalOcean. Python2.7 gerektirir ve bakımsız görünüyor.

Nessus

Nessus, AWS, Azure, Office 365, Rackspace, Salesforce'u destekleyen bir Audit Cloud Infrastructure taramasına sahiptir. Azure için bazı ek yapılandırmalar bir Client Id elde etmek için gereklidir.

Cloudlist, Bulut Sağlayıcılardan Varlıkları (Ana Bilgisayar Adları, IP Adresleri) almak için bir çoklu bulut aracıdır.

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
## For GCP it requires service account JSON credentials
cloudlist -config </path/to/config>

Cartography, bir Neo4j veritabanı tarafından desteklenen sezgisel bir graf görünümünde altyapı varlıklarını ve aralarındaki ilişkileri birleştiren bir Python aracıdır.

# 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, bulut altyapısı, SaaS uygulamaları, güvenlik kontrolleri ve daha fazlası gibi hizmetlerden ve sistemlerden varlıkları ve ilişkileri toplar ve Neo4j veritabanı tarafından desteklenen sezgisel bir grafik görünümüne dönüştürür.

# 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

Taranan AWS veya Azure ortamında en ayrıcalıklı kullanıcıları, AWS Shadow Admin'leri dahil olmak üzere keşfedin. PowerShell kullanır.

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

Bir şirketin (hedef) altyapısını, dosyalarını ve uygulamalarını en popüler bulut sağlayıcılarında (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode) bulmak için bir araç.

  • CloudFox, bulut altyapısında sömürülebilir saldırı yollarını bulmak için bir araçtır (şu anda yalnızca AWS ve Azure desteklenmektedir, GCP yakında gelecek).

  • Bu, manuel pentesting'i tamamlayan bir numaralandırma aracıdır.

  • Bulut ortamında herhangi bir veri oluşturmaz veya değiştirmez.

Daha fazla bulut güvenlik aracı listesi

Google

GCP

pageGCP Pentesting

Workspace

pageGWS - Workspace Pentesting

AWS

pageAWS Pentesting

Azure

pageAzure Pentesting

Saldırı Grafiği

Stormspotter , bir Azure aboneliğindeki kaynakların bir "saldırı grafiği" oluşturur. Kırmızı takımların ve pentesterların kiracı içindeki saldırı yüzeyini ve dönüşüm fırsatlarını görselleştirmesini sağlar ve savunucularını hızla yönlendirir ve olay yanıtı çalışmalarını önceliklendirir.

Office365

Global Admin veya en azından Global Admin Reader gereklidir (ancak Global Admin Reader biraz sınırlıdır). Bununla birlikte, bu sınırlamalar bazı PS modüllerinde ortaya çıkar ve özelliklere web uygulaması üzerinden erişerek atlanabilir.

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Last updated