GCP - VPC & Networking

Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Red Team de HackTricks en AWS)!

Otras formas de apoyar a HackTricks:

Resumen de Networking de GCP Compute

Las VPCs contienen reglas de Firewall para permitir el tráfico entrante a la VPC. Las VPCs también contienen subredes donde se van a conectar las máquinas virtuales. Comparando con AWS, el Firewall sería lo más similar a los Grupos de Seguridad y NACLs de AWS, pero en este caso estos están definidos en la VPC y no en cada instancia.

VPC, Subredes y Firewalls en GCP

Las Instancias de Cómputo están conectadas a subredes que forman parte de las VPCs (Virtual Private Clouds). En GCP no existen grupos de seguridad, sino firewalls de VPC con reglas definidas a nivel de red pero aplicadas a cada instancia de VM.

Subredes

Una VPC puede tener varias subredes. Cada subred está en 1 región.

Firewalls

Por defecto, cada red tiene dos reglas de firewall implícitas: permitir salida y denegar entrada.

Cuando se crea un proyecto de GCP, se crea una VPC llamada default, con las siguientes reglas de firewall:

  • default-allow-internal: permite todo el tráfico desde otras instancias en la red default

  • default-allow-ssh: permite el puerto 22 desde cualquier lugar

  • default-allow-rdp: permite el puerto 3389 desde cualquier lugar

  • default-allow-icmp: permite ping desde cualquier lugar

Como se puede ver, las reglas de firewall tienden a ser más permisivas para las direcciones IP internas. La VPC predeterminada permite todo el tráfico entre las Instancias de Cómputo.

Se pueden crear más reglas de firewall para la VPC predeterminada o para nuevas VPCs. Las reglas de firewall se pueden aplicar a las instancias mediante los siguientes métodos:

Desafortunadamente, no hay un comando gcloud simple para mostrar todas las Instancias de Cómputo con puertos abiertos en internet. Debes conectar los puntos entre las reglas de firewall, las etiquetas de red, las cuentas de servicio e instancias.

Este proceso se automatizó utilizando este script de Python que exportará lo siguiente:

  • Archivo CSV que muestra la instancia, la IP pública, los puertos TCP permitidos, los puertos UDP permitidos

  • Escaneo nmap para apuntar a todas las instancias en puertos de ingreso permitidos desde internet público (0.0.0.0/0)

  • masscan para apuntar al rango TCP completo de esas instancias que permiten TODOS los puertos TCP desde internet público (0.0.0.0/0)

Políticas de Firewall Jerárquicas

Las políticas de firewall jerárquicas te permiten crear y aplicar 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 totalidad o a carpetas individuales. Estas políticas contienen reglas que pueden denegar o permitir explícitamente conexiones.

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 posponer la evaluación de la regla de firewall a reglas de firewall de VPC definidas en redes VPC de carpetas o a niveles inferiores.

Por defecto, todas las reglas de política de firewall jerárquicas se aplican a todas las VM en todos los proyectos bajo la organización o carpeta donde se asocia la política. Sin embargo, puedes restringir qué VMs obtienen una regla específica especificando redes de destino o cuentas de servicio de destino.

Puedes leer aquí cómo crear una Política de Firewall Jerárquica.

Evaluación de Reglas de Firewall

  1. Org: Políticas de firewall asignadas a la Organización

  2. Carpeta: Políticas de firewall asignadas a la Carpeta

  3. VPC: Reglas de firewall asignadas a la VPC

  4. Global: Otro tipo de reglas de firewall que se pueden asignar a VPCs

  5. Regional: Reglas de firewall asociadas con la red VPC de la NIC de la VM y la región de la VM.

Conexión de Redes VPC

Permite conectar dos redes de Virtual Private Cloud (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

Más en la documentación.

Referencias

Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Red Team de HackTricks en AWS)!

Otras formas de apoyar a HackTricks:

Última actualización