GCP - Compute Enum

Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

GCP VPC & Netwerke

Leer oor hoe dit werk in:

GCP - VPC & Networking

Enumerasie

# 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>

Jy vind maklik rekenaarinstansies met oop firewall-reëls met https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_firewall_enum

Rekenaarinstansies

Dit is die manier waarop jy virtuele masjiene binne GCP kan hardloop. Kyk na hierdie bladsy vir meer inligting:

GCP - Compute Instances

Enumerasie

# 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>

Voorregverhoging

Op die volgende bladsy kan jy sien hoe om rekenaarregte te misbruik om voorregte te verhoog:

GCP - Compute Privesc

Ongeagte Enum

GCP - Compute Unauthenticated Enum

Na-Exploitasie

GCP - Compute Post Exploitation

Volharding

GCP - Compute Persistence

Seriële Konsole Logboeke

Rekenaarenjin Seriële Konsole Logboeke is 'n kenmerk wat jou in staat stel om die opstart- en bedryfstelsellogboeke van jou virtuele masjieninstansies te sien en te diagnoseer.

Seriële Konsole Logboeke bied 'n laevlak-weergawe van die instansie se opstartproses, insluitend kernelboodskappe, initskripte, en ander stelselgebeure wat tydens opstart plaasvind. Dit kan nuttig wees vir die opsporing van opstartprobleme, identifisering van verkeerde konfigurasies of sagtewarefoute, of die oplos van netwerkverbindingsprobleme.

Hierdie logboeke kan sensitiewe inligting blootstel van die stelsellogboeke wat 'n lae-bevoorregte gebruiker gewoonlik nie sou sien nie, maar met die toepaslike IAM-toestemmings mag jy hulle dalk kan lees.

Jy kan die volgende gcloud-opdrag gebruik om die seriële poortlogboeke te ondervra (die vereiste toestemming is compute.instances.getSerialPortOutput):

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

Beginopdrag-skrips uitset

Dit is moontlik om die uitset van die beginopdrag-skrips van die VM uit te voer:

sudo journalctl -u google-startup-scripts.service

Bedryfstelselkonfigurasie-bestuurder

Jy kan die bedryfstelselkonfigurasiebestuurdienste gebruik om konsekwente konfigurasies te implementeer, navraag te doen en te handhaaf (gewenste toestand en sagteware) vir jou VM-instantie (VM). Op Rekenaareenheid moet jy gasbeleide gebruik om konsekwente sagtewarekonfigurasies op 'n VM te handhaaf.

Die bedryfstelselkonfigurasiebestuurfunksie stel jou in staat om konfigurasierigspolisse te definieer wat spesifiseer watter sagtewarepakette geïnstalleer moet word, watter dienste geaktiveer moet word, en watter lêers of konfigurasies teenwoordig moet wees op jou VM's. Jy kan 'n deklaratiewe benadering gebruik om die sagtewarekonfigurasie van jou VM's te bestuur, wat jou in staat stel om jou konfigurasiebestuursproses makliker te outomatiseer en te skaal.

Dit maak dit ook moontlik om in te teken op instansies via IAM-toestemmings, dus dit is baie nuttig vir privesc en pivoting.

Om os-config in 'n hele projek of in 'n instansie te aktiveer hoef jy net die metadata sleutel enable-oslogin na true op die gewenste vlak in te stel. Verder kan jy die metadata enable-oslogin-2fa na true instel om die 2fa te aktiveer.

Wanneer jy dit aktiveer tydens die skep van 'n instansie, sal die metadata sleutels outomaties ingestel word.

Meer oor 2fa in OS-config, dit geld net as die gebruiker 'n gebruiker is, as dit 'n SA is (soos die rekenaar-SA) sal dit niks ekstra benodig nie.

Enumerasie

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>

Afbeeldings

Aangepaste Afbeeldings

Aangepaste rekenaarafbeeldings kan sensitiewe besonderhede of ander kwesbare konfigurasies bevat wat jy kan uitbuit.

Wanneer 'n afbeelding geskep word, kan jy kies 3 tipes van enkripsie: Gebruik Google bestuurde sleutel (verstek), 'n sleutel van KMS, of 'n rou sleutel wat deur die klient gegee word.

Enumerasie

Jy kan die lys van nie-standaard afbeeldings in 'n projek navraag met die volgende bevel:

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

Jy kan dan uitvoer die virtuele skywe vanaf enige beeld in verskeie formate. Die volgende bevel sou die beeld toets-beeld uitvoer in qcow2-formaat, wat jou in staat stel om die lêer af te laai en 'n VM plaaslik te bou vir verdere ondersoek:

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

Voorregverhoging

Kyk na die Voorregverhoging-afdeling vir Rekenaarinstansies.

Aangepaste Instansiesjablone

'n Instansiesjabloon definieer instansie-eienskappe om te help met die implementering van konsekwente opsette. Hierdie kan dieselfde tipes sensitiewe data bevat as 'n lopende instansie se aangepaste metadata. Jy kan die volgende bevele gebruik om te ondersoek:

# List the available templates
gcloud compute instance-templates list

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

Dit sou interessant wees om te weet watter skyf nuwe afbeeldings gebruik, maar hierdie templaat sal gewoonlik nie sensitiewe inligting hê nie.

Onderhoude

Die onderhoude is rugsteune van skywe. Let daarop dat dit nie dieselfde is as om 'n skyf te kloon (nog 'n beskikbare kenmerk nie). Die onderhoud sal dieselfde versleuteling gebruik as die skyf waarvan dit geneem is.

Opsomming

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

Voorregverhoging

Kyk na die Voorregverhoging afdeling vir Rekenaarinstansies.

Verwysings

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated