GCP Pentesting

Support HackTricks

Taarifa za Msingi

Kabla ya kuanza pentesting mazingira ya GCP, kuna mambo machache ya msingi unayohitaji kujua kuhusu jinsi inavyofanya kazi ili kukusaidia kuelewa unachohitaji kufanya, jinsi ya kupata misconfigurations na jinsi ya kuzitumia.

Mafunzo kama vile hierarchy ya shirika, ruhusa na dhana nyingine za msingi zimeelezwa katika:

GCP - Basic Information

Maabara za kujifunza

Mbinu za GCP Pentester/Red Team

Ili kufanya ukaguzi wa mazingira ya GCP ni muhimu sana kujua: ni huduma zipi zinatumika, nini kinachofichuliwa, nani ana upatikanaji wa nini, na jinsi huduma za ndani za GCP na huduma za nje zimeunganishwa.

Kutoka kwa mtazamo wa Red Team, hatua ya kwanza ya kuathiri mazingira ya GCP ni kupata credentials fulani. Hapa kuna mawazo kadhaa ya jinsi ya kufanya hivyo:

  • Leaks katika github (au sawa) - OSINT

  • Uhandisi wa Kijamii (Angalia ukurasa Workspace Security)

  • Matumizi ya nywila (password leaks)

  • Udhaifu katika Programu Zinazohifadhiwa na GCP

  • Server Side Request Forgery yenye upatikanaji wa metadata endpoint

  • Usomaji wa Faili za Ndani

  • /home/USERNAME/.config/gcloud/*

  • C:\Users\USERNAME\.config\gcloud\*

  • 3rd parties breached

  • Mfanyakazi wa Ndani

Au kwa kuathiri huduma isiyo na uthibitisho iliyofichuliwa:

GCP - Unauthenticated Enum & Access

Au kama unafanya ukaguzi unaweza tu kuomba credentials na majukumu haya:

GCP - Permissions for a Pentest

Baada ya kufanikiwa kupata credentials, unahitaji kujua credentials hizo ni za nani, na wana upatikanaji wa nini, hivyo unahitaji kufanya baadhi ya uchunguzi wa msingi:

Uchunguzi wa Msingi

SSRF

Kwa maelezo zaidi kuhusu jinsi ya kuchunguza metadata ya GCP angalia ukurasa wa hacktricks ufuatao:

Whoami

Katika GCP unaweza kujaribu chaguzi kadhaa kujaribu kubaini wewe ni nani:

#If you are inside a compromise machine
gcloud auth list
curl -H "Content-Type: application/x-www-form-urlencoded" -d "access_token=$(gcloud auth print-access-token)" https://www.googleapis.com/oauth2/v1/tokeninfo
gcloud auth print-identity-token #Get info from the token

#If you compromised a metadata token or somehow found an OAuth token
curl -H "Content-Type: application/x-www-form-urlencoded" -d "access_token=<token>" https://www.googleapis.com/oauth2/v1/tokeninfo

Org Enumeration

Uorodheshaji wa Shirika

# Get organizations
gcloud organizations list #The DIRECTORY_CUSTOMER_ID is the Workspace ID
gcloud resource-manager folders list --organization <org_number> # Get folders
gcloud projects list # Get projects

Principals & IAM Enumeration

Ikiwa una ruhusa za kutosha, kukagua haki za kila chombo ndani ya akaunti ya GCP itakusaidia kuelewa unachoweza kufanya wewe na vitambulisho vingine na jinsi ya kuongeza haki.

Ikiwa huna ruhusa za kutosha kuorodhesha IAM, unaweza kuiba kwa nguvu ili kuzitambua. Angalia jinsi ya kufanya orodha na nguvu katika:

GCP - IAM, Principals & Org Policies Enum

Sasa kwa kuwa una habari kuhusu vitambulisho vyako (na ikiwa wewe ni timu nyekundu unatumaini hujaonekana). Ni wakati wa kujua ni huduma gani zinatumika katika mazingira. Katika sehemu ifuatayo unaweza kuangalia njia kadhaa za kuorodhesha huduma za kawaida.

Services Enumeration

GCP ina idadi kubwa ya huduma, katika ukurasa ufuatao utapata habari za msingi, orodha za cheatsheets, jinsi ya kuepuka kugunduliwa, kupata kuendelea, na mbinu zingine za baada ya unyonyaji kuhusu baadhi yao:

GCP - Services

Kumbuka kwamba huna haja ya kufanya kazi yote kwa mikono, hapa chini katika chapisho hili unaweza kupata sehemu kuhusu vifaa vya kiotomatiki.

Zaidi ya hayo, katika hatua hii unaweza kugundua huduma zaidi zilizo wazi kwa watumiaji wasio na uthibitisho, unaweza kuweza kuzitumia:

GCP - Unauthenticated Enum & Access

Privilege Escalation, Post Exploitation & Persistence

Njia ya kawaida mara tu unapopata vitambulisho vya wingu au umedhibiti huduma fulani inayoendesha ndani ya wingu ni kutumia haki zilizosanidiwa vibaya ambazo akaunti iliyodhibitiwa inaweza kuwa nazo. Kwa hivyo, jambo la kwanza unalopaswa kufanya ni kuorodhesha haki zako.

Zaidi ya hayo, wakati wa orodha hii, kumbuka kwamba ruhusa zinaweza kuwekwa katika kiwango cha juu cha "Shirika" pia.

GCP - Privilege EscalationGCP - Post ExploitationGCP - Persistence

Publicly Exposed Services

Wakati wa kuorodhesha huduma za GCP unaweza kuwa umepata baadhi yao zinazoonyesha vipengele kwa Intaneti (bandari za VM/Containers, hifadhidata au huduma za foleni, picha au ndoo...). Kama pentester/timu nyekundu unapaswa kila wakati kuangalia ikiwa unaweza kupata habari nyeti / udhaifu juu yao kwani zinaweza kukupa upatikanaji zaidi katika akaunti ya AWS.

Katika kitabu hiki unapaswa kupata habari kuhusu jinsi ya kupata huduma za GCP zilizo wazi na jinsi ya kuzichunguza. Kuhusu jinsi ya kupata udhaifu katika huduma za mtandao zilizo wazi ningependekeza kutafuta huduma maalum katika:

GCP <--> Workspace Pivoting

Kudhibiti vitambulisho katika jukwaa moja kunaweza kumruhusu mshambulizi kudhibiti jingine, angalia katika:

GCP <--> Workspace Pivoting

Automatic Tools

# Install
git clone https://github.com/google/gcp_scanner.git
cd gcp_scanner
virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements.txt
# Execute with gcloud creds
python3 __main__.py -o /tmp/output/ -g "$HOME/.config/gcloud"
  • gcp_enum: Bash script ya kuorodhesha mazingira ya GCP kwa kutumia gcloud cli na kuhifadhi matokeo kwenye faili.

  • GCP-IAM-Privilege-Escalation: Script za kuorodhesha haki za juu za IAM na kupandisha haki katika GCP kwa kuzitumia vibaya (sikuweza kufanya script ya kuorodhesha ifanye kazi).

  • BF My GCP Permissions: Script ya kubruteforce ruhusa zako.

gcloud config & debug

# Login so gcloud can use your credentials
gcloud auth login
gcloud config set project security-devbox
gcloud auth print-access-token

# Login so SDKs can use your user credentials
gcloud auth application-default login
gcloud auth application-default set-quota-project security-devbox
gcloud auth application-default print-access-token

# Update gcloud
gcloud components update

Capture gcloud, gsutil... network

Kumbuka kwamba unaweza kutumia parameter --log-http na gcloud cli ili kuonyesha maombi ambayo chombo kinatuma. Ikiwa hutaki kumbukumbu zifute thamani ya tokeni tumia gcloud config set log_http_redact_token false

Zaidi ya hayo, ili kunasa mawasiliano:

gcloud config set proxy/address 127.0.0.1
gcloud config set proxy/port 8080
gcloud config set proxy/type http
gcloud config set auth/disable_ssl_validation True

# If you don't want to completely disable ssl_validation use:
gcloud config set core/custom_ca_certs_file cert.pem

# Back to normal
gcloud config unset proxy/address
gcloud config unset proxy/port
gcloud config unset proxy/type
gcloud config unset auth/disable_ssl_validation
gcloud config unset core/custom_ca_certs_file

OAuth token configure in gcloud

Ili kutumia tokeni ya akaunti ya huduma iliyovujishwa kutoka kwa metadata endpoint unaweza kufanya hivi:

# Via env vars
export CLOUDSDK_AUTH_ACCESS_TOKEN=<token>
gcloud projects list

# Via setup
echo "<token>" > /some/path/to/token
gcloud config set auth/access_token_file /some/path/to/token
gcloud projects list
gcloud config unset auth/access_token_file

Marejeo

Support HackTricks

Last updated