AWS - EC2, EBS, ELB, SSM, VPC & VPN Enum
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripci贸n!
- 脷nete al 馃挰 grupo de Discord o al grupo de telegram o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
VPC & Networking
Aprende qu茅 es una VPC y sobre sus componentes en:
AWS - VPC & Networking Basic Information
EC2
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 los cambios en los requisitos o aumentos en la 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
- 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 perfil de instancia adjunto a la instancia. El perfil de instancia 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 ser utilizadas 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 se puede asignar un rol 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
# Get EC2 instances
aws ec2 describe-instances
aws ec2 describe-instance-status #Get status from running instances
# Get user data from each ec2 instance
for instanceid in $(aws ec2 describe-instances --profile <profile> --region us-west-2 | grep -Eo '"i-[a-zA-Z0-9]+' | tr -d '"'); do
echo "Instance ID: $instanceid"
aws ec2 describe-instance-attribute --profile <profile> --region us-west-2 --instance-id "$instanceid" --attribute userData | jq ".UserData.Value" | tr -d '"' | base64 -d
echo ""
echo "-------------------"
done
# Instance profiles
aws iam list-instance-profiles
aws iam list-instance-profiles-for-role --role-name <name>
# Get tags
aws ec2 describe-tags
# Get volumes
aws ec2 describe-volume-status
aws ec2 describe-volumes
# Get snapshots
aws ec2 describe-snapshots --owner-ids self
# Scheduled instances
aws ec2 describe-scheduled-instances
# Get custom images
aws ec2 describe-images --owners self
# Get Elastic IPs
aws ec2 describe-addresses
# Get current output
aws ec2 get-console-output --instance-id [id]
# Get VPN customer gateways
aws ec2 describe-customer-gateways
aws ec2 describe-vpn-gateways
aws ec2 describe-vpn-connections
# List conversion tasks to upload/download VMs
aws ec2 describe-conversion-tasks
aws ec2 describe-import-image-tasks
# Get Bundle Tasks
aws ec2 describe-bundle-tasks
# Get Classic Instances
aws ec2 describe-classic-link-instances
# Get Dedicated Hosts
aws ec2 describe-hosts
# Get SSH Key Pairs
aws ec2 describe-key-pairs
# Get Internet Gateways
aws ec2 describe-internet-gateways
# Get NAT Gateways
aws ec2 describe-nat-gateways
# Get subnetworks
aws ec2 describe-subnets
# Get FW rules
aws ec2 describe-network-acls
# Get security groups
aws ec2 describe-security-groups
# Get interfaces
aws ec2 describe-network-interfaces
# Get routes table
aws ec2 describe-route-tables
# Get VPCs
aws ec2 describe-vpcs
aws ec2 describe-vpc-peering-connections
Acceso No Autenticado
AWS - EC2 Unauthenticated Enum
Escalaci贸n de Privilegios
En la siguiente p谩gina puedes verificar c贸mo abusar de los permisos de EC2 para escalar privilegios:
Post-Explotaci贸n
AWS - EC2, EBS, SSM & VPC Post Exploitation
EBS
Amazon EBS (Elastic Block Store) snapshots son b谩sicamente copias de seguridad est谩ticas de vol煤menes de AWS EBS. En otras palabras, son copias de los discos adjuntos a una instancia EC2 en un momento espec铆fico. Los snapshots de EBS pueden ser copiados entre regiones y cuentas, o incluso descargados y ejecutados localmente.
Los snapshots pueden contener informaci贸n sensible como c贸digo fuente o claves de API, por lo tanto, si tienes la oportunidad, se recomienda revisarlo.
Diferencia AMI & EBS
Una AMI se utiliza para lanzar una instancia EC2, mientras que un snapshot de EC2 se utiliza para respaldar y recuperar datos almacenados en un volumen EBS. Aunque un snapshot de EC2 puede ser utilizado para crear una nueva AMI, no es lo mismo que una AMI, y no incluye informaci贸n sobre el sistema operativo, servidor de aplicaciones u otro software requerido para ejecutar una aplicaci贸n.
Escalaci贸n de Privilegios
En la siguiente p谩gina puedes verificar c贸mo abusar de los permisos de EBS para escalar privilegios:
SSM
Amazon Simple Systems Manager (SSM) permite gestionar de forma remota grupos de instancias EC2 para facilitar mucho m谩s su administraci贸n. Cada una de estas instancias necesita estar ejecutando el servicio SSM Agent, ya que este ser谩 el encargado de recibir las acciones y ejecutarlas desde la API de AWS.
El SSM Agent permite 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 de IAM utilizado dentro de la instancia necesita tener la pol铆tica AmazonEC2RoleforSSM adjunta para poder comunicarse.
Enumeraci贸n
aws ssm describe-instance-information
aws ssm describe-parameters
aws ssm describe-sessions --state [Active|History]
aws ssm describe-instance-patches --instance-id <id>
aws ssm describe-instance-patch-states --instance-ids <id>
aws ssm describe-instance-associations-status --instance-id <id>
Puedes verificar en una instancia de EC2 si Systems Manager est谩 en ejecuci贸n simplemente ejecutando:
ps aux | grep amazon-ssm
Privesc
En la siguiente p谩gina puedes verificar c贸mo abusar de los permisos de SSM para escalar privilegios:
Persistencia
En la siguiente p谩gina puedes verificar c贸mo abusar de los permisos de SSM para lograr persistencia:
ELB
Elastic Load Balancing (ELB) es un servicio de balanceo de carga para implementaciones de Amazon Web Services (AWS). ELB distribuye autom谩ticamente el tr谩fico de aplicaci贸n entrante y escala los recursos para satisfacer las demandas de tr谩fico.
Enumeraci贸n
# List internet-facing ELBs
aws elb describe-load-balancers
aws elb describe-load-balancers | jq '.LoadBalancerDescriptions[]| select( .Scheme | contains("internet-facing"))|.DNSName'
# DONT FORGET TO CHECK VERSION 2
aws elbv2 describe-load-balancers
aws elbv2 describe-load-balancers | jq '.LoadBalancers[].DNSName'
aws elbv2 describe-listeners --load-balancer-arn <load_balancer_arn>
Plantillas de Lanzamiento y Grupos de Escalado Autom谩tico
Enumeraci贸n
# Launch templates
aws ec2 describe-launch-templates
aws ec2 describe-launch-templates --launch-template-id <launch_template_id>
## Get details, like user data
aws ec2 describe-launch-template-versions --launch-template-id <launch_template_id>
# Autoscaling
aws autoscaling describe-auto-scaling-groups
aws autoscaling describe-auto-scaling-instances
aws autoscaling describe-launch-configurations
aws autoscaling describe-load-balancer-target-groups
aws autoscaling describe-load-balancers
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 funciones de virtualizaci贸n, Nitro permite que las instancias de EC2 ofrezcan un rendimiento casi bare-metal, lo que resulta particularmente beneficioso para aplicaciones que requieren muchos recursos. Adem谩s, el Nitro Security Chip asegura espec铆ficamente la seguridad del hardware y el firmware, solidificando a煤n m谩s su robusta arquitectura.
Obt茅n m谩s informaci贸n y c贸mo enumerarlo desde:
VPN
Una VPN permite conectar tu red local (VPN sitio a sitio) o las laptops de los trabajadores (VPN de cliente) con una 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 VPN sitio a sitio.
- Proporcionas informaci贸n de enrutamiento y la direcci贸n IP p煤blica de tu dispositivo de red (como un enrutador o un firewall) a AWS para crear un Customer Gateway.
- Sirve como un 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 VPN sitio a sitio.
- 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 VPN sitio a sitio conecta tu red local a una VPC a trav茅s de un t煤nel VPN IPsec seguro.
- 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.
- T铆picamente se utiliza 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 endpoint de Client VPN es un recurso que creas en AWS para habilitar y gestionar sesiones de VPN de cliente.
- Se utiliza para permitir que dispositivos individuales (como laptops, smartphones, etc.) se conecten de forma segura a los recursos de AWS o a tu red local.
- Se diferencia de la VPN sitio a sitio en que est谩 dise帽ado para clientes individuales en lugar de conectar redes enteras.
- Con Client VPN, cada dispositivo cliente utiliza un software de cliente VPN para establecer una conexi贸n segura.
Puedes encontrar m谩s informaci贸n sobre los beneficios y componentes de las VPN de AWS aqu铆.
Enumeration
# VPN endpoints
## Check used subnetwork, authentication, SGs, connected...
aws ec2 describe-client-vpn-endpoints
## Get AWS network info related to the vpn endpoint
aws ec2 describe-client-vpn-target-networks --client-vpn-endpoint-id <id>
## Get AWS subnet & ip range the VPN iconnected to
aws ec2 describe-client-vpn-routes --client-vpn-endpoint-id <id>
## Check authorization rules
aws ec2 describe-client-vpn-authorization-rules --client-vpn-endpoint-id <id>
## Get current connections to the VPN endpoint
aws ec2 describe-client-vpn-connections --client-vpn-endpoint-id <id>
# Get VPN gateways and check with which VPC each is connected
aws ec2 describe-vpn-gateways
# Get VPN site-to-site connections
aws ec2 describe-vpn-connections
Enumeraci贸n Local
Credenciales Temporales Locales
Cuando se utiliza el Cliente VPN de AWS para conectarse a una VPN, el usuario generalmente inicia sesi贸n en AWS para obtener acceso a la VPN. Luego, algunas credenciales de AWS se crean y almacenan 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
Referencias
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripci贸n!
- 脷nete al 馃挰 grupo de Discord o al grupo de telegram o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
HackTricks Cloud

