AWS - EC2, EBS, ELB, SSM, VPC & VPN Enum

Reading time: 11 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

VPC & Networking

Saznajte šta je VPC i o njegovim komponentama u:

AWS - VPC & Networking Basic Information

EC2

Amazon EC2 se koristi za pokretanje virtuelnih servera. Omogućava konfiguraciju bezbednosti i mrežne infrastrukture i upravljanje skladištem. Fleksibilnost Amazon EC2 je očigledna u njegovoj sposobnosti da skalira resurse kako naviše, tako i naniže, efikasno se prilagođavajući promenama zahteva ili porastima popularnosti. Ova funkcija smanjuje potrebu za preciznim predikcijama saobraćaja.

Zanimljive stvari za enumeraciju u EC2:

  • Virtuelne mašine
  • SSH ključevi
  • Podaci o korisnicima
  • Postojeći EC2/AMI/snapshoti
  • Mreža
  • Mreže
  • Podmreže
  • Javne IP adrese
  • Otvoreni portovi
  • Integrisane veze sa drugim mrežama van AWS-a

Instance Profiles

Korišćenje rola za dodeljivanje dozvola aplikacijama koje se pokreću na EC2 instancama zahteva malo dodatne konfiguracije. Aplikacija koja se pokreće na EC2 instanci je apstrahovana od AWS-a putem virtuelizovanog operativnog sistema. Zbog ove dodatne separacije, potrebna je dodatna faza za dodeljivanje AWS uloge i njenih povezanih dozvola EC2 instanci i njihovo dostupnost aplikacijama.

Ova dodatna faza je kreiranje instance profile vezanog za instancu. Instance profile sadrži ulogu i može obezbediti privremene akreditive uloge aplikaciji koja se pokreće na instanci. Ti privremeni akreditive se zatim mogu koristiti u API pozivima aplikacije za pristup resursima i za ograničavanje pristupa samo onim resursima koje uloga specificira. Imajte na umu da samo jedna uloga može biti dodeljena EC2 instanci u isto vreme, i sve aplikacije na instanci dele istu ulogu i dozvole.

Metadata Endpoint

AWS EC2 metapodaci su informacije o Amazon Elastic Compute Cloud (EC2) instanci koje su dostupne instanci u vreme izvršavanja. Ovi metapodaci se koriste za pružanje informacija o instanci, kao što su njen ID instance, dostupna zona u kojoj se pokreće, IAM uloga povezana sa instancom, i ime hosta instance.

Cloud SSRF - HackTricks

Enumeration

bash
# 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

Neautentifikovani pristup

AWS - EC2 Unauthenticated Enum

Privesc

Na sledećoj stranici možete proveriti kako da zloupotrebite EC2 dozvole za eskalaciju privilegija:

AWS - EC2 Privesc

Post-eksploatacija

AWS - EC2, EBS, SSM & VPC Post Exploitation

EBS

Amazon EBS (Elastic Block Store) snapshots su u suštini statični backup-ovi AWS EBS volumena. Drugim rečima, to su kopije diskova povezanih sa EC2 instancom u određenom trenutku. EBS snapshots se mogu kopirati 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, stoga, ako imate priliku, preporučuje se da ih proverite.

Razlika AMI & EBS

AMI se koristi za pokretanje EC2 instance, dok se EC2 Snapshot koristi za backup i oporavak podataka sa EBS volumena. Dok se EC2 Snapshot može koristiti za kreiranje novog AMI-ja, to nije isto što i AMI, i ne uključuje informacije o operativnom sistemu, serverskom softveru ili drugom softveru potrebnom za pokretanje aplikacije.

Privesc

Na sledećoj stranici možete proveriti kako da zloupotrebite EBS dozvole za eskalaciju privilegija:

AWS - EBS Privesc

SSM

Amazon Simple Systems Manager (SSM) omogućava daljinsko upravljanje flotama EC2 instanci kako bi njihova administracija bila mnogo lakša. Svaka od ovih instanci treba da pokreće SSM Agent servis, jer će taj servis obavljati akcije i izvršavati ih putem AWS API-ja.

SSM Agent omogućava Systems Manager-u da ažurira, upravlja i konfiguriše ove resurse. Agent obrađuje zahteve od Systems Manager servisa u AWS Cloudu, a zatim ih izvršava kako je navedeno u zahtevu.

SSM Agent dolazi predinstaliran u nekim AMI-jima ili ga treba ručno instalirati na instancama. Takođe, IAM uloga koja se koristi unutar instance treba da ima politiku AmazonEC2RoleforSSM prikačenu da bi mogla da komunicira.

