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

Jifunze na kufanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na kufanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

VPC & Networking

Jifunze VPC ni nini na kuhusu vipengele vyake katika:

AWS - VPC & Networking Basic Information

EC2

Amazon EC2 inatumika kwa kuanzisha seva za kawaida. Inaruhusu usanidi wa usalama na mitandao na usimamizi wa hifadhi. Uwezo wa Amazon EC2 unaonekana katika uwezo wake wa kuongeza au kupunguza rasilimali, ikibadilika kwa mahitaji yanayobadilika au ongezeko la umaarufu. Kipengele hiki hupunguza hitaji la utabiri sahihi wa trafiki.

Mambo ya kuvutia ya kuorodhesha katika EC2:

  • Mashine za Kawaida

  • Funguo za SSH

  • Data ya Mtumiaji

  • EC2s/AMIs/Snapshots zilizopo

  • Mitandao

  • Mitandao

  • Mitandao midogo

  • IP za Umma

  • Milango wazi

  • Muunganisho uliounganishwa na mitandao mingine nje ya AWS

Profaili za Kifaa

Kutumia majina kutoa ruhusa kwa programu zinazoendesha kwenye EC2 instances kunahitaji usanidi wa ziada. Programu inayotumia EC2 instance inatenganishwa na AWS na mfumo wa uendeshaji uliovirtualishwa. Kwa sababu ya utengano huu wa ziada, unahitaji hatua ya ziada ya kupeana jina la AWS na ruhusa zake zinazohusiana kwa EC2 instance na kuzifanya zipatikane kwa programu zake.

Hatua hii ya ziada ni kuunda instance profile iliyounganishwa na instance. Instance profile ina jina na inaweza kutoa hati za muda za jina kwa programu inayotumia instance. Hati hizo za muda zinaweza kutumika katika miito ya API ya programu kufikia rasilimali na kupunguza ufikiaji kwa rasilimali tu ambazo jina linabainisha. Kumbuka kwamba jina moja tu linaweza kupewa EC2 instance kwa wakati mmoja, na programu zote kwenye instance zinashiriki jina na ruhusa sawa.

Metadata Endpoint

AWS EC2 metadata ni taarifa kuhusu Amazon Elastic Compute Cloud (EC2) instance inayopatikana kwa instance wakati wa uendeshaji. Metadata hii inatumika kutoa taarifa kuhusu instance, kama ID ya instance, eneo la upatikanaji inaloendesha, jina la IAM linalohusishwa 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

Ufikiaji Bila Uthibitisho

AWS - EC2 Unauthenticated Enum

Privesc

Katika ukurasa ufuatao unaweza kuangalia jinsi ya kutumia vibaya ruhusa za EC2 ili kuongeza haki:

AWS - EC2 Privesc

Baada ya Udukuzi

AWS - EC2, EBS, SSM & VPC Post Exploitation

EBS

Amazon EBS (Elastic Block Store) snapshots ni kimsingi backups tuli za volumes za AWS EBS. Kwa maneno mengine, ni nakala za disks zilizounganishwa na EC2 Instance katika wakati maalum. EBS snapshots zinaweza kunakiliwa katika maeneo na akaunti tofauti, au hata kupakuliwa na kuendeshwa ndani.

Snapshots zinaweza kuwa na taarifa nyeti kama source code au API keys, kwa hivyo, ikiwa una nafasi, inashauriwa kuzikagua.

Tofauti AMI & EBS

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

Privesc

Katika ukurasa ufuatao unaweza kuangalia jinsi ya kutumia vibaya ruhusa za EBS ili kuongeza haki:

AWS - EBS Privesc

SSM

Amazon Simple Systems Manager (SSM) inaruhusu kusimamia kwa mbali vikundi vya EC2 instances ili kufanya usimamizi wao kuwa rahisi zaidi. Kila moja ya instances hizi inahitaji kuendesha SSM Agent service kwani huduma itakuwa ndiyo inayopokea vitendo na kuzitekeleza kutoka kwa AWS API.

SSM Agent inafanya iwezekane kwa Systems Manager kusasisha, kusimamia, na kusanidi rasilimali hizi. Wakala hushughulikia maombi kutoka kwa Systems Manager service katika AWS Cloud, na kisha kuyatekeleza kama ilivyoainishwa katika ombi.

SSM Agent huja ikiwa imewekwa tayari katika baadhi ya AMIs au unahitaji kuziweka mwenyewe kwenye instances. Pia, IAM Role inayotumika ndani ya instance inahitaji kuwa na sera AmazonEC2RoleforSSM iliyounganishwa ili kuweza kuwasiliana.

Uorodheshaji

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 EC2 instance kama Systems Manager inaendesha kwa kutekeleza:

ps aux | grep amazon-ssm

Privesc

Katika ukurasa ufuatao unaweza kuangalia jinsi ya kutumia ruhusa za SSM kuongeza marupurupu:

AWS - SSM Privesc

ELB

Elastic Load Balancing (ELB) ni huduma ya kusawazisha mzigo kwa Amazon Web Services (AWS) deployments. ELB inasambaza moja kwa moja trafiki ya programu inayoingia na kuongeza rasilimali 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>

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 ni suite ya teknolojia za ubunifu zinazounda jukwaa la msingi kwa ajili ya AWS EC2 instances. Imeanzishwa na Amazon ili kuboresha usalama, utendaji, na uaminifu, Nitro inatumia vifaa maalum na hypervisor nyepesi. Inatoa sehemu kubwa ya utendaji wa jadi wa uhalisia kwa vifaa na programu maalum, kupunguza uso wa shambulio na kuboresha ufanisi wa rasilimali. Kwa kuhamisha kazi za uhalisia, Nitro inaruhusu EC2 instances kutoa utendaji karibu na bare-metal, na kuifanya kuwa na manufaa hasa kwa programu zinazohitaji rasilimali nyingi. Zaidi ya hayo, Chipu ya Usalama ya Nitro inahakikisha usalama wa vifaa na firmware, ikithibitisha zaidi usanifu wake thabiti.

Pata maelezo zaidi na jinsi ya kuhesabu kutoka:

AWS - Nitro Enum

VPN

VPN inaruhusu kuunganisha mtandao wako wa ndani (site-to-site VPN) au laptops za wafanyakazi (Client VPN) na AWS VPC ili huduma ziweze kupatikana bila kuhitaji kuzifichua kwenye 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 cha kimwili au programu kwenye upande wako wa muunganisho wa Site-to-Site VPN.

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

  • Inatumika kama sehemu ya kumbukumbu kwa ajili ya 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.

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

  • VPG ni sehemu ya mwisho ya 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 unaunganisha mtandao wako wa ndani na VPC kupitia handaki salama la VPN la IPsec.

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

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

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

  1. Client VPN Endpoint:

  • Client VPN endpoint ni rasilimali unayounda katika AWS ili kuwezesha na kudhibiti vipindi vya VPN vya mteja.

  • Inatumika kuruhusu vifaa binafsi (kama laptops, smartphones, nk) kuunganisha kwa usalama na rasilimali za AWS au mtandao wako wa ndani.

  • Inatofautiana na Site-to-Site VPN kwa kuwa imeundwa kwa ajili ya 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 VPN 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 AWS VPN Client inapotumika kuunganisha na VPN, mtumiaji kawaida huingia katika AWS kupata ufikiaji wa VPN. Kisha, baadhi ya credentials za AWS zinatengenezwa na kuhifadhiwa ndani ya mfumo ili kuanzisha muunganisho wa VPN. Credentials hizi zinahifadhiwa katika $HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt na zina AccessKey, SecretKey na Token.

Credentials hizi ni za mtumiaji arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials (TODO: fanya utafiti zaidi kuhusu ruhusa za credentials hizi).

opvn config files

Ikiwa muunganisho wa VPN umeanzishwa unapaswa kutafuta .opvn config files katika mfumo. Zaidi ya hayo, sehemu moja ambapo unaweza kupata configurations ni katika $HOME/.config/AWSVPNClient/OpenVpnConfigs

Post Exploitation

AWS - VPN Post Exploitation

References

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Last updated