GCP - Compute Enum

Support HackTricks

GCP VPC & Networking

Jifunze kuhusu jinsi hii inavyofanya kazi katika:

Enumeration

# List networks
gcloud compute networks list
gcloud compute networks describe <network>

# List subnetworks
gcloud compute networks subnets list
gcloud compute networks subnets get-iam-policy <name> --region <region>
gcloud compute networks subnets describe <name> --region <region>

# List FW rules in networks
gcloud compute firewall-rules list --format="table(
name,
network,
direction,
priority,
sourceRanges.list():label=SRC_RANGES,
destinationRanges.list():label=DEST_RANGES,
allowed[].map().firewall_rule().list():label=ALLOW,
denied[].map().firewall_rule().list():label=DENY,
sourceTags.list():label=SRC_TAGS,
sourceServiceAccounts.list():label=SRC_SVC_ACCT,
targetTags.list():label=TARGET_TAGS,
targetServiceAccounts.list():label=TARGET_SVC_ACCT,
disabled
)"

# List Hierarchical Firewalls
gcloud compute firewall-policies list  (--folder <value>| --organization <value>)
gcloud compute firewall-policies describe <fw_policy>
gcloud compute firewall-policies list-rules <fw_policy>

# Get Firewalls of each region
gcloud compute network-firewall-policies list
## Get final FWs applied in a region
gcloud compute network-firewall-policies get-effective-firewalls --network=<vpc_name> --region <region>

Unaweza kwa urahisi kupata mifano ya kompyuta zenye sheria za firewall wazi kwa kutumia https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_firewall_enum

Mifano ya kompyuta

Hii ndiyo njia unaweza kukimbia mashine za virtual ndani ya GCP. Angalia ukurasa huu kwa maelezo zaidi:

Uainishaji

# Get list of zones
# It's interesting to know which zones are being used
gcloud compute regions list | grep -E "NAME|[^0]/"

# List compute instances & get info
gcloud compute instances list
gcloud compute instances describe <instance name>
gcloud compute instances get-iam-policy <instance> --zone=ZONE
gcloud compute instances get-screenshot <instance name> # Instace must have "Display Device" enabled
gcloud compute instances os-inventory list-instances # Get OS info of instances (OS Config agent is running on instances)


# Enumerate disks
gcloud compute disks list
gcloud compute disks describe <disk>
gcloud compute disks get-iam-policy <disk>

Kwa maelezo zaidi kuhusu jinsi ya SSH au kubadilisha metadata ya mfano ili kuinua mamlaka, angalia ukurasa huu:

Kuinua Mamlaka

Katika ukurasa ufuatao, unaweza kuangalia jinsi ya kutumia ruhusa za kompyuta ili kuinua mamlaka:

Enum Isiyo na Uthibitisho

Baada ya Kutekeleza

Kudumu

Maktaba ya Kihistoria ya Serial Console

Maktaba ya Kihistoria ya Serial Console ya Compute Engine ni kipengele kinachokuruhusu kuangalia na kuchanganua kumbukumbu za kuanzisha na mfumo wa uendeshaji wa mifano yako ya mashine ya virtual.

Maktaba ya Kihistoria ya Serial Console inatoa mtazamo wa kiwango cha chini wa mchakato wa kuanzisha wa mfano, ikiwa ni pamoja na ujumbe wa kernel, skripti za kuanzisha, na matukio mengine ya mfumo yanayotokea wakati wa kuanzisha. Hii inaweza kuwa muhimu kwa kutatua matatizo ya kuanzisha, kubaini makosa ya usanidi au programu, au kutatua matatizo ya muunganisho wa mtandao.

Maktaba hizi zinaweza kufichua taarifa nyeti kutoka kwa kumbukumbu za mfumo ambazo mtumiaji mwenye mamlaka ya chini huenda asione, lakini kwa ruhusa sahihi za IAM unaweza kuwa na uwezo wa kuzisoma.

Unaweza kutumia amri ya gcloud kufuatilia kumbukumbu za bandari ya serial (ruhusa inayohitajika ni compute.instances.getSerialPortOutput):

gcloud compute instances get-serial-port-output <instance-name>

Startup Scripts output

Inawezekana kuona matokeo ya scripts za kuanzisha kutoka kwa VM inayotekeleza:

sudo journalctl -u google-startup-scripts.service

