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

Support HackTricks

VPC & Networking

Learn what a VPC is and about its components in:

AWS - VPC & Networking Basic Information

EC2

Amazon EC2 inatumika kwa kuanzisha seva za virtual. Inaruhusu usanidi wa usalama na mtandao na usimamizi wa hifadhi. Uwezo wa Amazon EC2 kuweza kupanua rasilimali juu na chini unaonyesha uwezo wake wa kubadilika, ukibadilika kwa mabadiliko ya mahitaji au kuongezeka kwa umaarufu. Kipengele hiki kinapunguza hitaji la utabiri sahihi wa trafiki.

Mambo ya kuvutia ya kuhesabu katika EC2:

  • Mashine za Virtual

  • Funguo za SSH

  • Takwimu za Mtumiaji

  • EC2/AMIs/Snapshots zilizopo

  • Mtandao

  • Mitandao

  • Mitandao Ndogo

  • IP za Umma

  • Bandari za wazi

  • Munganisho uliounganishwa na mitandao mingine nje ya AWS

Instance Profiles

Kutumia roles kutoa ruhusa kwa programu zinazotembea kwenye EC2 instances kunahitaji usanidi wa ziada kidogo. Programu inayotembea kwenye EC2 instance inatengwa kutoka AWS na mfumo wa uendeshaji wa virtualized. Kwa sababu ya kutengwa huku, unahitaji hatua ya ziada kutoa AWS role na ruhusa zake zinazohusiana kwa EC2 instance na kuzifanya zipatikane kwa programu zake.

Hatua hii ya ziada ni kuunda instance profile iliyoambatanishwa na instance. Instance profile ina role na inaweza kutoa akreditivu za muda za role kwa programu inayotembea kwenye instance. Akreditivu hizo za muda zinaweza kutumika katika wito wa API wa programu kupata rasilimali na kupunguza ufikiaji kwa rasilimali hizo pekee ambazo role inabainisha. Kumbuka kwamba role moja tu inaweza kutolewa kwa EC2 instance kwa wakati mmoja, na programu zote kwenye instance zinashiriki role na ruhusa sawa.

Metadata Endpoint

AWS EC2 metadata ni taarifa kuhusu Amazon Elastic Compute Cloud (EC2) instance ambayo inapatikana kwa instance wakati wa utendaji. Metadata hii inatumika kutoa taarifa kuhusu instance, kama vile kitambulisho chake cha instance, eneo la upatikanaji ambalo linatumika, role ya IAM inayohusiana na instance, na jina la mwenyeji wa instance.

Enumeration

# 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

Upatikanaji Usioidhinishwa

AWS - EC2 Unauthenticated Enum

Privesc

Katika ukurasa ufuatao unaweza kuangalia jinsi ya kudhulumu ruhusa za EC2 ili kupandisha mamlaka:

AWS - EC2 Privesc

Baada ya Kutekeleza

AWS - EC2, EBS, SSM & VPC Post Exploitation

EBS

Amazon EBS (Elastic Block Store) snapshots kimsingi ni backup za kudumu za volumes za AWS EBS. Kwa maneno mengine, ni nakala za diski zilizounganishwa na EC2 Instance katika wakati maalum. EBS snapshots zinaweza kunakiliwa kati ya mikoa na akaunti, au hata kupakuliwa na kuendesha kwa ndani.

Snapshots zinaweza kuwa na habari nyeti kama vile kanuni za chanzo au funguo za APi, kwa hivyo, ikiwa una nafasi, inapendekezwa kuangalia.

Tofauti AMI & EBS

AMI inatumika ku anzisha EC2 instance, wakati Snapshot ya EC2 inatumika ku backup na kurejesha data iliyohifadhiwa kwenye EBS volume. Ingawa Snapshot ya EC2 inaweza kutumika kuunda AMI mpya, si sawa na AMI, na haijumuishi habari kuhusu mfumo wa uendeshaji, seva ya programu, au programu nyingine zinazohitajika kuendesha programu.

Privesc

Katika ukurasa ufuatao unaweza kuangalia jinsi ya kudhulumu ruhusa za EBS ili kupandisha mamlaka:

AWS - EBS Privesc

SSM

Amazon Simple Systems Manager (SSM) inaruhusu kusimamia kwa mbali flot za EC2 instances ili kufanya usimamizi wao kuwa rahisi zaidi. Kila moja ya hizi instances inahitaji kuwa inafanya kazi SSM Agent service kwani huduma hiyo itakuwa inapata vitendo na kuyatekeleza kutoka kwa AWS API.

SSM Agent inafanya iwezekane kwa Systems Manager kuboresha, kusimamia, na kuunda mipangilio ya rasilimali hizi. Agent inasindika maombi kutoka kwa huduma ya Systems Manager katika AWS Cloud, na kisha inatekeleza kama ilivyoainishwa katika ombi.

SSM Agent inakuja imewekwa awali katika baadhi ya AMIs au unahitaji kuziweka kwa mikono kwenye instances. Pia, IAM Role inayotumika ndani ya instance inahitaji kuwa na sera AmazonEC2RoleforSSM iliyounganishwa ili kuweza kuwasiliana.

Uainishaji

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>

Unaweza kuangalia katika mfano wa EC2 ikiwa Systems Manager inafanya kazi kwa kutekeleza:

ps aux | grep amazon-ssm

Privesc

