GCP - Enumeraci贸n de Compute
Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Consulta los subscription plans!
- 脷nete al 馃挰 Discord group o al telegram group o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud github repos.
GCP VPC y Redes
Aprende c贸mo funciona esto en:
Enumeraci贸n
# 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>
Puedes encontrar f谩cilmente instancias de c贸mputo con reglas de firewall abiertas en https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_firewall_enum
Instancias de c贸mputo
Esta es la forma en que puedes ejecutar m谩quinas virtuales dentro de GCP. Consulta esta p谩gina para m谩s informaci贸n:
Enumeraci贸n
# 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>
Para m谩s informaci贸n sobre c贸mo SSH o modificar los metadatos de una instancia para escalar privilegios, consulta esta p谩gina:
GCP - local privilege escalation ssh pivoting
Escalamiento de Privilegios
En la siguiente p谩gina, puedes ver c贸mo abusar de los permisos de c贸mputo para escalar privilegios:
Enumeraci贸n No Autenticada
GCP - Compute Unauthenticated Enum
Post Explotaci贸n
GCP - Compute Post Exploitation
Persistencia
Registros de Consola Serial
Los Registros de Consola Serial de Compute Engine son una caracter铆stica que te permite ver y diagnosticar los registros de arranque y del sistema operativo de tus instancias de m谩quina virtual.
Los Registros de Consola Serial proporcionan una vista de bajo nivel del proceso de arranque de la instancia, incluidos los mensajes del kernel, scripts de inicio y otros eventos del sistema que ocurren durante el arranque. Esto puede ser 煤til para depurar problemas de arranque, identificar configuraciones incorrectas o errores de software, o solucionar problemas de conectividad de red.
Estos registros pueden exponer informaci贸n sensible de los registros del sistema que un usuario de bajo privilegio puede no ver normalmente, pero con los permisos de IAM apropiados, es posible que puedas leerlos.
Puedes usar el siguiente comando gcloud para consultar los registros del puerto serial (el permiso requerido es compute.instances.getSerialPortOutput):
gcloud compute instances get-serial-port-output <instance-name>
Salida de Scripts de Inicio
Es posible ver la salida de los scripts de inicio desde la VM ejecutando:
sudo journalctl -u google-startup-scripts.service
OS Configuration Manager
Puedes usar el servicio de gesti贸n de configuraci贸n del sistema operativo para desplegar, consultar y mantener configuraciones consistentes (estado deseado y software) para tu instancia de VM (m谩quina virtual). En Compute Engine, debes usar guest policies para mantener configuraciones de software consistentes en una VM.
La funci贸n de gesti贸n de configuraci贸n del sistema operativo te permite definir pol铆ticas de configuraci贸n que especifican qu茅 paquetes de software deben instalarse, qu茅 servicios deben habilitarse y qu茅 archivos o configuraciones deben estar presentes en tus VMs. Puedes usar un enfoque declarativo para gestionar la configuraci贸n de software de tus VMs, lo que te permite automatizar y escalar tu proceso de gesti贸n de configuraci贸n m谩s f谩cilmente.
Esto tambi茅n permite iniciar sesi贸n en instancias a trav茅s de permisos de IAM, por lo que es muy 煤til para privesc y pivoting.
Warning
Para habilitar os-config en todo un proyecto o en una instancia solo necesitas establecer la clave de metadata
enable-osloginentrueal nivel deseado.
Adem谩s, puedes establecer la metadataenable-oslogin-2faentruepara habilitar el 2fa.Cuando lo habilitas al crear una instancia, las claves de metadata se establecer谩n autom谩ticamente.
M谩s sobre 2fa en OS-config, solo se aplica si el usuario es un usuario, si es un SA (como el SA de c贸mputo) no requerir谩 nada extra.
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>
Im谩genes
Im谩genes Personalizadas
Las im谩genes de c贸mputo personalizadas pueden contener detalles sensibles u otras configuraciones vulnerables que puedes explotar.
Cuando se crea una imagen, puedes elegir 3 tipos de cifrado: Usando clave gestionada por Google (predeterminado), una clave de KMS, o una clave en bruto proporcionada por el cliente.
Enumeraci贸n
Puedes consultar la lista de im谩genes no est谩ndar en un proyecto con el siguiente comando:
gcloud compute machine-images list
gcloud compute machine-images describe <name>
gcloud compute machine-images get-iam-policy <name>
Puedes entonces exportar los discos virtuales de cualquier imagen en m煤ltiples formatos. El siguiente comando exportar铆a la imagen test-image en formato qcow2, permiti茅ndote descargar el archivo y construir una VM localmente para una investigaci贸n adicional:
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
Escalaci贸n de Privilegios
Consulta la secci贸n de escalaci贸n de privilegios de Compute Instances.
Plantillas de Instancia Personalizadas
Una plantilla de instancia define las propiedades de la instancia para ayudar a implementar configuraciones consistentes. Estas pueden contener los mismos tipos de datos sensibles que los metadatos personalizados de una instancia en ejecuci贸n. Puedes usar los siguientes comandos para investigar:
# List the available templates
gcloud compute instance-templates list
# Get the details of a specific template
gcloud compute instance-templates describe [TEMPLATE NAME]
Podr铆a ser interesante saber qu茅 disco est谩n utilizando las nuevas im谩genes, pero estas plantillas generalmente no tendr谩n informaci贸n sensible.
Instant谩neas
Las instant谩neas son copias de seguridad de discos. Tenga en cuenta que esto no es lo mismo que clonar un disco (otra funci贸n disponible).
La instant谩nea utilizar谩 la misma encriptaci贸n que el disco del que se toma.
Enumeraci贸n
gcloud compute snapshots list
gcloud compute snapshots describe <snapshot>
gcloud compute snapshots get-iam-policy <snapshot>
Escalaci贸n de Privilegios
Consulta la secci贸n de escalaci贸n de privilegios de Compute Instances.
Referencias
Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Consulta los subscription plans!
- 脷nete al 馃挰 Discord group o al telegram group o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud github repos.
HackTricks Cloud

