AWS - Elastic Beanstalk Enum
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Amazon Elastic Beanstalk bied 'n vereenvoudigde platform vir die ontplooiing, bestuur en skaal van webtoepassings en dienste. Dit ondersteun 'n verskeidenheid programmeertale en raamwerke, soos Java, .NET, PHP, Node.js, Python, Ruby, en Go, sowel as Docker houers. Die diens is versoenbaar met algemeen gebruikte bedieners, insluitend Apache, Nginx, Passenger, en IIS.
Elastic Beanstalk bied 'n eenvoudige en buigsame manier om jou toepassings na die AWS wolk te ontplooi, sonder om te bekommer oor die onderliggende infrastruktuur. Dit hanteer outomaties die besonderhede van kapasiteit verskaffing, las balansering, skaal, en toepassingsgesondheid monitering, wat jou toelaat om te fokus op die skryf en ontplooiing van jou kode.
Die infrastruktuur wat deur Elastic Beanstalk geskep word, word bestuur deur Autoscaling Groepe in EC2 (met 'n lasbalanser). Dit beteken dat aan die einde van die dag, as jy die gasheer kompromitteer, jy moet weet van EC2:
AWS - EC2, EBS, ELB, SSM, VPC & VPN EnumBoonop, as Docker gebruik word, is dit moontlik om ECS te gebruik.
AWS - EKS EnumIn AWS Elastic Beanstalk dien die konsepte van 'n "toepassing" en 'n "omgewing" verskillende doeleindes en het dit onderskeie rolle in die ontplooiingsproses.
'n Toepassing in Elastic Beanstalk is 'n logiese houer vir jou toepassing se bronkode, omgewings, en konfigurasies. Dit groepeer verskillende weergawes van jou toepassingskode en laat jou toe om dit as 'n enkele entiteit te bestuur.
Wanneer jy 'n toepassing skep, verskaf jy 'n naam en beskrywing, maar geen hulpbronne word op hierdie stadium verskaf. Dit is eenvoudig 'n manier om jou kode en verwante hulpbronne te organiseer en te bestuur.
Jy kan meervoudige toepassingsweergawes binne 'n toepassing hê. Elke weergawe stem ooreen met 'n spesifieke vrystelling van jou kode, wat na een of meer omgewings ontplooi kan word.
'n Omgewing is 'n verskafde instansie van jou toepassing wat op AWS infrastruktuur loop. Dit is waar jou toepassingskode ontplooi en uitgevoer word. Elastic Beanstalk verskaf die nodige hulpbronne (bv. EC2 instansies, lasbalansers, outo-skaal groepe, databasisse) gebaseer op die omgewing konfigurasie.
Elke omgewing loop 'n enkele weergawe van jou toepassing, en jy kan meervoudige omgewings vir verskillende doeleindes hê, soos ontwikkeling, toetsing, staging, en produksie.
Wanneer jy 'n omgewing skep, kies jy 'n platform (bv. Java, .NET, Node.js, ens.) en 'n omgewing tipe (bv. webbediener of werker). Jy kan ook die omgewing konfigurasie aanpas om verskeie aspekte van die infrastruktuur en toepassingsinstellings te beheer.
Webbediener Omgewing: Dit is ontwerp om webtoepassings en API's te huisves en te bedien. Hierdie toepassings hanteer tipies inkomende HTTP/HTTPS versoeke. Die webbediener omgewing verskaf hulpbronne soos EC2 instansies, lasbalansers, en outo-skaal groepe om inkomende verkeer te hanteer, kapasiteit te bestuur, en die hoë beskikbaarheid van die toepassing te verseker.
Werker Omgewing: Dit is ontwerp om agtergrondtake te verwerk, wat dikwels tydrowende of hulpbron-intensiewe operasies is wat nie onmiddellike reaksies van kliënte vereis nie. Die werker omgewing verskaf hulpbronne soos EC2 instansies en outo-skaal groepe, maar dit het nie 'n lasbalanser nie, aangesien dit nie HTTP/HTTPS versoeke direk hanteer nie. In plaas daarvan, verbruik dit take van 'n Amazon Simple Queue Service (SQS) waglyn, wat as 'n buffer tussen die werker omgewing en die take wat dit verwerk, dien.
Wanneer jy 'n App in Beanstalk skep, is daar 3 baie belangrike sekuriteitsopsies om te kies:
EC2 sleutel paar: Dit sal die SSH sleutel wees wat toegang tot die EC2 instansies wat die app draai, sal hê.
IAM instansie profiel: Dit is die instansie profiel wat die instansies sal hê (IAM voorregte).
Die outomaties gegenereerde rol word aws-elasticbeanstalk-ec2-role
genoem en het 'n paar interessante toegang oor alle ECS, alle SQS, DynamoDB elasticbeanstalk en elasticbeanstalk S3 met behulp van die AWS bestuurde beleide: AWSElasticBeanstalkWebTier, AWSElasticBeanstalkMulticontainerDocker, AWSElasticBeanstalkWorkerTier.
Diens rol: Dit is die rol wat die AWS diens sal gebruik om al die nodige aksies uit te voer. Afaik, 'n gewone AWS gebruiker kan nie toegang tot daardie rol kry nie.
Hierdie rol wat deur AWS gegenereer word, word aws-elasticbeanstalk-service-role
genoem en gebruik die AWS bestuurde beleide AWSElasticBeanstalkEnhancedHealth en AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy
Standaard is metadata weergawe 1 gedeaktiveer:
Beanstalk data word in 'n S3 emmer gestoor met die volgende naam: elasticbeanstalk-<region>-<acc-id>
(as dit in die AWS konsol geskep is). Binne hierdie emmer sal jy die opgelaaide bronkode van die toepassing vind.
Die URL van die geskepte webblad is http://<webapp-name>-env.<random>.<region>.elasticbeanstalk.com/
As jy lees toegang oor die emmer kry, kan jy die bronkode lees en selfs sensitiewe akrediteer daarop vind.
As jy skryf toegang oor die emmer kry, kan jy die bronkode wysig om die IAM rol wat die toepassing gebruik, die volgende keer dat dit uitgevoer word, te kompromitteer.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)