Enumeracija

bash
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 da li je Systems Manager pokrenut na EC2 instanci jednostavno izvršavanjem:

bash
ps aux | grep amazon-ssm

Privesc

Na sledećoj stranici možete proveriti kako da zloupotrebite SSM dozvole za eskalaciju privilegija:

AWS - SSM Privesc

ELB

Elastic Load Balancing (ELB) je usluga balansiranja opterećenja za Amazon Web Services (AWS) implementacije. ELB automatski distribuira dolazni aplikativni saobraćaj i skalira resurse kako bi zadovoljio zahteve saobraćaja.

Enumeration

bash
# 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>

Šabloni za pokretanje i grupe za automatsko skaliranje

Enumeracija

bash
# 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 skup inovativnih tehnologija koje čine osnovnu platformu za AWS EC2 instance. Uveden od strane Amazona da poboljša bezbednost, performanse i pouzdanost, Nitro koristi prilagođene hardverske komponente i lagani hipervizor. Apstrahuje većinu tradicionalne funkcionalnosti virtualizacije na posvećen hardver i softver, minimizirajući površinu napada i poboljšavajući efikasnost resursa. Oslobađanjem funkcija virtualizacije, Nitro omogućava EC2 instancama da pruže performanse blizu onih na fizičkom hardveru, što ga čini posebno korisnim za aplikacije koje zahtevaju mnogo resursa. Pored toga, Nitro Security Chip posebno osigurava bezbednost hardvera i firmvera, dodatno učvršćujući njegovu robusnu arhitekturu.

Dobijte više informacija i kako ga enumerisati sa:

AWS - Nitro Enum

VPN

VPN omogućava povezivanje vaše lokalne mreže (site-to-site VPN) ili laptopova radnika (Client VPN) sa AWS VPC tako da se usluge mogu pristupiti bez potrebe da ih izlažete internetu.

Osnovne komponente AWS VPN-a

  1. Customer Gateway:
  • Customer Gateway je resurs koji kreirate u AWS-u da predstavlja vašu stranu VPN veze.
  • To je u suštini fizički uređaj ili softverska aplikacija na vašoj strani Site-to-Site VPN veze.
  • Pružate informacije o rutiranju i javnu IP adresu vašeg mrežnog uređaja (kao što je ruter ili vatrozid) AWS-u da biste kreirali Customer Gateway.
  • Služi kao referentna tačka za postavljanje VPN veze i ne izaziva dodatne troškove.
  1. Virtual Private Gateway:
  • Virtual Private Gateway (VPG) je VPN koncentrator na Amazon strani Site-to-Site VPN veze.
  • Povezan je sa vašim VPC-om i služi kao cilj za vašu VPN vezu.
  • VPG je AWS strana krajnje tačke za VPN vezu.
  • Rukuje sigurnom komunikacijom između vašeg VPC-a i vaše lokalne mreže.
  1. Site-to-Site VPN Connection:
  • Site-to-Site VPN veza povezuje vašu lokalnu mrežu sa VPC-om kroz sigurni, IPsec VPN tunel.
  • Ova vrsta veze zahteva Customer Gateway i Virtual Private Gateway.
  • Koristi se za sigurnu, stabilnu i doslednu 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.
  1. Client VPN Endpoint:
  • Client VPN endpoint je resurs koji kreirate u AWS-u da omogućite i upravljate klijentskim VPN sesijama.
  • Koristi se za omogućavanje pojedinačnim uređajima (kao što su laptopi, pametni telefoni itd.) da sigurno povežu sa AWS resursima ili vašom lokalnom mrežom.
  • 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 klijentski softver za uspostavljanje sigurne veze.

Možete pronaći više informacija o prednostima i komponentama AWS VPN-a ovde.

Enumeration

bash
# 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

Lokalne Privremene Akreditiv

Kada se koristi AWS VPN klijent za povezivanje na VPN, korisnik obično prijavljuje se u AWS da bi dobio pristup VPN-u. Tada se neki AWS akreditivi kreiraju i čuvaju lokalno kako bi se uspostavila VPN veza. Ovi akreditivi su čuvani u $HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt i sadrže AccessKey, SecretKey i Token.

Akreditivi 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 akreditiva).

opvn konfiguracione datoteke

Ako je VPN veza uspostavljena, trebali biste pretražiti .opvn konfiguracione datoteke u sistemu. Štaviše, jedno mesto gde možete pronaći konfiguracije je u $HOME/.config/AWSVPNClient/OpenVpnConfigs

Post Eksploatacija

AWS - VPN Post Exploitation

Reference

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks