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

Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

VPC & Mtandao

Jifunze ni nini VPC na kuhusu vipengele vyake katika:

pageAWS - VPC & Networking Basic Information

EC2

Amazon EC2 hutumiwa kuanzisha seva za kisasa. Inaruhusu usanidi wa usalama na mtandao na usimamizi wa uhifadhi. Upana wa Amazon EC2 unaonekana katika uwezo wake wa kupanua rasilimali juu na chini, kuzoea kwa ufanisi mabadiliko ya mahitaji au kuongezeka kwa umaarufu. Kipengele hiki hupunguza hitaji la utabiri sahihi wa trafiki.

Vitu vya kuvutia vya kuhesabu katika EC2:

  • Mashine za Kisasa

  • SSH Keys

  • Data ya Mtumiaji

  • EC2s/AMIs/Snapshots Zilizopo

  • Mtandao

  • Mitandao

  • Mitandao ya Pembezoni

  • Anwani za IP za Umma

  • Milango iliyofunguliwa

  • Mawasiliano yaliyounganishwa na mitandao mingine nje ya AWS

Profaili za Kifaa

Kutumia majukumu kutoa ruhusa kwa programu zinazoendesha kwenye vifaa vya EC2 inahitaji hatua kidogo ya ziada ya usanidi. Programu inayoendesha kwenye kifaa cha EC2 imefichuliwa kutoka AWS na mfumo wa uendeshaji uliofanyiwa upya. Kwa sababu ya utengano huu wa ziada, unahitaji hatua ya ziada ya kumtambulisha jukumu la AWS na ruhusa zake zinazohusiana kwa kifaa cha EC2 na kuzifanya zipatikane kwa programu zake.

Hatua hii ya ziada ni ujenzi wa profil ya kifaa iliyowekwa kwenye kifaa. Profaili ya kifaa ina jukumu na inaweza kutoa vibali vya muda vya jukumu kwa programu inayoendesha kwenye kifaa. Vibali vya muda hivyo basi vinaweza kutumika katika wito wa API wa programu kufikia rasilimali na kuzuia upatikanaji wa rasilimali hizo tu ambazo jukumu linabainisha. Tafadhali kumbuka kwamba jukumu moja tu linaweza kumtambulishwa kwa kifaa cha EC2 kwa wakati mmoja, na programu zote kwenye kifaa hushiriki jukumu na ruhusa sawa.

Mwisho wa Metadata

Metadata ya AWS EC2 ni habari kuhusu kifaa cha Amazon Elastic Compute Cloud (EC2) inayopatikana kwa kifaa wakati wa muda wa uendeshaji. Metadata hii hutumiwa kutoa habari kuhusu kifaa, kama vile kitambulisho cha kifaa, eneo la upatikanaji linapofanya kazi, jukumu la IAM linalohusishwa na kifaa, na jina la kifaa.

Uhesabuaji

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

pageAWS - EC2 Unauthenticated Enum

Privesc

Kwenye ukurasa ufuatao unaweza kuangalia jinsi ya kutumia ruhusa za EC2 kuboresha mamlaka:

pageAWS - EC2 Privesc

Baada ya Uvamizi

pageAWS - EC2, EBS, SSM & VPC Post Exploitation

EBS

Amazon EBS (Elastic Block Store) snapshots ni msingi wa nakala rudufu za kiasi cha AWS EBS. Kwa maneno mengine, ni nakala za diski zilizounganishwa na Kifaa cha EC2 kwa wakati maalum. Picha za EBS zinaweza kunakiliwa kati ya mikoa na akaunti, au hata kupakuliwa na kukimbia kwa kienyeji.

Picha za EBS zinaweza kuwa na habari nyeti kama mikodisho ya chanzo au funguo za API, kwa hivyo, ikiwa una nafasi, ni vyema kuichunguza.

Tofauti kati ya AMI & EBS

AMI hutumiwa kuzindua kifaa cha EC2, wakati Snapshot ya EC2 hutumiwa kufanya nakala rudufu na kurejesha data iliyohifadhiwa kwenye kiasi cha EBS. Ingawa Snapshot ya EC2 inaweza kutumika kuunda AMI mpya, sio kitu sawa na AMI, na haitoi habari kuhusu mfumo wa uendeshaji, seva ya programu, au programu nyingine inayohitajika kufanya kazi.

Privesc

Kwenye ukurasa ufuatao unaweza kuangalia jinsi ya kutumia ruhusa za EBS kuboresha mamlaka:

pageAWS - EBS Privesc

SSM

Amazon Simple Systems Manager (SSM) inaruhusu kusimamia float za vifaa vya EC2 kijijini ili kufanya utawala wao kuwa rahisi zaidi. Kila moja ya vifaa hivi inahitaji kuendesha huduma ya SSM Agent kwani huduma hiyo ndiyo itakayopata vitendo na kuyatekeleza kutoka kwa API ya AWS.

SSM Agent inawezesha Systems Manager kusasisha, kusimamia, na kusanidi rasilimali hizi. Wakala hutekeleza maombi kutoka kwa huduma ya Systems Manager katika AWS Cloud, na kisha kuyatekeleza kama ilivyoelezwa katika ombi.

SSM Agent inakuja imefungwa kabla kwenye baadhi ya AMIs au unahitaji kuiweka kwa mikono kwenye vifaa. Pia, Jukumu la IAM lililotumiwa ndani ya kifaa lazima liwe na sera ya AmazonEC2RoleforSSM 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 kwenye kifaa cha EC2 ikiwa Systems Manager inaendeshwa kwa kutekeleza:

ps aux | grep amazon-ssm

Privesc

Kwenye ukurasa ufuatao unaweza kuangalia jinsi ya kutumia ruhusa za SSM kuinua mamlaka:

pageAWS - SSM Privesc

ELB

Elastic Load Balancing (ELB) ni huduma ya usawa wa mzigo kwa Amazon Web Services (AWS) mizigo. ELB kiotomatiki hugawa trafiki ya maombi inayoingia na kuzidisha rasilimali kukidhi mahitaji ya trafiki.

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

Templeti za Kuzindua & Vikundi vya Kupanuka Kiotomatiki

Uchambuzi

# 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 za ubunifu ambazo hufanya jukwaa la msingi kwa ajili ya kesi za AWS EC2. Iliyotolewa na Amazon ili kuimarisha usalama, utendaji, na uaminifu, Nitro inatumia vipengele vya vifaa maalum na hypervisor nyepesi. Inaficha sehemu kubwa ya utendaji wa jadi wa uwekaji wa kazi kwa vifaa na programu maalum, kupunguza eneo la mashambulizi na kuboresha ufanisi wa rasilimali. Kwa kuchukua majukumu ya kazi za uwekaji wa kazi, Nitro inaruhusu kesi za EC2 kutoa utendaji karibu sawa na chuma cha msingi, hivyo kuwa na manufaa hasa kwa maombi yanayohitaji rasilimali nyingi. Aidha, Chip ya Usalama ya Nitro inahakikisha usalama wa vifaa na firmware, ikithibitisha zaidi muundo wake imara.

Pata maelezo zaidi na jinsi ya kuihesabu kutoka:

pageAWS - Nitro Enum

VPN

VPN inaruhusu kuunganisha mtandao wako wa ndani (VPN ya tovuti hadi tovuti) au laptopi za wafanyakazi (VPN ya Mteja) na AWS VPC ili huduma ziweze kupatikana bila haja ya kuzifunua kwa mtandao.

Vipengele Msingi vya VPN ya AWS

  1. Lango la Mteja:

  • Lango la Mteja ni rasilimali unayounda katika AWS kuwakilisha upande wako wa uhusiano wa VPN.

  • Kimsingi ni kifaa halisi au programu kwenye upande wako wa uhusiano wa VPN ya Tovuti hadi Tovuti.

  • Unatoa maelekezo ya uwekaji wa njia na anwani ya IP ya umma ya kifaa chako cha mtandao (kama router au firewall) kwa AWS ili kuunda Lango la Mteja.

  • Linatumika kama alama ya kumbukumbu ya kuweka uhusiano wa VPN na haina malipo ya ziada.

  1. Lango Binafsi la Virtual:

  • Lango Binafsi la Virtual (VPG) ni kikusanyaji wa VPN upande wa Amazon wa uhusiano wa VPN ya Tovuti hadi Tovuti.

  • Limeunganishwa na VPC yako na hutumikia kama lengo la uhusiano wako wa VPN.

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

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

  1. Uhusiano wa VPN ya Tovuti hadi Tovuti:

  • Uhusiano wa VPN ya Tovuti hadi Tovuti unauunganisha mtandao wako wa ndani na VPC kupitia handaki salama la VPN la IPsec.

  • Aina hii ya uhusiano inahitaji Lango la Mteja na Lango Binafsi la Virtual.

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

  • Kawaida hutumiwa kwa mawasiliano ya kawaida, ya muda mrefu na inalipishwa kulingana na kiasi cha data kinachohamishwa kupitia uhusiano huo.

  1. Mwisho wa VPN ya Mteja:

  • Mwisho wa VPN ya Mteja ni rasilimali unayounda katika AWS kuwezesha na kusimamia vikao vya VPN ya mteja.

  • Hutumiwa kuruhusu vifaa binafsi (kama laptopi, simu za mkononi, n.k.) kuunganisha kwa usalama kwenye rasilimali za AWS au mtandao wako wa ndani.

  • Inatofautiana na VPN ya Tovuti hadi Tovuti kwa kuwa imeundwa kwa wateja binafsi badala ya kuunganisha mitandao yote.

  • Kwa VPN ya Mteja, kila kifaa cha mteja hutumia programu ya mteja wa VPN kuweka uhusiano salama.

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

Uhesabuaji

# 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

Uchambuzi wa Kienyeji

Sifa za Muda za Muda za Muda

Wakati Mteja wa AWS VPN unapotumika kuunganisha kwenye VPN, mtumiaji kawaida huingia kwenye AWS ili kupata ufikiaji wa VPN. Kisha, baadhi ya sifa za AWS huzalishwa na kuhifadhiwa kienyeji ili kuanzisha uhusiano wa VPN. Sifa hizi zinahifadhiwa katika $HOME/.config/AWSVPNClient/TemporaryCredentials/<eneo>/temporary-credentials.txt na ina AccessKey, SecretKey na Token.

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

Faili za mazingira za opvn

Ikiwa unganisho la VPN lilianzishwa unapaswa kutafuta faili za mazingira za .opvn kwenye mfumo. Zaidi ya hayo, mahali ambapo unaweza kupata mipangilio ni katika $HOME/.config/AWSVPNClient/OpenVpnConfigs

Baada ya Uchimbaji

pageAWS - VPN Post Exploitation

Marejeo

Jifunze kuhusu udukuzi wa AWS kutoka mwanzo hadi mtaalamu na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks:

Last updated