GCP - VPC & Networking
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
VPCs contiene reglas de Firewall para permitir el tráfico entrante a la VPC. Las VPCs también contienen subredes donde las máquinas virtuales van a estar conectadas. Comparando con AWS, Firewall sería lo más cercano a AWS Security Groups y NACLs, pero en este caso estas están definidas en la VPC y no en cada instancia.
Las Instancias de Cómputo están conectadas a subredes que son parte de VPCs (Nubes Privadas Virtuales). En GCP no hay grupos de seguridad, hay firewalls de VPC con reglas definidas a este nivel de red pero aplicadas a cada Instancia de VM.
Una VPC puede tener varias subredes. Cada subred está en 1 región.
Por defecto, cada red tiene dos reglas de firewall implícitas: permitir salidas y denegar entradas.
Cuando se crea un proyecto de GCP, también se crea una VPC llamada default
, con las siguientes reglas de firewall:
default-allow-internal: permite todo el tráfico de otras instancias en la red default
default-allow-ssh: permite 22 desde cualquier lugar
default-allow-rdp: permite 3389 desde cualquier lugar
default-allow-icmp: permite ping desde cualquier lugar
Como puedes ver, las reglas de firewall tienden a ser más permisivas para las direcciones IP internas. La VPC por defecto permite todo el tráfico entre Instancias de Cómputo.
Se pueden crear más reglas de Firewall para la VPC por defecto o para nuevas VPCs. Las reglas de Firewall se pueden aplicar a instancias a través de los siguientes métodos:
Todas las instancias dentro de una VPC
Desafortunadamente, no hay un comando simple de gcloud
para listar todas las Instancias de Cómputo con puertos abiertos en internet. Tienes que conectar los puntos entre las reglas de firewall, etiquetas de red, cuentas de servicio e instancias.
Este proceso fue automatizado usando este script de python que exportará lo siguiente:
Archivo CSV mostrando instancia, IP pública, TCP permitido, UDP permitido
Escaneo nmap para apuntar a todas las instancias en puertos de entrada permitidos desde internet público (0.0.0.0/0)
masscan para apuntar al rango completo de TCP de aquellas instancias que permiten TODOS los puertos TCP desde internet público (0.0.0.0/0)
Las políticas de firewall jerárquicas te permiten crear y hacer cumplir una política de firewall consistente en toda tu organización. Puedes asignar políticas de firewall jerárquicas a la organización en su conjunto o a carpetas individuales. Estas políticas contienen reglas que pueden denegar o permitir conexiones explícitamente.
Creas y aplicas políticas de firewall como pasos separados. Puedes crear y aplicar políticas de firewall en los nodos de organización o carpeta de la jerarquía de recursos. Una regla de política de firewall puede bloquear conexiones, permitir conexiones o diferir la evaluación de reglas de firewall a carpetas de menor nivel o reglas de firewall de VPC definidas en redes de VPC.
Por defecto, todas las reglas de políticas de firewall jerárquicas se aplican a todas las VMs en todos los proyectos bajo la organización o carpeta donde se asocia la política. Sin embargo, puedes restringir qué VMs reciben una regla dada especificando redes objetivo o cuentas de servicio objetivo.
Puedes leer aquí cómo crear una Política de Firewall Jerárquica.
Org: Políticas de firewall asignadas a la Organización
Carpeta: Políticas de firewall asignadas a la Carpeta
VPC: Reglas de firewall asignadas a la VPC
Global: Otro tipo de reglas de firewall que pueden ser asignadas a VPCs
Regional: Reglas de firewall asociadas con la red VPC de la NIC de la VM y región de la VM.
Permite conectar dos redes de Nube Privada Virtual (VPC) para que los recursos en cada red puedan comunicarse entre sí. Las redes VPC emparejadas pueden estar en el mismo proyecto, en diferentes proyectos de la misma organización, o en diferentes proyectos de diferentes organizaciones.
Estos son los permisos necesarios:
compute.networks.addPeering
compute.networks.updatePeering
compute.networks.removePeering
compute.networks.listPeeringRoutes
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)