AWS - EC2, EBS, ELB, SSM, VPC & VPN Enum
Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
VPC & Networking
Aprende qué es una VPC y sobre sus componentes en:
AWS - VPC & Networking Basic InformationEC2
Amazon EC2 se utiliza para iniciar servidores virtuales. Permite la configuración de seguridad y redes y la gestión de almacenamiento. La flexibilidad de Amazon EC2 es evidente en su capacidad para escalar recursos tanto hacia arriba como hacia abajo, adaptándose efectivamente a cambios en los requisitos o aumentos de popularidad. Esta característica disminuye la necesidad de predicciones precisas de tráfico.
Cosas interesantes para enumerar en EC2:
Máquinas Virtuales
Claves SSH
Datos de Usuario
EC2s/AMIs/Snapshots existentes
Redes
Subredes
IPs Públicas
Puertos abiertos
Conexiones integradas con otras redes fuera de AWS
Instance Profiles
Usar roles para otorgar permisos a aplicaciones que se ejecutan en instancias EC2 requiere un poco de configuración adicional. Una aplicación que se ejecuta en una instancia EC2 está abstraída de AWS por el sistema operativo virtualizado. Debido a esta separación adicional, necesitas un paso adicional para asignar un rol de AWS y sus permisos asociados a una instancia EC2 y hacerlos disponibles para sus aplicaciones.
Este paso adicional es la creación de un instance profile adjunto a la instancia. El instance profile contiene el rol y puede proporcionar las credenciales temporales del rol a una aplicación que se ejecuta en la instancia. Esas credenciales temporales pueden luego ser usadas en las llamadas API de la aplicación para acceder a recursos y limitar el acceso solo a aquellos recursos que el rol especifica. Ten en cuenta que solo un rol puede ser asignado a una instancia EC2 a la vez, y todas las aplicaciones en la instancia comparten el mismo rol y permisos.
Metadata Endpoint
Los metadatos de AWS EC2 son información sobre una instancia de Amazon Elastic Compute Cloud (EC2) que está disponible para la instancia en tiempo de ejecución. Estos metadatos se utilizan para proporcionar información sobre la instancia, como su ID de instancia, la zona de disponibilidad en la que se está ejecutando, el rol IAM asociado con la instancia y el nombre de host de la instancia.
Enumeration
Acceso No Autenticado
AWS - EC2 Unauthenticated EnumPrivesc
En la siguiente página puedes ver cómo abusar de los permisos de EC2 para escalar privilegios:
AWS - EC2 PrivescPost-Explotación
AWS - EC2, EBS, SSM & VPC Post ExploitationEBS
Las instantáneas de Amazon EBS (Elastic Block Store) son básicamente copias de seguridad estáticas de los volúmenes de AWS EBS. En otras palabras, son copias de los discos adjuntos a una Instancia EC2 en un momento específico. Las instantáneas de EBS pueden copiarse entre regiones y cuentas, o incluso descargarse y ejecutarse localmente.
Las instantáneas pueden contener información sensible como código fuente o claves API, por lo tanto, si tienes la oportunidad, se recomienda revisarlas.
Diferencia AMI & EBS
Una AMI se utiliza para lanzar una instancia EC2, mientras que una instantánea de EC2 se utiliza para respaldar y recuperar datos almacenados en un volumen EBS. Aunque una instantánea de EC2 puede usarse para crear una nueva AMI, no es lo mismo que una AMI, y no incluye información sobre el sistema operativo, el servidor de aplicaciones u otro software necesario para ejecutar una aplicación.
Privesc
En la siguiente página puedes ver cómo abusar de los permisos de EBS para escalar privilegios:
AWS - EBS PrivescSSM
Amazon Simple Systems Manager (SSM) permite gestionar remotamente flotas de instancias EC2 para facilitar su administración. Cada una de estas instancias necesita ejecutar el servicio SSM Agent, ya que este será el encargado de recibir las acciones y ejecutarlas desde la API de AWS.
SSM Agent hace posible que Systems Manager actualice, gestione y configure estos recursos. El agente procesa solicitudes del servicio Systems Manager en la nube de AWS, y luego las ejecuta según lo especificado en la solicitud.
El SSM Agent viene preinstalado en algunas AMIs o necesitas instalarlos manualmente en las instancias. Además, el Rol IAM utilizado dentro de la instancia necesita tener la política AmazonEC2RoleforSSM adjunta para poder comunicarse.
Enumeración
Puedes verificar en una instancia de EC2 si Systems Manager está ejecutándose simplemente ejecutando:
Privesc
En la siguiente página puedes ver cómo abusar de los permisos de SSM para escalar privilegios:
AWS - SSM PrivescELB
Elastic Load Balancing (ELB) es un servicio de balanceo de carga para despliegues de Amazon Web Services (AWS). ELB distribuye automáticamente el tráfico de aplicaciones entrante y escala los recursos para satisfacer las demandas de tráfico.
Enumeration
Launch Templates & Autoscaling Groups
Enumeración
Nitro
AWS Nitro es un conjunto de tecnologías innovadoras que forman la plataforma subyacente para las instancias de AWS EC2. Introducido por Amazon para mejorar la seguridad, el rendimiento y la fiabilidad, Nitro aprovecha componentes de hardware personalizados y un hipervisor ligero. Abstrae gran parte de la funcionalidad de virtualización tradicional a hardware y software dedicados, minimizando la superficie de ataque y mejorando la eficiencia de los recursos. Al descargar las funciones de virtualización, Nitro permite que las instancias de EC2 ofrezcan un rendimiento casi de metal desnudo, lo que es particularmente beneficioso para aplicaciones que consumen muchos recursos. Además, el Nitro Security Chip asegura específicamente la seguridad del hardware y firmware, consolidando aún más su arquitectura robusta.
Obtén más información y cómo enumerarlo desde:
AWS - Nitro EnumVPN
Una VPN permite conectar tu red local (site-to-site VPN) o los portátiles de los trabajadores (Client VPN) con un AWS VPC para que los servicios puedan ser accedidos sin necesidad de exponerlos a internet.
Componentes Básicos de AWS VPN
Customer Gateway:
Un Customer Gateway es un recurso que creas en AWS para representar tu lado de una conexión VPN.
Es esencialmente un dispositivo físico o una aplicación de software en tu lado de la conexión Site-to-Site VPN.
Proporcionas información de enrutamiento y la dirección IP pública de tu dispositivo de red (como un router o un firewall) a AWS para crear un Customer Gateway.
Sirve como punto de referencia para configurar la conexión VPN y no incurre en cargos adicionales.
Virtual Private Gateway:
Un Virtual Private Gateway (VPG) es el concentrador VPN en el lado de Amazon de la conexión Site-to-Site VPN.
Está adjunto a tu VPC y sirve como el objetivo para tu conexión VPN.
VPG es el punto final del lado de AWS para la conexión VPN.
Maneja la comunicación segura entre tu VPC y tu red local.
Site-to-Site VPN Connection:
Una conexión Site-to-Site VPN conecta tu red local a un VPC a través de un túnel VPN seguro IPsec.
Este tipo de conexión requiere un Customer Gateway y un Virtual Private Gateway.
Se utiliza para una comunicación segura, estable y consistente entre tu centro de datos o red y tu entorno AWS.
Normalmente se usa para conexiones regulares y a largo plazo y se factura según la cantidad de datos transferidos a través de la conexión.
Client VPN Endpoint:
Un Client VPN endpoint es un recurso que creas en AWS para habilitar y gestionar sesiones de VPN de clientes.
Se utiliza para permitir que dispositivos individuales (como portátiles, smartphones, etc.) se conecten de manera segura a recursos de AWS o a tu red local.
Se diferencia de Site-to-Site VPN en que está diseñado para clientes individuales en lugar de conectar redes enteras.
Con Client VPN, cada dispositivo cliente usa un software cliente VPN para establecer una conexión segura.
Puedes encontrar más información sobre los beneficios y componentes de AWS VPNs aquí.
Enumeración
Enumeración Local
Credenciales Temporales Locales
Cuando se utiliza AWS VPN Client para conectarse a una VPN, el usuario generalmente inicia sesión en AWS para obtener acceso a la VPN. Luego, se crean y almacenan credenciales de AWS localmente para establecer la conexión VPN. Estas credenciales se almacenan en $HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt
y contienen un AccessKey, un SecretKey y un Token.
Las credenciales pertenecen al usuario arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials
(TODO: investigar más sobre los permisos de estas credenciales).
archivos de configuración opvn
Si se estableció una conexión VPN, deberías buscar archivos de configuración .opvn
en el sistema. Además, un lugar donde podrías encontrar las configuraciones es en $HOME/.config/AWSVPNClient/OpenVpnConfigs
Post Explotación
AWS - VPN Post ExploitationReferencias
Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated