AWS - Elastic Beanstalk Enum

Jifunze kuhusu kuhack AWS kutoka mwanzo hadi mtaalamu na htARTE (Mtaalamu wa Timu Nyekundu ya HackTricks AWS)!

Njia nyingine za kusaidia HackTricks:

Elastic Beanstalk

Amazon Elastic Beanstalk hutoa jukwaa rahisi kwa kuweka, kusimamia, na kukuza maombi na huduma za wavuti. Inasaidia lugha na fremu mbalimbali za programu, kama vile Java, .NET, PHP, Node.js, Python, Ruby, na Go, pamoja na kontena za Docker. Huduma hii inalingana na seva zinazotumiwa sana ikiwa ni pamoja na Apache, Nginx, Passenger, na IIS.

Elastic Beanstalk hutoa njia rahisi na mpana wa kuweka maombi yako kwenye wingu la AWS, bila haja ya kuhangaika kuhusu miundombinu inayotumika. Inashughulikia moja kwa moja maelezo ya uwezo wa utoaji, usawa wa mzigo, kukuza, na ufuatiliaji wa afya ya maombi, kuruhusu wewe kuzingatia kuandika na kuweka kwenye vitendo nambari yako.

Miundombinu inayoundwa na Elastic Beanstalk inasimamiwa na Vikundi vya Kupanuka Kiotomatiki katika EC2 (pamoja na balansa ya mzigo). Hii inamaanisha kwamba mwishoni mwa siku, ikiwa unahatarisha mwenyeji, unapaswa kujua kuhusu EC2:

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

Zaidi ya hayo, ikiwa Docker inatumika, ni rahisi kutumia ECS.

pageAWS - EKS Enum

Maombi & Mazingira

Katika AWS Elastic Beanstalk, dhana ya "maombi" na "mazingira" zina majukumu tofauti na nafasi tofauti katika mchakato wa kuweka.

Maombi

  • Maombi katika Elastic Beanstalk ni kontena la mantiki kwa nambari ya chanzo ya maombi yako, mazingira, na mipangilio. Inakusanya pamoja toleo tofauti za nambari ya maombi yako na kuruhusu wewe kuzisimamia kama kipengele kimoja.

  • Unapounda maombi, unatoa jina na maelezo, lakini hakuna rasilimali zinazotolewa katika hatua hii. ni njia tu ya kuandaa na kusimamia nambari yako na rasilimali zinazohusiana.

  • Unaweza kuwa na matoleo mengi ya maombi ndani ya maombi. Kila toleo linalingana na kutolewa maalum la nambari yako, ambayo inaweza kuwekwa kwenye mazingira moja au zaidi.

Mazingira

  • Mazingira ni mfano uliowekwa wa maombi yako unaoendesha kwenye miundombinu ya AWS. Ni mahali ambapo nambari ya maombi yako inawekwa na kutekelezwa. Elastic Beanstalk inaweka rasilimali zinazohitajika (k.m., EC2 instances, balansa za mzigo, vikundi vya kukuza kiotomatiki, maktaba) kulingana na mipangilio ya mazingira.

  • Kila mazingira inaendesha toleo moja tu la maombi yako, na unaweza kuwa na mazingira mengi kwa madhumuni tofauti, kama vile maendeleo, majaribio, hatua ya awali, na uzalishaji.

  • Unapounda mazingira, unachagua jukwaa (k.m., Java, .NET, Node.js, n.k.) na aina ya mazingira (k.m., mtandao wa wavuti au mfanyakazi). Unaweza pia kubinafsisha mipangilio ya mazingira kudhibiti sehemu mbalimbali za miundombinu na mipangilio ya maombi.

Aina 2 za Mazingira

  1. Mazingira ya Mtandao wa Wavuti: Imetengenezwa kwa ajili ya kuhosti na kutumikia maombi ya wavuti na APIs. Maombi haya kwa kawaida yanashughulikia maombi ya kuingia ya HTTP/HTTPS. Mazingira ya mtandao wa wavuti hutoa rasilimali kama EC2 instances, balansa za mzigo, na vikundi vya kukuza kiotomatiki kushughulikia trafiki inayoingia, kusimamia uwezo, na kuhakikisha upatikanaji wa juu wa maombi.

  2. Mazingira ya Mfanyakazi: Imetengenezwa kusindika kazi za nyuma, ambazo mara nyingi ni shughuli zenye kuchukua muda au zinazohitaji rasilimali nyingi ambazo hazihitaji majibu ya haraka kwa wateja. Mazingira ya mfanyakazi hutoa rasilimali kama EC2 instances na vikundi vya kukuza kiotomatiki, lakini haina balansa ya mzigo kwa kuwa haitumii moja kwa moja maombi ya HTTP/HTTPS. Badala yake, inatumia kazi kutoka kwenye Amazon Simple Queue Service (SQS) queue, ambayo inafanya kazi kama kiwango kati ya mazingira ya mfanyakazi na kazi inazoprocess.

