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

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

VPC & Mreže

Saznajte šta je VPC i o njegovim komponentama u:

pageAWS - VPC & Networking Basic Information

EC2

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

Interesantne stvari za enumeraciju u EC2:

  • Virtuelne mašine

  • SSH ključevi

  • Korisnički podaci

  • Postojeći EC2/AMI/Snapshots

  • Mreža

  • Mreže

  • Podmreže

  • Javne IP adrese

  • Otvoreni portovi

  • Integrisane veze sa drugim mrežama van AWS-a

Profili Instanci

Korišćenje uloga za dodeljivanje dozvola aplikacijama koje se izvršavaju na EC2 instancama zahteva malo dodatne konfiguracije. Aplikacija koja se izvršava na EC2 instanci je apstrahovana od AWS-a od strane virtualizovanog operativnog sistema. Zbog ove dodatne separacije, potreban je dodatni korak za dodelu AWS uloge i pripadajućih dozvola EC2 instanci i omogućavanje njihovim aplikacijama.

Ovaj dodatni korak je kreiranje profila instance koji je priložen instanci. Profil instance sadrži ulogu i može obezbediti privremene akreditive uloge aplikaciji koja se izvršava na instanci. Ti privremeni akreditivi mogu zatim biti korišćeni u API pozivima aplikacije za pristup resursima i ograničavanje pristupa samo onim resursima koje uloga specificira. Imajte na umu da se samo jedna uloga može dodeliti EC2 instanci u isto vreme, i sve aplikacije na instanci dele istu ulogu i dozvole.

Krajnja tačka metapodataka

AWS EC2 metapodaci su informacije o Amazon Elastic Compute Cloud (EC2) instanci koje su dostupne instanci tokom izvršavanja. Ovi metapodaci se koriste za pružanje informacija o instanci, kao što su ID instance, zona dostupnosti u kojoj se izvršava, IAM uloga povezana sa instancom i ime hosta 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 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

Neautentifikovan pristup

pageAWS - EC2 Unauthenticated Enum

Eskalacija privilegija

Na sledećoj stranici možete proveriti kako zloupotrebiti EC2 dozvole radi eskalacije privilegija:

pageAWS - EC2 Privesc

Post-eksploatacija

pageAWS - EC2, EBS, SSM & VPC Post Exploitation

EBS

Amazon EBS (Elastic Block Store) snapshots su u osnovi statičke rezerve AWS EBS volumena. Drugim rečima, to su kopije diskova prikačenih na EC2 instancu u određenom trenutku. EBS snimci mogu biti kopirani između regiona i naloga, ili čak preuzeti i pokrenuti lokalno.

Snimci 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 između AMI i EBS

AMI se koristi za pokretanje EC2 instance, dok se EC2 Snapshot koristi za rezervno kopiranje i vraćanje podataka sačuvanih na EBS volumenu. Iako se EC2 snimak može koristiti za kreiranje nove AMI, to nije isto kao AMI i ne uključuje informacije o operativnom sistemu, serverskom aplikacijskom softveru ili drugom softveru potrebnom za pokretanje aplikacije.

Eskalacija privilegija

Na sledećoj stranici možete proveriti kako zloupotrebiti EBS dozvole radi eskalacije privilegija:

pageAWS - EBS Privesc

SSM

Amazon Simple Systems Manager (SSM) omogućava daljinsko upravljanje grupama EC2 instanci kako bi njihova administracija bila mnogo lakša. Svaka od ovih instanci mora imati pokrenutu SSM Agent uslugu jer će ta usluga primati radnje i izvršavati ih preko AWS API-ja.

SSM Agent omogućava Systems Manager-u da ažurira, upravlja i konfiguriše ove resurse. Agent obradi zahteve od usluge Systems Manager u AWS oblaku, a zatim ih pokreće kako je navedeno u zahtevu.

SSM Agent dolazi predinstaliran u nekim AMI ili ga trebate instalirati ručno na instancama. Takođe, IAM uloga korišćena unutar instance mora imati politiku AmazonEC2RoleforSSM priloženu kako bi mogla komunicirati.

Enumeracija

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:

ps aux | grep amazon-ssm

Povećanje privilegija

Na sledećoj stranici možete proveriti kako zloupotrebiti dozvole SSM-a za povećanje privilegija:

pageAWS - SSM Privesc

ELB

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

Enumeracija

# 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 & Grupi automatskog skaliranja

Nabrojavanje

# 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. Predstavljen od strane Amazona radi unapređenja sigurnosti, performansi i pouzdanosti, Nitro koristi prilagođene hardverske komponente i lagani hipervizor. Apstrahuje veći deo tradicionalne virtualizacijske funkcionalnosti na posvećeni hardver i softver, minimizirajući površinu napada i poboljšavajući efikasnost resursa. Prebacivanjem virtualizacijskih funkcija, Nitro omogućava EC2 instancama da pruže performanse skoro identične fizičkom serveru, čineći ga posebno korisnim za resursno intenzivne aplikacije. Dodatno, Nitro Security Chip posebno osigurava sigurnost hardvera i firmware-a, dodatno učvršćujući njegovu robusnu arhitekturu.

Pronađite više informacija i kako da ih nabrojite na:

pageAWS - Nitro Enum

VPN

VPN omogućava povezivanje vaše on-premise mreže (site-to-site VPN) ili laptopova radnika (Client VPN) sa AWS VPC kako bi usluge mogle biti pristupljene bez potrebe da se izlažu internetu.

Osnovni AWS VPN Komponente

  1. Customer Gateway:

  • Customer Gateway je resurs koji kreirate u AWS-u da predstavlja vašu stranu VPN veze.

  • To je suštinski fizički uređaj ili softverska aplikacija na vašoj strani Site-to-Site VPN veze.

  • Prilažete rutinske informacije i javnu IP adresu vašeg mrežnog uređaja (kao što je ruter ili firewall) AWS-u kako biste kreirali Customer Gateway.

  • Služi kao referentna tačka za postavljanje VPN veze i ne donosi 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 krajnja tačka za VPN vezu.

  • Obradjuje sigurnu komunikaciju između vašeg VPC-a i vaše on-premise mreže.

  1. Site-to-Site VPN Connection:

  • Site-to-Site VPN veza povezuje vašu on-premise mrežu sa VPC-om putem sigurnog, IPsec VPN tunela.

  • 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 prenetih podataka preko veze.

  1. Client VPN Endpoint:

  • Client VPN endpoint je resurs koji kreirate u AWS-u da omogući i upravlja sesijama klijentskog VPN-a.

  • Koristi se za omogućavanje pojedinačnim uređajima (kao što su laptopovi, pametni telefoni, itd.) da sigurno se povežu sa AWS resursima ili vašom on-premise mrežom.

  • Razlikuje se od Site-to-Site VPN-a po tome što je dizajniran za pojedinačne klijente umesto 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-ova ovde.

Nabrojavanje

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

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

Akreditacije 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 akreditacija).

opvn konfiguracioni fajlovi

Ako je VPN veza uspostavljena, trebalo bi da potražite .opvn konfiguracione fajlove u sistemu. Takođe, jedno mesto gde biste mogli pronaći konfiguracije je u $HOME/.config/AWSVPNClient/OpenVpnConfigs

Post eksploatacija

pageAWS - VPN Post Exploitation

Reference

Naučite hakovanje AWS-a od početnika do stručnjaka sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated