AWS - EC2, EBS, ELB, SSM, VPC & VPN Enum
Tip
Nauči & vežbaj AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Nauči & vežbaj GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Nauči & vežbaj Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Pogledajte subscription plans!
- Pridružite se 💬 Discord group or the telegram group or pratite nas na Twitter 🐦 @hacktricks_live.
- Podelite hacking tricks slanjem PR-ova na HackTricks i HackTricks Cloud github repos.
VPC i umrežavanje
Saznajte šta je VPC i o njegovim komponentama u:
AWS - VPC & Networking Basic Information
EC2
Amazon EC2 se koristi za pokretanje virtualnih servera. Omogućava konfigurisanje bezbednosti i umrežavanja i upravljanje skladištem. Fleksibilnost Amazon EC2 ogleda se u mogućnosti skaliranja resursa naviše i naniže, efikasno se prilagođavajući promenama zahteva ili skokovima u popularnosti. Ova funkcija smanjuje potrebu za preciznim predviđanjem saobraćaja.
Zanimljive stvari za enumeraciju u EC2:
- Virtualne mašine
- SSH ključevi
- User Data
- Postojeći EC2-ovi/AMIs/Snapshots
- Umrežavanje
- Mreže
- Podmreže
- Javne IP adrese
- Otvoreni portovi
- Integrisane veze sa drugim mrežama van AWS-a
Instance Profiles
Korišćenje roles za dodeljivanje dozvola aplikacijama koje se izvršavaju na EC2 instances zahteva dodatnu konfiguraciju. Aplikacija koja se izvršava na EC2 instance je apstrahovana od AWS-a putem virtualizovanog operativnog sistema. Zbog ovog dodatnog odvajanja, potreban je još jedan korak da se AWS role i pripadajuće dozvole dodele EC2 instance i učine dostupnim aplikacijama na njoj.
Ovaj dodatni korak je creation of an instance profile attached to the instance. The instance profile contains the role and može obezbediti privremene akreditive role aplikaciji koja se izvršava na instanci. Ti privremeni akreditivi se potom mogu koristiti u API pozivima aplikacije za pristup resursima i za ograničavanje pristupa samo onim resursima koje role navodi. Imajte na umu da only one role can be assigned to an EC2 instance u isto vreme, i sve aplikacije na instanci dele istu role i dozvole.
Metadata Endpoint
AWS EC2 metadata su informacije o Amazon Elastic Compute Cloud (EC2) instanci koje su dostupne instanci za vreme izvršavanja. Ova metadata se koriste da pruže informacije o instanci, kao što su njen instance ID, availability zone u kojoj radi, IAM role povezana sa instancom, i hostname instance.
Enumeracija
# 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
Neautentifikovani pristup
AWS - EC2 Unauthenticated Enum
Privesc
Na sledećoj stranici možete videti kako da zloupotrebite EC2 permissions da biste eskalirali privilegije:
Post-Exploitation
AWS - EC2, EBS, SSM & VPC Post Exploitation
EBS
Amazon EBS (Elastic Block Store) snapshots su u suštini statične rezervne kopije AWS EBS volumena. Drugim rečima, to su kopije diskova priključenih na EC2 instancu u određenom trenutku. EBS snapshots mogu biti kopirani između regiona i naloga, ili čak preuzeti i pokrenuti lokalno.
Snapshots mogu sadržati osetljive informacije kao što su izvorni kod ili API ključevi, zato, ako imate priliku, preporučuje se da ih proverite.
Razlika AMI & EBS
An AMI se koristi za pokretanje EC2 instance, dok se EC2 Snapshot koristi za bekapovanje i oporavak podataka pohranjenih na EBS volumenu. Iako se EC2 Snapshot može koristiti za kreiranje nove AMI, on nije isto što i AMI i ne uključuje informacije o operativnom sistemu, aplikacionom serveru ili drugom softveru potrebnom za pokretanje aplikacije.
Privesc
Na sledećoj stranici možete videti kako da zloupotrebite EBS permissions da biste eskalirali privilegije:
SSM
Amazon Simple Systems Manager (SSM) omogućava daljinsko upravljanje flotama EC2 instanci kako bi administracija bila mnogo jednostavnija. Svaka od ovih instanci treba da pokrene SSM Agent servis, jer će taj servis primati zahteve iz AWS API-ja i izvršavati ih.
SSM Agent omogućava Systems Manager-u da ažurira, upravlja i konfiguriše ove resurse. Agent obradi zahteve od Systems Manager servisa u AWS Cloud, i potom ih izvršava kako je navedeno u zahtevu.
SSM Agent dolazi preinstalled in some AMIs ili je potrebno da ih manually install them na instancama. Takođe, IAM Role koja se koristi unutar instance mora imati priloženu politiku AmazonEC2RoleforSSM da bi mogla da komunicira.
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>
Možete proveriti na EC2 instanci da li Systems Manager radi jednostavnim izvršavanjem:
ps aux | grep amazon-ssm
Privesc
Na sledećoj strani možete pogledati kako da abuse SSM permissions to escalate privileges:
Perssistence
Na sledećoj strani možete pogledati kako da abuse SSM permissions to achieve persistence:
ELB
Elastic Load Balancing (ELB) je servis za balansiranje opterećenja za Amazon Web Services (AWS) implementacije. ELB automatski raspoređuje dolazni saobraćaj aplikacije i skalira resurse kako bi zadovoljio zahteve saobraćaja.
Enumeration
# 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 je paket inovativnih tehnologija koje čine osnovnu platformu za AWS EC2 instance. Uveden od strane Amazon-a da bi poboljšao security, performance, i reliability, Nitro koristi prilagođene hardware components i lagani hipervizor. On prebacuje veći deo tradicionalne virtualizacione funkcionalnosti na namenski hardver i softver, minimizirajući attack surface i poboljšavajući efikasnost resursa. Izmeštanjem virtualizacijskih funkcija, Nitro omogućava EC2 instancama da pruže performanse bliske bare-metal-u, što ga čini naročito pogodnim za aplikacije koje zahtevaju velike resurse. Pored toga, Nitro Security Chip konkretno obezbeđuje bezbednost hardvera i firmware-a, dodatno učvršćujući njegovu robusnu arhitekturu.
Get more information and how to enumerate it from:
VPN
VPN omogućava povezivanje vaše on-premise network (site-to-site VPN) ili workers laptops (Client VPN) sa AWS VPC, tako da se servisi mogu koristiti bez potrebe da budu izloženi internetu.
Osnovne AWS VPN komponente
- Customer Gateway:
- Customer Gateway je resurs koji kreirate u AWS-u da predstavlja vašu stranu VPN veze.
- U suštini je fizički uređaj ili softverska aplikacija na vašoj strani Site-to-Site VPN veze.
- Prilikom kreiranja Customer Gateway-a prosleđujete informacije o rutiranju i javnu IP adresu vašeg mrežnog uređaja (npr. rutera ili firewalla) AWS-u.
- Služi kao referentna tačka za postavljanje VPN veze i ne predstavlja dodatni trošak.
- Virtual Private Gateway:
- Virtual Private Gateway (VPG) je VPN koncentrator na Amazon-ovoj strani Site-to-Site VPN veze.
- Priključen je na vašu VPC i služi kao odredište za vašu VPN vezu.
- VPG je AWS side endpoint za VPN vezu.
- On rukuje sigurnom komunikacijom između vaše VPC i vaše on-premise mreže.
- Site-to-Site VPN Connection:
- Site-to-Site VPN veza povezuje vašu on-premises mrežu sa VPC-om kroz siguran, IPsec VPN tunel.
- Ovaj tip veze zahteva Customer Gateway i Virtual Private Gateway.
- Koristi se za sigurnu, stabilnu i konzistentnu komunikaciju između vašeg data centra ili mreže i vašeg AWS okruženja.
- Obično se koristi za redovne, dugoročne veze i naplaćuje se na osnovu količine podataka prenetih preko veze.
- Client VPN Endpoint:
- Client VPN endpoint je resurs koji kreirate u AWS-u da omogućite i upravljate client VPN sesijama.
- Koristi se da omogući pojedinačnim uređajima (npr. laptopovima, pametnim telefonima itd.) da se sigurno povežu na AWS resurse ili vašu on-premises mrežu.
- Razlikuje se od Site-to-Site VPN po tome što je dizajniran za pojedinačne klijente, a ne za povezivanje celih mreža.
- Sa Client VPN-om, svaki klijentski uređaj koristi VPN client software za uspostavljanje sigurne veze.
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
Lokalna enumeracija
Lokalni privremeni kredencijali
When AWS VPN Client is used to connect to a VPN, the user will usually login in AWS to get access to the VPN. Then, some AWS credentials are created and stored locally to establish the VPN connection. These credentials are stored in $HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt and contains an AccessKey, a SecretKey and a Token.
Kredencijali pripadaju korisniku arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials (TODO: istražiti više o dozvolama ovih kredencijala).
opvn konfiguracioni fajlovi
Ako je VPN veza uspostavljena trebalo bi da potražite .opvn konfiguracione fajlove u sistemu. Pored toga, jedno mesto gde možete pronaći konfiguracije je $HOME/.config/AWSVPNClient/OpenVpnConfigs
Post Exploitaiton
References
Tip
Nauči & vežbaj AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Nauči & vežbaj GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Nauči & vežbaj Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Pogledajte subscription plans!
- Pridružite se 💬 Discord group or the telegram group or pratite nas na Twitter 🐦 @hacktricks_live.
- Podelite hacking tricks slanjem PR-ova na HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

