GCP - Compute Enum
Reading time: 8 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
GCP VPC & Networking
Saznajte kako ovo funkcioniše u:
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>
Lako možete pronaći instance računara sa otvorenim pravilima vatrozida na https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_firewall_enum
Instance računara
Ovo je način na koji možete pokrenuti virtuelne mašine unutar GCP. Pogledajte ovu stranicu za više informacija:
Enumeracija
# 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>
Za više informacija o tome kako da SSH ili izmenite metapodatke instance da povećate privilegije, proverite ovu stranicu:
GCP - local privilege escalation ssh pivoting
Povećanje privilegija
Na sledećoj stranici možete proveriti kako da zloupotrebite dozvole za računanje da biste povećali privilegije:
Neautentifikovana enumeracija
GCP - Compute Unauthenticated Enum
Post eksploatacija
GCP - Compute Post Exploitation
Persistencija
Serijski konzolni logovi
Serijski konzolni logovi Compute Engine su funkcija koja vam omogućava da prikazujete i dijagnostikujete logove pokretanja i operativnog sistema vaših virtuelnih mašina.
Serijski konzolni logovi pružaju nizak nivo pregleda procesa pokretanja instance, uključujući poruke jezgra, init skripte i druge sistemske događaje koji se dešavaju tokom pokretanja. Ovo može biti korisno za otklanjanje grešaka u problemima sa pokretanjem, identifikaciju pogrešnih konfiguracija ili softverskih grešaka, ili rešavanje problema sa mrežnom povezanošću.
Ovi logovi mogu otkriti osetljive informacije iz sistemskih logova koje korisnik sa niskim privilegijama obično ne može da vidi, ali uz odgovarajuće IAM dozvole možda ćete moći da ih pročitate.
Možete koristiti sledeću gcloud komandu da upitite serijske port logove (dozvola koja je potrebna je compute.instances.getSerialPortOutput
):
gcloud compute instances get-serial-port-output <instance-name>
Startup Scripts output
Moguće je videti izlaz startup skripti iz VM-a koji se izvršava:
sudo journalctl -u google-startup-scripts.service
OS Configuration Manager
Možete koristiti uslugu upravljanja konfiguracijom operativnog sistema da implementirate, pretražujete i održavate dosledne konfiguracije (željeno stanje i softver) za vašu VM instancu (VM). Na Compute Engine-u, morate koristiti guest policies da održavate dosledne softverske konfiguracije na VM-u.
Funkcija upravljanja konfiguracijom operativnog sistema vam omogućava da definišete politike konfiguracije koje specificiraju koji softverski paketi treba da budu instalirani, koje usluge treba da budu omogućene i koji fajlovi ili konfiguracije treba da budu prisutni na vašim VM-ovima. Možete koristiti deklarativni pristup za upravljanje softverskom konfiguracijom vaših VM-ova, što vam omogućava da automatizujete i skalirate vaš proces upravljanja konfiguracijom lakše.
Ovo takođe omogućava prijavljivanje u instance putem IAM dozvola, tako da je veoma korisno za privesc i pivoting.
warning
Da biste omogućili os-config u celom projektu ili u instanci potrebno je samo da postavite metadata ključ enable-oslogin
na true
na željenom nivou.
Pored toga, možete postaviti metadata enable-oslogin-2fa
na true
da omogućite 2fa.
Kada to omogućite prilikom kreiranja instance, metadata ključevi će biti automatski postavljeni.
Više o 2fa u OS-config, primenjuje se samo ako je korisnik korisnik, ako je to SA (kao što je compute SA) neće zahtevati ništa dodatno.
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>
Slike
Prilagođene slike
Prilagođene slike za računare mogu sadržati osetljive detalje ili druge ranjive konfiguracije koje možete iskoristiti.
Kada se slika kreira, možete odabrati 3 tipa enkripcije: Korišćenje Google upravljanog ključa (podrazumevano), ključa iz KMS-a, ili sirovog ključa koji daje klijent.
Enumeracija
Možete upitati listu nestandardnih slika u projektu sa sledećom komandom:
gcloud compute machine-images list
gcloud compute machine-images describe <name>
gcloud compute machine-images get-iam-policy <name>
Možete zatim izvesti virtuelne diskove iz bilo koje slike u više formata. Sledeća komanda bi izvezla sliku test-image
u qcow2 formatu, omogućavajući vam da preuzmete datoteku i izgradite VM lokalno za dalju istragu:
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
Eskalacija privilegija
Proverite odeljak o eskalaciji privilegija za Compute Instances.
Prilagođene instance šabloni
An instance template definiše svojstva instance kako bi pomogao u implementaciji doslednih konfiguracija. Ovi mogu sadržati iste vrste osetljivih podataka kao i prilagođeni metapodaci aktivne instance. Možete koristiti sledeće komande za istraživanje:
# List the available templates
gcloud compute instance-templates list
# Get the details of a specific template
gcloud compute instance-templates describe [TEMPLATE NAME]
Može biti zanimljivo znati koji disk koriste nove slike, ali ovi šabloni obično neće imati osetljive informacije.
Snapshots
Snapshots su rezervne kopije diskova. Imajte na umu da to nije isto što i kloniranje diska (druga dostupna funkcija).
Snapshot će koristiti istu enkripciju kao disk sa kojeg je uzet.
Enumeration
gcloud compute snapshots list
gcloud compute snapshots describe <snapshot>
gcloud compute snapshots get-iam-policy <snapshot>
Eskalacija privilegija
Proverite odeljak o eskalaciji privilegija za Compute Instances.
Reference
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.