AWS - Elastic Beanstalk Enum
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
Elastic Beanstalk
Amazon Elastic Beanstalk, web uygulamalarını ve hizmetlerini dağıtmak, yönetmek ve ölçeklendirmek için basitleştirilmiş bir platform sağlar. Java, .NET, PHP, Node.js, Python, Ruby ve Go gibi çeşitli programlama dilleri ve çerçeveleri destekler ve ayrıca Docker konteynerleri ile uyumludur. Hizmet, Apache, Nginx, Passenger ve IIS gibi yaygın olarak kullanılan sunucularla uyumludur.
Elastic Beanstalk, uygulamalarınızı AWS bulutuna dağıtmanın basit ve esnek bir yolunu sunar; altyapı hakkında endişelenmenize gerek kalmaz. Otomatik olarak kapasite sağlama, yük dengeleme, ölçeklendirme ve uygulama sağlığı izleme detaylarını yönetir, böylece kodunuzu yazmaya ve dağıtmaya odaklanabilirsiniz.
Elastic Beanstalk tarafından oluşturulan altyapı, EC2’deki Otomatik Ölçekleme Grupları tarafından yönetilmektedir (bir yük dengeleyici ile). Yani, günün sonunda, eğer host’u tehlikeye atarsanız, EC2 hakkında bilgi sahibi olmalısınız:
AWS - EC2, EBS, ELB, SSM, VPC & VPN Enum
Ayrıca, Docker kullanılıyorsa, ECS kullanmak mümkündür.
Uygulama ve Ortamlar
AWS Elastic Beanstalk’ta, “uygulama” ve “ortam” kavramları farklı amaçlara hizmet eder ve dağıtım sürecinde belirgin rollere sahiptir.
Uygulama
- Elastic Beanstalk’taki bir uygulama, uygulamanızın kaynak kodu, ortamları ve yapılandırmaları için mantıksal bir konteynerdir. Uygulama kodunuzun farklı sürümlerini bir araya getirir ve bunları tek bir varlık olarak yönetmenizi sağlar.
- Bir uygulama oluşturduğunuzda, bir isim ve açıklama sağlarsınız, ancak bu aşamada hiçbir kaynak sağlanmaz. Bu, kodunuzu ve ilgili kaynakları düzenlemenin ve yönetmenin bir yoludur.
- Bir uygulama içinde birden fazla uygulama sürümü bulundurabilirsiniz. Her sürüm, kodunuzun belirli bir sürümüne karşılık gelir ve bir veya daha fazla ortama dağıtılabilir.
Ortam
- Bir ortam, AWS altyapısında çalışan uygulamanızın sağlanmış bir örneğidir. Uygulama kodunuzun dağıtıldığı ve çalıştırıldığı yerdir. Elastic Beanstalk, ortam yapılandırmasına göre gerekli kaynakları (örneğin, EC2 örnekleri, yük dengeleyiciler, otomatik ölçekleme grupları, veritabanları) sağlar.
- Her ortam, uygulamanızın tek bir sürümünü çalıştırır ve geliştirme, test, sahneleme ve üretim gibi farklı amaçlar için birden fazla ortamınız olabilir.
- Bir ortam oluşturduğunuzda, bir platform (örneğin, Java, .NET, Node.js, vb.) ve bir ortam türü (örneğin, web sunucusu veya işçi) seçersiniz. Ayrıca, altyapının ve uygulama ayarlarının çeşitli yönlerini kontrol etmek için ortam yapılandırmasını özelleştirebilirsiniz.
2 Tür Ortam
- Web Sunucusu Ortamı: Web uygulamalarını ve API’leri barındırmak ve sunmak için tasarlanmıştır. Bu uygulamalar genellikle gelen HTTP/HTTPS isteklerini işler. Web sunucusu ortamı, gelen trafiği yönetmek, kapasiteyi yönetmek ve uygulamanın yüksek kullanılabilirliğini sağlamak için EC2 örnekleri, yük dengeleyiciler ve otomatik ölçekleme grupları gibi kaynakları sağlar.
- İşçi Ortamı: Arka plan görevlerini işlemek için tasarlanmıştır; bu görevler genellikle zaman alıcı veya kaynak yoğun işlemlerdir ve müşterilere anında yanıt gerektirmez. İşçi ortamı, EC2 örnekleri ve otomatik ölçekleme grupları gibi kaynakları sağlar, ancak doğrudan HTTP/HTTPS isteklerini işlemediği için bir yük dengeleyiciye sahip değildir. Bunun yerine, işçi ortamı, işlediği görevler ile işçi ortamı arasında bir tampon görevi gören Amazon Simple Queue Service (SQS) kuyruğundan görevleri tüketir.
Güvenlik
Beanstalk’ta bir Uygulama oluştururken seçilecek 3 çok önemli güvenlik seçeneği vardır:
- EC2 anahtar çifti: Bu, uygulamayı çalıştıran EC2 örneklerine erişebilecek SSH anahtarı olacaktır.
- IAM örnek profili: Bu, örneklerin sahip olacağı örnek profilidir (IAM ayrıcalıkları).
- Otomatik olarak oluşturulan rol
aws-elasticbeanstalk-ec2-roleolarak adlandırılır ve tüm ECS, tüm SQS, DynamoDB elasticbeanstalk ve elasticbeanstalk S3 üzerinde bazı ilginç erişimlere sahiptir; AWS yönetilen politikaları kullanır: AWSElasticBeanstalkWebTier, AWSElasticBeanstalkMulticontainerDocker, AWSElasticBeanstalkWorkerTier. - Hizmet rolü: Bu, AWS hizmetinin gerekli tüm eylemleri gerçekleştirmek için kullanacağı roldür. Bildiğim kadarıyla, normal bir AWS kullanıcısı bu role erişemez.
- AWS tarafından oluşturulan bu rol
aws-elasticbeanstalk-service-roleolarak adlandırılır ve AWS yönetilen politikaları AWSElasticBeanstalkEnhancedHealth ve AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy kullanır.
Varsayılan olarak metadata sürüm 1 devre dışı:
.png)
Maruz Kalma
Beanstalk verileri, aşağıdaki isimle bir S3 bucket içinde saklanır: elasticbeanstalk-<region>-<acc-id> (eğer AWS konsolunda oluşturulmuşsa). Bu bucket içinde, yüklenen uygulama kaynak kodunu bulacaksınız.
Oluşturulan web sayfasının URL’si http://<webapp-name>-env.<random>.<region>.elasticbeanstalk.com/
Warning
Eğer bucket üzerinde okuma erişimi elde ederseniz, kaynak kodunu okuyabilir ve hatta üzerinde hassas kimlik bilgilerini bulabilirsiniz.
Eğer bucket üzerinde yazma erişimi elde ederseniz, kaynak kodunu değiştirebilir ve uygulamanın bir sonraki çalıştırılmasında kullanılan IAM rolünü tehlikeye atabilirsiniz.
Sayım
# 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
Kimlik Doğrulama Olmadan Erişim
AWS - Elastic Beanstalk Unauthenticated Enum
Süreklilik
AWS - Elastic Beanstalk Persistence
Yetki Yükseltme
AWS - Elastic Beanstalk Privesc
Sonrası İstismar
AWS - Elastic Beanstalk Post Exploitation
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

