AWS - Elastic Beanstalk Enum

Support HackTricks

Elastic Beanstalk

Amazon Elastic Beanstalk inatoa jukwaa rahisi kwa kupeleka, kusimamia, na kupanua programu za wavuti na huduma. Inasaidia lugha na mifumo mbalimbali ya programu, kama Java, .NET, PHP, Node.js, Python, Ruby, na Go, pamoja na kontena za Docker. Huduma hii inaoana na seva zinazotumika sana kama Apache, Nginx, Passenger, na IIS.

Elastic Beanstalk inatoa njia rahisi na rahisi ya kupeleka programu zako kwenye wingu la AWS, bila haja ya kuwa na wasiwasi kuhusu miundombinu ya msingi. Inashughulikia kiotomatiki maelezo ya ugavi wa uwezo, usawazishaji wa mzigo, upanuzi, na ufuatiliaji wa afya ya programu, ikikuruhusu kuzingatia kuandika na kupeleka msimbo wako.

Miundombinu inayoundwa na Elastic Beanstalk inasimamiwa na Makundi ya Autoscaling katika EC2 (na usawazishaji wa mzigo). Hii inamaanisha kwamba mwishowe, ikiwa utahatarisha mwenyeji, unapaswa kujua kuhusu EC2:

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

Zaidi ya hayo, ikiwa Docker inatumika, inawezekana kutumia ECS.

AWS - EKS Enum

Application & Environments

Katika AWS Elastic Beanstalk, dhana za "programu" na "mazingira" zina madhumuni tofauti na zina majukumu tofauti katika mchakato wa kupeleka.

Application

  • Programu katika Elastic Beanstalk ni konteina ya kimantiki kwa msimbo wa chanzo cha programu yako, mazingira, na usanidi. Inakusanya pamoja matoleo tofauti ya msimbo wa programu yako na inakuruhusu kuyasimamia kama chombo kimoja.

  • Unapounda programu, unatoa jina na maelezo, lakini hakuna rasilimali zinazotolewa katika hatua hii. ni njia tu ya kupanga na kusimamia msimbo wako na rasilimali zinazohusiana.

  • Unaweza kuwa na matoleo mengi ya programu ndani ya programu. Kila toleo linahusiana na toleo maalum la msimbo wako, ambalo linaweza kupelekwa kwenye mazingira moja au zaidi.

Environment

  • Mazingira ni nakala iliyotolewa ya programu yako inayoendesha kwenye miundombinu ya AWS. Ni mahali ambapo msimbo wa programu yako unapelekwa na kutekelezwa. Elastic Beanstalk inatoa rasilimali zinazohitajika (mfano, EC2 instances, load balancers, auto-scaling groups, databases) kulingana na usanidi wa mazingira.

  • Kila mazingira yanaendesha toleo moja la programu yako, na unaweza kuwa na mazingira mengi kwa madhumuni tofauti, kama maendeleo, majaribio, staging, na uzalishaji.

  • Unapounda mazingira, unachagua jukwaa (mfano, Java, .NET, Node.js, nk) na aina ya mazingira (mfano, seva ya wavuti au mfanyakazi). Unaweza pia kubinafsisha usanidi wa mazingira kudhibiti vipengele mbalimbali vya miundombinu na mipangilio ya programu.

Aina 2 za Mazingira

  1. Mazingira ya Seva ya Wavuti: Imeundwa kuhudumia na kuhudumia programu za wavuti na API. Programu hizi kawaida hushughulikia maombi ya HTTP/HTTPS yanayoingia. Mazingira ya seva ya wavuti yanatoa rasilimali kama EC2 instances, load balancers, na auto-scaling groups kushughulikia trafiki inayoingia, kusimamia uwezo, na kuhakikisha upatikanaji wa juu wa programu.

  2. Mazingira ya Mfanyakazi: Imeundwa kushughulikia kazi za nyuma, ambazo mara nyingi ni shughuli zinazochukua muda au rasilimali nyingi ambazo hazihitaji majibu ya haraka kwa wateja. Mazingira ya mfanyakazi yanatoa rasilimali kama EC2 instances na auto-scaling groups, lakini haina load balancer kwani haishughulikii maombi ya HTTP/HTTPS moja kwa moja. Badala yake, inachukua kazi kutoka kwa Amazon Simple Queue Service (SQS) queue, ambayo inafanya kazi kama buffer kati ya mazingira ya mfanyakazi na kazi inazoshughulikia.

Usalama

Unapounda Programu katika Beanstalk kuna chaguo 3 muhimu sana za usalama kuchagua:

Kwa chaguo-msingi metadata version 1 imezimwa:

Ufunuo

Data ya Beanstalk inahifadhiwa katika S3 bucket yenye jina lifuatalo: elasticbeanstalk-<region>-<acc-id>(ikiwa iliundwa katika console ya AWS). Ndani ya bucket hii utapata msimbo wa chanzo wa programu uliopakiwa.

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

Ikiwa utapata ufikiaji wa kusoma juu ya bucket, unaweza kusoma msimbo wa chanzo na hata kupata nywila nyeti juu yake

ikiwa utapata ufikiaji wa kuandika juu ya bucket, unaweza kubadilisha msimbo wa chanzo ili kuhatarisha IAM role ambayo programu inatumia wakati mwingine inapotekelezwa.

Enumeration

# 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

Ufikiaji Bila Uthibitisho

AWS - Elastic Beanstalk Unauthenticated Enum

Uendelevu

AWS - Elastic Beanstalk Persistence

Privesc

AWS - Elastic Beanstalk Privesc

Baada ya Udukuzi

AWS - Elastic Beanstalk Post Exploitation
Saidi HackTricks

Last updated