AWS - EC2, EBS, ELB, SSM, VPC & VPN Enumeraci贸n
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.
VPC & Networking
Aprende qu茅 es una VPC y sus componentes en:
AWS - VPC & Networking Basic Information
EC2
Amazon EC2 se utiliza para iniciar servidores virtuales. Permite la configuraci贸n de seguridad y networking y la gesti贸n de almacenamiento. La flexibilidad de Amazon EC2 se manifiesta en su capacidad para escalar recursos tanto hacia arriba como hacia abajo, adapt谩ndose eficazmente a cambios en los requisitos o picos de demanda. Esta caracter铆stica reduce la necesidad de predecir con precisi贸n el tr谩fico.
Cosas interesantes para enumerar en EC2:
- M谩quinas virtuales
- SSH Keys
- User Data
- EC2s/AMIs/Snapshots existentes
- Networking
- Networks
- Subnetworks
- Public IPs
- Puertos abiertos
- Conexiones integradas con otras redes fuera de AWS
Instance Profiles
Usar roles para otorgar permisos a aplicaciones que se ejecutan en EC2 instances 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, se necesita un paso extra para asignar un role de AWS y sus permisos asociados a una instancia EC2 y ponerlos a disposici贸n de sus aplicaciones.
Este paso extra es la creaci贸n de un instance profile adjunto a la instancia. El instance profile contiene el role y puede proporcionar las credenciales temporales del role a una aplicaci贸n que se ejecuta en la instancia. Esas credenciales temporales pueden luego usarse en las llamadas API de la aplicaci贸n para acceder a recursos y limitar el acceso solo a los recursos que el role especifica. Ten en cuenta que solo un role puede asignarse a una instancia EC2 a la vez, y todas las aplicaciones en la instancia comparten el mismo role y permisos.
Metadata Endpoint
AWS EC2 metadata es informaci贸n sobre una instancia de Amazon Elastic Compute Cloud (EC2) que est谩 disponible para la instancia en tiempo de ejecuci贸n. Esta metadata se utiliza para proporcionar informaci贸n sobre la instancia, como su instance ID, la availability zone en la que se est谩 ejecutando, el IAM role asociado a la instancia y el hostname de la instancia.
Enumeraci贸n
# 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 a JPG-format screenshot of a running instance
aws ec2 get-console-screenshot --instance [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
Privesc
En la siguiente p谩gina puedes ver c贸mo abusar de los permisos de EC2 para escalar privilegios:
Post-Exploitation
AWS - EC2, EBS, SSM & VPC Post Exploitation
EBS
Amazon EBS (Elastic Block Store) snapshots son b谩sicamente copias est谩ticas de backups de los vol煤menes EBS de AWS. En otras palabras, son copias de los discos adjuntos a una instancia EC2 en un momento espec铆fico. Los snapshots de EBS pueden copiarse entre regiones y cuentas, o incluso descargarse y ejecutarse localmente.
Los snapshots pueden contener informaci贸n sensible como c贸digo fuente o API keys, por lo tanto, si tienes la oportunidad, se recomienda revisarlos.
Difference AMI & EBS
Una AMI se usa para lanzar una instancia EC2, mientras que un Snapshot de EC2 se usa para respaldar y recuperar los datos almacenados en un volumen EBS. Aunque un Snapshot 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:
SSM
Amazon Simple Systems Manager (SSM) permite gestionar de forma remota flotas de instancias EC2 para facilitar su administraci贸n. Cada una de estas instancias necesita ejecutar el SSM Agent service ya que ser谩 el servicio que recibir谩 las acciones y las ejecutar谩 desde la API de AWS.
SSM Agent permite que Systems Manager actualice, gestione y configure estos recursos. El agente procesa las requests desde el servicio Systems Manager en la AWS Cloud, y luego las ejecuta seg煤n lo especificado en la solicitud.
El SSM Agent comes preinstalled in some AMIs or you need to manually install them on the instances. Adem谩s, el IAM Role usado dentro de la instancia necesita tener la policy 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 comprobar en una instancia EC2 si Systems Manager se est谩 ejecutando simplemente ejecutando:
ps aux | grep amazon-ssm
Privesc
En la siguiente p谩gina puedes ver c贸mo abuse SSM permissions to escalate privileges:
Perssistence
En la siguiente p谩gina puedes ver c贸mo abuse SSM permissions to achieve persistence:
ELB
Elastic Load Balancing (ELB) es un load-balancing service for Amazon Web Services (AWS) para despliegues. ELB autom谩ticamente distributes incoming application traffic y escala recursos para satisfacer la demanda 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>
Launch Templates & Autoscaling Groups
Enumeration
# 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 AWS EC2. Introducido por Amazon para mejorar la seguridad, el rendimiento y la fiabilidad, Nitro aprovecha componentes de hardware personalizados y un hypervisor ligero. Abstrae gran parte de la funcionalidad tradicional de virtualizaci贸n hacia hardware y software dedicados, minimizing the attack surface y mejorando la eficiencia de los recursos. Al descargar funciones de virtualizaci贸n, Nitro permite que las instancias EC2 ofrezcan near bare-metal performance, lo que lo hace especialmente beneficioso para aplicaciones intensivas en recursos. Adem谩s, el Nitro Security Chip garantiza espec铆ficamente la seguridad del hardware y del firmware, reforzando a煤n m谩s su arquitectura robusta.
Get more information and how to enumerate it from:
VPN
Una VPN permite conectar tu red on-premise (site-to-site VPN) o los port谩tiles de los trabajadores (Client VPN) con una AWS VPC, de modo que los servicios puedan accederse sin necesidad de exponerlos a Internet.
Basic AWS VPN Components
- 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 genera 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 destino para tu conexi贸n VPN.
- VPG es el endpoint del lado de AWS para la conexi贸n VPN.
- Maneja la comunicaci贸n segura entre tu VPC y tu red on-premises.
- Site-to-Site VPN Connection:
- Una Site-to-Site VPN connection conecta tu red on-premises a una 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 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 Client VPN.
- Se usa para permitir que dispositivos individuales (como laptops, smartphones, etc.) se conecten de forma segura a recursos de AWS o a tu red on-premises.
- Se diferencia de la Site-to-Site VPN en que est谩 dise帽ado para clientes individuales en lugar de conectar redes completas.
- Con Client VPN, cada dispositivo cliente utiliza un VPN client software para establecer una conexi贸n segura.
You can find more information about the benefits and components of AWS VPNs here.
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 usa AWS VPN Client para conectarse a una VPN, el usuario normalmente inicia sesi贸n en AWS para obtener acceso a la VPN. Luego, se crean y almacenan localmente algunas credenciales de AWS para establecer la conexi贸n VPN. Estas credenciales se almacenan en $HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt y contienen una AccessKey, una 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).
opvn config files
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 Exploitaiton
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