OS Configuration Manager

Unaweza kutumia huduma ya usimamizi wa usanidi wa OS ili kupeleka, kuuliza, na kudumisha usanidi thabiti (hali inayotakiwa na programu) kwa mfano wako wa VM (VM). Kwenye Compute Engine, lazima utumie sera za wageni kudumisha usanidi thabiti wa programu kwenye VM.

Kipengele cha usimamizi wa usanidi wa OS kinakuruhusu kufafanua sera za usanidi ambazo zinaeleza ni pakiti zipi za programu zinapaswa kufungwa, ni huduma zipi zinapaswa kuwezeshwa, na ni faili au usanidi gani zinapaswa kuwepo kwenye VMs zako. Unaweza kutumia njia ya kutangaza katika usimamizi wa usanidi wa programu za VMs zako, ambayo inakuwezesha kujiandaa na kupanua mchakato wako wa usimamizi wa usanidi kwa urahisi zaidi.

Hii pia inaruhusu kuingia kwenye mifano kupitia ruhusa za IAM, hivyo ni faida kubwa kwa privesc na pivoting.

Ili kuwezesha os-config katika mradi mzima au katika mfano unahitaji tu kuweka ufunguo wa metadata enable-oslogin kuwa true kwenye kiwango kinachotakiwa. Zaidi ya hayo, unaweza kuweka metadata enable-oslogin-2fa kuwa true ili kuwezesha 2fa.

Unapoiwezesha unapounda mfano, ufunguo wa metadata utawekwa kiotomatiki.

Zaidi kuhusu 2fa katika OS-config, inatumika tu ikiwa mtumiaji ni mtumiaji, ikiwa ni SA (kama SA ya compute) haitahitaji chochote cha ziada.

Enumeration

gcloud compute os-config patch-deployments list
gcloud compute os-config patch-deployments describe <patch-deployment>

gcloud compute os-config patch-jobs list
gcloud compute os-config patch-jobs describe <patch-job>

Images

Custom Images

Picha za komputa za kawaida zinaweza kuwa na maelezo nyeti au mipangilio mingine hatarishi ambayo unaweza kutumia.

Wakati picha inaundwa unaweza kuchagua aina 3 za usimbuaji: Kutumia funguo zinazodhibitiwa na Google (kawaida), funguo kutoka KMS, au funguo mbichi iliyotolewa na mteja.

Enumeration

Unaweza kuuliza orodha ya picha zisizo za kawaida katika mradi kwa amri ifuatayo:

gcloud compute machine-images list
gcloud compute machine-images describe <name>
gcloud compute machine-images get-iam-policy <name>

Unaweza kisha kutoa diski za virtual kutoka kwa picha yoyote katika muundo mbalimbali. Amri ifuatayo itatoa picha test-image katika muundo wa qcow2, ikikuruhusu kupakua faili na kujenga VM kwa ndani kwa uchunguzi zaidi:

gcloud compute images export --image test-image \
--export-format qcow2 --destination-uri [BUCKET]

# Execute container inside a docker
docker run --rm -ti gcr.io/<project-name>/secret:v1 sh

Kuinua Mamlaka

Angalia sehemu ya kuinua mamlaka ya Compute Instances.

Mifano ya Kijalala Maalum

Mifano ya kijalala inafafanua mali za kijalala kusaidia kupeleka usanidi thabiti. Hizi zinaweza kuwa na aina sawa za data nyeti kama metadata maalum ya kijalala kinachofanya kazi. Unaweza kutumia amri zifuatazo kuchunguza:

# List the available templates
gcloud compute instance-templates list

# Get the details of a specific template
gcloud compute instance-templates describe [TEMPLATE NAME]

Ineza kuwa na manufaa kujua ni diski gani picha mpya zinatumia, lakini hizi mifano kwa kawaida hazitakuwa na taarifa nyeti.

Snapshots

The snapshots are backups of disks. Note that this is not the same as cloning a disk (another available feature). The snapshot will use the same encryption as the disk it's taken from.

Enumeration

gcloud compute snapshots list
gcloud compute snapshots describe <snapshot>
gcloud compute snapshots get-iam-policy <snapshot>

Privilege Escalation

Angalia sehemu ya kupandisha hadhi ya Compute Instances.

References

Support HackTricks

Last updated