Usalama

Unapounda Programu kwenye Beanstalk kuna chaguzi 3 muhimu sana za usalama za kuchagua:

  • Jozi ya funguo ya EC2: Hii itakuwa funguo ya SSH ambayo itaweza kufikia mifano ya EC2 inayotekeleza programu

  • Profaili ya mfano wa IAM: Hii ni profaili ya mfano ambayo mifano itakuwa nayo (mamlaka ya IAM)

  • Jukumu linalozalishwa kiotomatiki linaitwa aws-elasticbeanstalk-ec2-role na lina ufikivu wa kuvutia juu ya ECS zote, SQS zote, DynamoDB, elasticbeanstalk na elasticbeanstalk S3 kwa kutumia sera zilizosimamiwa na AWS: AWSElasticBeanstalkWebTier, AWSElasticBeanstalkMulticontainerDocker, AWSElasticBeanstalkWorkerTier.

  • Jukumu la huduma: Hii ni jukumu ambalo huduma ya AWS itatumia kufanya vitendo vyote vinavyohitajika. Kwa kadri ninavyojua, mtumiaji wa kawaida wa AWS hawezi kupata jukumu hilo.

  • Jukumu hili lililozalishwa na AWS linaitwa aws-elasticbeanstalk-service-role na hutumia sera zilizosimamiwa na AWS AWSElasticBeanstalkEnhancedHealth na AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy

Kwa chaguo-msingi toleo la metadata 1 limelemazwa:

### Kufichua

Data ya Beanstalk imehifadhiwa kwenye S3 bucket yenye jina lifuatalo: elasticbeanstalk-<region>-<acc-id> (ikiwa iliumbwa kwenye konsoli ya AWS). Ndani ya bucket hili utapata msimbo wa chanzo wa programu uliopakiwa.

URL ya ukurasa uliozinduliwa ni http://<webapp-name>-env.<random>.<region>.elasticbeanstalk.com/

Ikiwa unapata upatikanaji wa kusoma kwenye bucket, unaweza kusoma msimbo wa chanzo na hata kupata vitambulisho nyeti ndani yake.

Ikiwa unapata upatikanaji wa kuandika kwenye bucket, unaweza kurekebisha msimbo wa chanzo ili kuathiri jukumu la IAM linalotumiwa na programu wakati inatekelezwa tena.

Uthibitishaji

# Find S3 bucket
ACCOUNT_NUMBER=<account_number>
for r in us-east-1 us-east-2 us-west-1 us-west-2 ap-south-1 ap-south-2 ap-northeast-1 ap-northeast-2 ap-northeast-3 ap-southeast-1 ap-southeast-2 ap-southeast-3 ca-central-1 eu-central-1 eu-central-2 eu-west-1 eu-west-2 eu-west-3 eu-north-1 sa-east-1 af-south-1 ap-east-1 eu-south-1 eu-south-2 me-south-1 me-central-1; do aws s3 ls elasticbeanstalk-$r-$ACCOUNT_NUMBER 2>/dev/null && echo "Found in: elasticbeanstalk-$r-$ACCOUNT_NUMBER"; done

# Get apps and URLs
aws elasticbeanstalk describe-applications # List apps
aws elasticbeanstalk describe-application-versions # Get apps & bucket name with source code
aws elasticbeanstalk describe-environments # List envs
aws elasticbeanstalk describe-environments | grep -E "EndpointURL|CNAME"
aws elasticbeanstalk describe-configuration-settings --application-name <app_name> --environment-name <env_name>
aws elasticbeanstalk describe-environment-resources --environment-name <env_name> # Get env info such as SQS used queues
aws elasticbeanstalk describe-instances-health --environment-name <env_name> # Get the instances of an environment

# Get events
aws elasticbeanstalk describe-events

Upatikanaji usiothibitishwa

pageAWS - Elastic Beanstalk Unauthenticated Enum

Uimara

pageAWS - Elastic Beanstalk Persistence

Privesc

pageAWS - Elastic Beanstalk Privesc

Baada ya Uvamizi

pageAWS - Elastic Beanstalk Post Exploitation
Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Last updated