Pentesting Cloud Methodology

Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Podstawowa metodyka

Każda chmura ma swoje własne specyfiki, ale ogólnie rzecz biorąc, istnieje kilka wspólnych rzeczy, które pentester powinien sprawdzić podczas testowania środowiska chmurowego:

  • Sprawdzenie benchmarku

  • Pomoże to Ci zrozumieć rozmiar środowiska i używane usługi

  • Pozwoli również znaleźć szybkie błędy konfiguracyjne, ponieważ większość tych testów można przeprowadzić za pomocą automatycznych narzędzi

  • Enumeracja usług

  • Prawdopodobnie nie znajdziesz tutaj zbyt wielu błędów konfiguracyjnych, jeśli poprawnie przeprowadziłeś test benchmarku, ale możesz znaleźć niektóre, których nie szukano w teście benchmarku.

  • Pozwoli to Ci dowiedzieć się, co dokładnie jest używane w środowisku chmurowym

  • To bardzo pomoże w kolejnych krokach

  • Sprawdzenie wystawionych zasobów

  • Można to zrobić podczas poprzedniego etapu, musisz znaleźć wszystko, co potencjalnie jest wystawione w jakiś sposób do Internetu i jak można się do tego dostać.

  • Tutaj mam na myśli ręcznie wystawioną infrastrukturę, taką jak instancje z stronami internetowymi lub innymi otwartymi portami, a także inne zarządzane usługi chmurowe, które można skonfigurować do wystawienia (takie jak bazy danych lub kubełki)

  • Następnie powinieneś sprawdzić, czy ten zasób może być wystawiony czy nie (informacje poufne? podatności? błędy konfiguracyjne w wystawionej usłudze?)

  • Sprawdzenie uprawnień

  • Tutaj powinieneś znaleźć wszystkie uprawnienia każdej roli/użytkownika w chmurze i jak są one używane

  • Zbyt wiele kont o wysokich uprawnieniach (kontrolujących wszystko)? Wygenerowane klucze nieużywane?... Większość tych sprawdzeń powinna zostać już wykonana w teście benchmarku

  • Jeśli klient korzysta z OpenID lub SAML lub innej federacji, możesz potrzebować dodatkowych informacji na temat sposobu przypisywania każdej roli (nie jest to to samo, że rola administratora jest przypisana do 1 użytkownika lub do 100)

  • Nie wystarczy znaleźć, które użytkowniki mają uprawnienia administratora "*:*". Istnieje wiele innych uprawnień, które w zależności od używanych usług mogą być bardzo wrażliwe.

  • Ponadto, istnieją potencjalne ścieżki eskalacji uprawnień do śledzenia. Wszystkie te rzeczy powinny być uwzględnione, a należy zgłosić jak najwięcej ścieżek eskalacji uprawnień.

  • Sprawdzenie integracji

  • Bardzo prawdopodobne jest, że używane są integracje z innymi chmurami lub platformami SaaS wewnątrz środowiska chmurowego.

  • Dla integracji chmury, którą audytujesz, z inną platformą powinieneś powiadomić, kto ma dostęp do (nadużywania) tej integracji i powinieneś zapytać, jak wrażliwe jest wykonywane działanie. Na przykład, kto może zapisywać w kubełku AWS, z którego GCP pobiera dane (zapytaj, jak wrażliwe jest działanie w GCP wobec tych danych).

  • Dla integracji wewnątrz chmury, którą audytujesz, z zewnętrznych platform, powinieneś zapytać, kto ma zewnętrzny dostęp do (nadużywania) tej integracji i sprawdzić, jak są wykorzystywane te dane. Na przykład, jeśli usługa korzysta z obrazu Docker hostowanego w GCR, powinieneś zapytać, kto ma dostęp do modyfikacji tego obrazu i jakie wrażliwe informacje i dostęp otrzyma ten obraz, gdy zostanie uruchomiony w chmurze AWS.

Narzędzia wielochmurowe

Istnieje wiele narzędzi, które można użyć do testowania różnych środowisk chmurowych. Kroki instalacji i linki zostaną podane w tej sekcji.

Narzędzie do identyfikacji złych konfiguracji i ścieżek eskalacji uprawnień w chmurach i między chmurami/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

Obsługuje AWS, GCP i Azure. Sprawdź, jak skonfigurować każdego dostawcę na stronie 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

Pobierz i zainstaluj Steampipe (https://steampipe.io/downloads). Lub użyj Brew:

brew tap turbot/tap
brew install steampipe

AWS, GCP, Azure, DigitalOcean. Wymaga python2.7 i wydaje się być nieaktualizowany.

Nessus

Nessus posiada skan Audit Cloud Infrastructure obsługujący: AWS, Azure, Office 365, Rackspace, Salesforce. W przypadku Azure wymagane są dodatkowe konfiguracje w celu uzyskania Client Id.

Cloudlist to narzędzie wielochmurowe do uzyskiwania zasobów (nazw hostów, adresów IP) od dostawców chmury.

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>

Kartografia to narzędzie Python, które konsoliduje zasoby infrastruktury i relacje między nimi w intuicyjnym widoku graficznym zasilanym przez bazę danych 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 zbiera zasoby i relacje z usług i systemów, w tym infrastruktury chmurowej, aplikacji SaaS, kontroli bezpieczeństwa i wiele innych, do intuicyjnego widoku graficznego opartego na bazie danych 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

Odkryj najbardziej uprzywilejowanych użytkowników w skanowanym środowisku AWS lub Azure, w tym AWS Shadow Admins. Wykorzystuje 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

Narzędzie do wyszukiwania infrastruktury, plików i aplikacji firmy (celu) w najpopularniejszych dostawcach chmury (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).

  • CloudFox to narzędzie do wyszukiwania podatnych ścieżek ataku w infrastrukturze chmury (obecnie obsługiwane tylko AWS i Azure, z obsługą GCP wkrótce).

  • Jest to narzędzie do enumeracji, które ma uzupełniać ręczne testowanie penetracyjne.

  • Nie tworzy ani nie modyfikuje żadnych danych w środowisku chmury.

Więcej list narzędzi do bezpieczeństwa chmury

Google

GCP

Workspace

AWS

Azure

Graf ataku

Stormspotter tworzy "graf ataku" zasobów w subskrypcji Azure. Umożliwia zespołom czerwonym i testerom penetracyjnym wizualizację powierzchni ataku i możliwości pivotowania w ramach najemcy, a także umożliwia szybkie zorientowanie się i priorytetyzację działań w zakresie reagowania na incydenty.

Office365

Potrzebujesz uprawnień Global Admin lub przynajmniej Global Admin Reader (ale zauważ, że te ograniczenia występują w niektórych modułach PS i można je ominąć, korzystając z funkcji przez aplikację internetową).

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated