AWS - EC2, EBS, ELB, SSM, VPC & VPN Enum
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
VPC & mise en réseau
Learn what a VPC is and about its components in:
AWS - VPC & Networking Basic Information
EC2
Amazon EC2 is utilized for initiating serveurs virtuels. It permet la configuration de la sĂ©curitĂ© et du rĂ©seau ainsi que la gestion du stockage. La flexibilitĂ© dâAmazon EC2 se manifeste par sa capacitĂ© Ă faire Ă©voluer les ressources vers le haut ou vers le bas, sâadaptant efficacement aux variations de besoins ou aux pics de trafic. Cette fonctionnalitĂ© rĂ©duit la nĂ©cessitĂ© de prĂ©voir prĂ©cisĂ©ment le trafic.
Choses intéressantes à énumérer dans EC2 :
- Machines virtuelles
- Clés SSH
- User Data
- EC2s/AMIs/Snapshots existants
- mise en réseau
- Réseaux
- Sous-réseaux
- IP publiques
- Ports ouverts
- Connexions intĂ©grĂ©es avec dâautres rĂ©seaux en dehors dâAWS
Instance Profiles
Lâutilisation de roles pour accorder des permissions aux applications qui sâexĂ©cutent sur des EC2 instances nĂ©cessite une configuration supplĂ©mentaire. Une application exĂ©cutĂ©e sur une instance EC2 est abstraite dâAWS par le systĂšme dâexploitation virtualisĂ©. En raison de cette sĂ©paration supplĂ©mentaire, il est nĂ©cessaire dâeffectuer une Ă©tape additionnelle pour attribuer un rĂŽle AWS et ses permissions associĂ©es Ă une instance EC2 et les rendre disponibles pour ses applications.
Cette Ă©tape supplĂ©mentaire est la crĂ©ation dâun instance profile attachĂ© Ă lâinstance. Lâinstance profile contient le role et peut fournir les credentials temporaires du role Ă une application qui sâexĂ©cute sur lâinstance. Ces credentials temporaires peuvent ensuite ĂȘtre utilisĂ©s dans les appels API de lâapplication pour accĂ©der aux ressources et limiter lâaccĂšs uniquement aux ressources spĂ©cifiĂ©es par le role. Notez que un seul role peut ĂȘtre assignĂ© Ă une EC2 instance Ă la fois, et toutes les applications sur lâinstance partagent le mĂȘme role et les mĂȘmes permissions.
Metadata Endpoint
Les metadata AWS EC2 sont des informations sur une instance Amazon Elastic Compute Cloud (EC2) qui sont disponibles pour lâinstance Ă lâexĂ©cution. Ces metadata servent Ă fournir des informations sur lâinstance, telles que son instance ID, la zone de disponibilitĂ© dans laquelle elle sâexĂ©cute, le IAM role associĂ© Ă lâinstance, et le hostname de lâinstance.
ĂnumĂ©ration
# 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
Unauthenticated Access
AWS - EC2 Unauthenticated Enum
Privesc
In the following page you can check how to abuse EC2 permissions to escalate privileges:
Post-Exploitation
AWS - EC2, EBS, SSM & VPC Post Exploitation
EBS
Amazon EBS (Elastic Block Store) instantanĂ©s sont essentiellement des sauvegardes statiques des volumes AWS EBS. En dâautres termes, ce sont des copies des disques attachĂ©s Ă une EC2 Instance Ă un moment donnĂ©. Les snapshots EBS peuvent ĂȘtre copiĂ©s entre rĂ©gions et comptes, ou mĂȘme tĂ©lĂ©chargĂ©s et exĂ©cutĂ©s localement.
Les snapshots peuvent contenir des informations sensibles telles que du code source ou des clés API, donc, si vous en avez la possibilité, il est recommandé de les vérifier.
Difference AMI & EBS
Un AMI est utilisĂ© pour lancer une EC2 instance, tandis quâun EC2 Snapshot est utilisĂ© pour sauvegarder et rĂ©cupĂ©rer les donnĂ©es stockĂ©es sur un volume EBS. Bien quâun EC2 Snapshot puisse ĂȘtre utilisĂ© pour crĂ©er un nouvel AMI, ce nâest pas la mĂȘme chose quâun AMI, et il nâinclut pas dâinformations sur le systĂšme dâexploitation, le serveur dâapplications ou les autres logiciels nĂ©cessaires pour exĂ©cuter une application.
Privesc
In the following page you can check how to abuse EBS permissions to escalate privileges:
SSM
Amazon Simple Systems Manager (SSM) permet de gĂ©rer Ă distance des flottes dâEC2 instances pour faciliter leur administration. Chacune de ces instances doit exĂ©cuter le service SSM Agent car câest ce service qui recevra les actions et les exĂ©cutera depuis lâAWS API.
Le SSM Agent permet Ă Systems Manager de mettre Ă jour, gĂ©rer et configurer ces ressources. Lâagent traite les requĂȘtes du service Systems Manager dans lâAWS Cloud, puis les exĂ©cute comme spĂ©cifiĂ© dans la requĂȘte.
The SSM Agent comes preinstalled in some AMIs or you need to manually install them on the instances. Also, the IAM Role used inside the instance needs to have the policy AmazonEC2RoleforSSM attached to be able to communicate.
ĂnumĂ©ration
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>
Vous pouvez vĂ©rifier sur une instance EC2 si Systems Manager est en cours dâexĂ©cution simplement en exĂ©cutant :
ps aux | grep amazon-ssm
Privesc
Sur la page suivante vous pouvez vérifier comment abuser des permissions SSM pour escalader les privilÚges:
Perssistence
Sur la page suivante vous pouvez vérifier comment abuser des permissions SSM pour obtenir une persistance:
ELB
Elastic Load Balancing (ELB) est un service dâĂ©quilibrage de charge pour les dĂ©ploiements Amazon Web Services (AWS). ELB distribue automatiquement le trafic applicatif entrant et ajuste les ressources pour rĂ©pondre Ă la demande.
Enumération
# 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>
ModĂšles de lancement & groupes Auto Scaling
ĂnumĂ©ration
# 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 est une suite de technologies innovantes qui constituent la plateforme sous-jacente pour les instances AWS EC2. Introduit par Amazon pour amĂ©liorer la sĂ©curitĂ©, les performances et la fiabilitĂ©, Nitro sâappuie sur des composants matĂ©riels personnalisĂ©s et un hyperviseur lĂ©ger. Il dĂ©place une grande partie des fonctions de virtualisation traditionnelles vers du matĂ©riel et des logiciels dĂ©diĂ©s, minimisant la surface dâattaque et amĂ©liorant lâefficacitĂ© des ressources. En dĂ©chargeant les fonctions de virtualisation, Nitro permet aux instances EC2 dâoffrir des performances proches du bare-metal, ce qui est particuliĂšrement avantageux pour les applications gourmandes en ressources. De plus, le Nitro Security Chip garantit spĂ©cifiquement la sĂ©curitĂ© du matĂ©riel et du firmware, renforçant encore son architecture robuste.
Get more information and how to enumerate it from:
VPN
Un VPN permet de connecter votre rĂ©seau sur site (site-to-site VPN) ou les ordinateurs portables des collaborateurs (Client VPN) Ă un AWS VPC, afin que les services puissent ĂȘtre accessibles sans avoir Ă les exposer sur Internet.
Basic AWS VPN Components
- Customer Gateway:
- Un Customer Gateway est une ressource que vous crĂ©ez dans AWS pour reprĂ©senter votre cĂŽtĂ© dâune connexion VPN.
- Il sâagit essentiellement dâun pĂ©riphĂ©rique physique ou dâune application logicielle de votre cĂŽtĂ© de la connexion Site-to-Site VPN.
- Vous fournissez les informations de routage et lâadresse IP publique de votre pĂ©riphĂ©rique rĂ©seau (comme un router ou un firewall) Ă AWS pour crĂ©er un Customer Gateway.
- Il sert de point de rĂ©fĂ©rence pour la configuration de la connexion VPN et nâentraĂźne pas de frais supplĂ©mentaires.
- Virtual Private Gateway:
- Un Virtual Private Gateway (VPG) est le concentrateur VPN du cÎté Amazon de la connexion Site-to-Site VPN.
- Il est attaché à votre VPC et sert de cible pour votre connexion VPN.
- Le VPG est le point de terminaison cÎté AWS pour la connexion VPN.
- Il gÚre la communication sécurisée entre votre VPC et votre réseau sur site.
- Site-to-Site VPN Connection:
- Une connexion Site-to-Site VPN relie votre réseau sur site à un VPC via un tunnel VPN sécurisé IPsec.
- Ce type de connexion nécessite un Customer Gateway et un Virtual Private Gateway.
- Elle est utilisée pour une communication sécurisée, stable et cohérente entre votre centre de données ou réseau et votre environnement AWS.
- Typiquement utilisée pour des connexions réguliÚres et à long terme et facturée en fonction du volume de données transférées via la connexion.
- Client VPN Endpoint:
- Un Client VPN endpoint est une ressource que vous créez dans AWS pour activer et gérer des sessions VPN client.
- Il est utilisé pour permettre à des dispositifs individuels (comme des ordinateurs portables, smartphones, etc.) de se connecter de maniÚre sécurisée aux ressources AWS ou à votre réseau sur site.
- Il diffĂšre du Site-to-Site VPN en ce quâil est conçu pour des clients individuels plutĂŽt que pour connecter des rĂ©seaux entiers.
- Avec Client VPN, chaque appareil client utilise un logiciel client VPN pour établir une connexion sécurisée.
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
ĂnumĂ©ration locale
Identifiants temporaires locaux
Lorsque AWS VPN Client est utilisĂ© pour se connecter Ă un VPN, lâutilisateur va gĂ©nĂ©ralement se connecter Ă AWS pour obtenir lâaccĂšs au VPN. Ensuite, des identifiants AWS sont créés et stockĂ©s localement pour Ă©tablir la connexion VPN. Ces identifiants sont stockĂ©s dans $HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt et contiennent un AccessKey, un SecretKey et un Token.
Les identifiants appartiennent Ă lâutilisateur arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials (TODO: rechercher plus dâinformations sur les permissions de ces identifiants).
opvn config files
Si une connexion VPN a Ă©tĂ© Ă©tablie vous devriez rechercher des fichiers de config .opvn sur le systĂšme. De plus, un endroit oĂč vous pourriez trouver les configurations est $HOME/.config/AWSVPNClient/OpenVpnConfigs
Post Exploitaiton
Références
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