Katika ukurasa ufuatao unaweza kuangalia jinsi ya kudhulumu ruhusa za SSM ili kupandisha mamlaka:

AWS - SSM Privesc

ELB

Elastic Load Balancing (ELB) ni huduma ya usambazaji wa mzigo kwa Amazon Web Services (AWS) deployments. ELB kiotomatiki inasambaza trafiki ya programu inayokuja na inapanua rasilimali ili kukidhi mahitaji ya trafiki.

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>

Mifano ya Uzinduzi & Vikundi vya Autoscaling

Uhesabu

# 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 ni seti ya teknolojia bunifu ambazo zinaunda jukwaa la msingi kwa ajili ya AWS EC2 instances. Ilianzishwa na Amazon ili kuimarisha usalama, utendaji, na uaminifu, Nitro inatumia vipengele vya vifaa maalum na hypervisor nyepesi. Inatoa muonekano wa kazi nyingi za kawaida za virtualization kwa vifaa na programu maalum, ikiweka chini uso wa shambulio na kuboresha ufanisi wa rasilimali. Kwa kuhamasisha kazi za virtualization, Nitro inaruhusu EC2 instances kutoa utendaji wa karibu wa chuma tupu, na kufanya iwe na manufaa hasa kwa programu zinazohitaji rasilimali nyingi. Zaidi ya hayo, Chip ya Usalama ya Nitro inahakikisha usalama wa vifaa na firmware, ikiongeza nguvu ya usanifu wake.

Pata maelezo zaidi na jinsi ya kuhesabu kutoka:

AWS - Nitro Enum

VPN

VPN inaruhusu kuunganisha mtandao wako wa ndani (site-to-site VPN) au kompyuta za wafanyakazi (Client VPN) na AWS VPC ili huduma ziweze kufikiwa bila kuhitaji kuzifichua kwa mtandao.

Vipengele vya Msingi vya AWS VPN

  1. Customer Gateway:

  • Customer Gateway ni rasilimali unayounda katika AWS kuwakilisha upande wako wa muunganisho wa VPN.

  • Kimsingi ni kifaa halisi au programu ya software upande wako wa muunganisho wa Site-to-Site VPN.

  • Unatoa taarifa za routing na anwani ya IP ya umma ya kifaa chako cha mtandao (kama vile router au firewall) kwa AWS ili kuunda Customer Gateway.

  • Inatumika kama alama ya marejeleo kwa kuanzisha muunganisho wa VPN na haina gharama za ziada.

  1. Virtual Private Gateway:

  • Virtual Private Gateway (VPG) ni mkusanyiko wa VPN upande wa Amazon wa muunganisho wa Site-to-Site VPN.

  • Inashikamana na VPC yako na inatumika kama lengo la muunganisho wako wa VPN.

  • VPG ni mwisho wa upande wa AWS kwa muunganisho wa VPN.

  • Inashughulikia mawasiliano salama kati ya VPC yako na mtandao wako wa ndani.

  1. Site-to-Site VPN Connection:

  • Muunganisho wa Site-to-Site VPN unachanganya mtandao wako wa ndani na VPC kupitia tunnel salama ya IPsec VPN.

  • Aina hii ya muunganisho inahitaji Customer Gateway na Virtual Private Gateway.

  • Inatumika kwa mawasiliano salama, thabiti, na ya kawaida kati ya kituo chako cha data au mtandao na mazingira yako ya AWS.

  • Kawaida inatumika kwa muunganisho wa kawaida, wa muda mrefu na inatozwa kulingana na kiasi cha data kinachohamishwa kupitia muunganisho.

  1. Client VPN Endpoint:

  • Client VPN endpoint ni rasilimali unayounda katika AWS ili kuwezesha na kusimamia vikao vya VPN vya wateja.

  • Inatumika kuruhusu vifaa binafsi (kama vile kompyuta za mkononi, simu za mkononi, nk.) kuungana kwa usalama na rasilimali za AWS au mtandao wako wa ndani.

  • Inatofautiana na Site-to-Site VPN kwa kuwa imeundwa kwa wateja binafsi badala ya kuunganisha mitandao yote.

  • Kwa Client VPN, kila kifaa cha mteja kinatumia programu ya mteja wa VPN kuanzisha muunganisho salama.

Unaweza kupata maelezo zaidi kuhusu faida na vipengele vya AWS VPNs hapa.

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

Local Enumeration

Local Temporary Credentials

Wakati mteja wa AWS VPN anapotumika kuungana na VPN, mtumiaji kwa kawaida anajiandikisha katika AWS ili kupata ufikiaji wa VPN. Kisha, baadhi ya akikazi za AWS zinaundwa na kuhifadhiwa kwa ndani ili kuanzisha muunganisho wa VPN. Akikazi hizi zinahifadhiwa katika $HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt na zina AccessKey, SecretKey na Token.

Akikazi zinamhusu mtumiaji arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials (TODO: tafiti zaidi kuhusu ruhusa za akazi hizi).

opvn config files

Ikiwa muunganisho wa VPN umeanzishwa unapaswa kutafuta faili za config .opvn katika mfumo. Zaidi ya hayo, mahali ambapo unaweza kupata mipangilio ni katika $HOME/.config/AWSVPNClient/OpenVpnConfigs

Post Exploitaiton

AWS - VPN Post Exploitation

References

Support HackTricks

Last updated