GCP Pentesting

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya HackTricks AWS)!

Njia nyingine za kusaidia HackTricks:

Taarifa Msingi

Kabla ya kuanza upimaji wa mazingira ya GCP, kuna mambo machache ya msingi unahitaji kujua kuhusu jinsi inavyofanya kazi ili kukusaidia kuelewa unachohitaji kufanya, jinsi ya kupata makosa ya usanidi na jinsi ya kuyatumia.

Mifano kama muundo wa shirika, ruhusa na dhana nyingine msingi zinaelezewa katika:

pageGCP - Basic Information

Maabara za Kujifunza

Mbinu ya Mchambuzi wa GCP/Timu Nyekundu

Ili kukagua mazingira ya GCP ni muhimu kujua: ni huduma zipi zinazotumiwa, nini kinachoonekana, nani ana upatikanaji wa nini, na jinsi huduma za GCP za ndani na huduma za nje zinavyounganishwa.

Kutoka mtazamo wa Timu Nyekundu, hatua ya kwanza ya kudhoofisha mazingira ya GCP ni kufanikiwa kupata vyeti fulani. Hapa kuna baadhi ya mawazo kuhusu jinsi ya kufanya hivyo:

  • Vuvuzela kwenye github (au sawa) - OSINT

  • Uhandisi wa Kijamii (Angalia ukurasa wa Usalama wa Workspace)

  • Kutumia tena nywila (vuvuzela za nywila)

  • Udhaifu katika Maombi Yaliyohifadhiwa kwenye GCP

  • Udukuzi wa Ombi la Upande wa Seva na upatikanaji wa mwisho wa metadata

  • Soma Faili za Ndani

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

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

  • 3rd parties zilizovunjwa

  • Mfanyakazi wa Ndani

Au kwa kudhoofisha huduma isiyo na uthibitishaji iliyofichuliwa:

pageGCP - Unauthenticated Enum & Access

Au ikiwa unafanya mapitio unaweza tu kuomba vyeti na majukumu haya:

pageGCP - Permissions for a Pentest

Baada ya kufanikiwa kupata vyeti, unahitaji kujua vyeti hivyo ni vya nani, na wanayo upatikanaji wa nini, hivyo unahitaji kufanya uchambuzi wa msingi:

Uchambuzi wa Msingi

SSRF

Kwa habari zaidi kuhusu jinsi ya kuchambua metadata ya GCP angalia ukurasa wa hacktricks ufuatao:

Ni Nani

Katika GCP unaweza kujaribu chaguo kadhaa kujaribu kudhani 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

Uchambuzi 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

Misingi & Uchambuzi wa IAM

Ikiwa una idhini za kutosha, kuangalia mamlaka ya kila kifaa ndani ya akaunti ya GCP kutakusaidia kuelewa unaweza kufanya nini na jinsi ya kuongeza mamlaka.

Ikiwa huna idhini za kutosha kuchambua IAM, unaweza kuiba au kujaribu kwa nguvu ili kuzitambua. Angalia jinsi ya kufanya uchambuzi na kujaribu kwa nguvu katika:

pageGCP - IAM, Principals & Org Policies Enum

Sasa kwamba una habari kuhusu vyeti vyako (na kama wewe ni timu nyekundu kwa matumaini hujagunduliwa). Ni wakati wa kujua ni huduma zipi zinazotumiwa katika mazingira. Katika sehemu ifuatayo unaweza kuangalia njia kadhaa za kuchambua huduma za kawaida.

Uchambuzi wa Huduma

GCP ina idadi kubwa ya huduma, kwenye ukurasa ufuatao utapata habari za msingi, uchambuzi wa kufanya, jinsi ya kuepuka kugunduliwa, kupata uthabiti, na mbinu nyingine za baada ya kuvamia kuhusu baadhi yao:

pageGCP - Services

Kumbuka kwamba hauitaji kufanya kazi zote kwa mikono, chini katika chapisho hili unaweza kupata sehemu kuhusu zana za moja kwa moja.

Zaidi ya hayo, katika hatua hii unaweza kugundua huduma zaidi zilizofichuliwa kwa watumiaji wasiothibitishwa, unaweza kuzitumia:

pageGCP - Unauthenticated Enum & Access

Kuongeza Mamlaka, Baada ya Kuvamia & Uthabiti

Njia ya kawaida mara baada ya kupata vyeti vya wingu au kuvunja huduma fulani inayotumika ndani ya wingu ni kutumia vibaya mamlaka zilizopangwa vibaya ambazo akaunti iliyovamiwa inaweza kuwa nazo. Kwa hivyo, jambo la kwanza unapaswa kufanya ni kuchambua mamlaka yako.

Zaidi ya hayo, wakati wa uchambuzi huu, kumbuka kwamba idhini zinaweza kuwekwa kwenye kiwango cha juu cha "Shirika" pia.

pageGCP - Privilege EscalationpageGCP - Post ExploitationpageGCP - Persistence

Huduma Zilizofichuliwa Kwa Umma

Wakati wa kuchambua huduma za GCP unaweza kugundua baadhi yao zinazofichua vitu kwenye Mtandao (VM/Ports za Kontena, databases au huduma za foleni, picha za haraka au vikapu...). Kama mchambuzi wa usalama/timu nyekundu unapaswa daima kuhakikisha ikiwa unaweza kupata habari nyeti / mapungufu kwenye huduma hizo kwani zinaweza kukupa upatikanaji zaidi kwenye akaunti ya GCP.

Katika kitabu hiki unapaswa kupata habari kuhusu jinsi ya kupata huduma za GCP zilizofichuliwa na jinsi ya kuzichunguza. Kuhusu jinsi ya kupata mapungufu kwenye huduma za mtandao zilizofichuliwa ningependekeza utafute huduma maalum katika:

GCP <--> Workspace Pivoting

Kuvamia misingi katika jukwaa moja inaweza kuruhusu mshambuliaji kuvamia lingine, angalia hilo katika:

pageGCP <--> Workspace Pivoting

Zana za Moja kwa Moja

# 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: Skripti ya Bash kutambua mazingira ya GCP kwa kutumia gcloud cli na kuokoa matokeo kwenye faili.

  • GCP-IAM-Privilege-Escalation: Skripti za kutambua mamlaka ya juu ya IAM na kuzidisha mamlaka kwenye GCP kwa kuzitumia vibaya (Sikuweza kuendesha skripti ya kutambua).

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

Kukamata mtandao wa gcloud, gsutil...

Kumbuka unaweza kutumia parameter --log-http na gcloud cli kuchapisha maombi ambayo chombo kinatekeleza. Ikiwa hutaki magogo kuficha thamani ya tokeni tumia gcloud config set log_http_redact_token false

Zaidi, ili kuingilia 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

Weka kitufe cha OAuth katika gcloud

Ili kutumia kitufe cha OAuth cha akaunti ya huduma iliyochukuliwa kutoka kwa mwisho wa metadata unaweza tu kufanya:

# 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

Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Last updated