AWS - MSK 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.
Amazon MSK
Amazon Managed Streaming for Apache Kafka (Amazon MSK), akış verilerini işleyen uygulamaların geliştirilmesini ve yürütülmesini kolaylaştıran tamamen yönetilen bir hizmettir. Küme oluşturma, güncelleme ve silme gibi kontrol düzlemi işlemleri Amazon MSK tarafından sunulmaktadır. Hizmet, veri üretimi ve tüketimini kapsayan Apache Kafka veri düzlemi işlemlerinin kullanılmasına izin verir. Mevcut uygulamalar, araçlar ve hem ortaklardan hem de Apache Kafka topluluğundan eklentilerle uyumluluğu sağlamak için Apache Kafka’nın açık kaynak sürümleri üzerinde çalışır ve uygulama kodunda değişiklik yapılmasını gereksiz kılar.
Güvenilirlik açısından, Amazon MSK yaygın küme arıza senaryolarını otomatik olarak tespit edip kurtulacak şekilde tasarlanmıştır, böylece üretici ve tüketici uygulamaları veri yazma ve okuma faaliyetlerine minimum kesinti ile devam edebilir. Ayrıca, Apache Kafka tarafından çoğaltılması gereken veri miktarını azaltarak, değiştirilen brokerların depolamasını yeniden kullanmaya çalışarak veri çoğaltma süreçlerini optimize etmeyi hedefler.
Türler
AWS’nin oluşturulmasına izin verdiği 2 tür Kafka kümesi vardır: Provisioned ve Serverless.
Bir saldırgan açısından bilmeniz gerekenler:
- Serverless doğrudan kamuya açık olamaz (sadece kamuya açık IP olmadan bir VPN’de çalışabilir). Ancak, Provisioned bir kamu IP’si almak için yapılandırılabilir (varsayılan olarak bunu yapmaz) ve ilgili portları açığa çıkarmak için güvenlik grubunu yapılandırabilir.
- Serverless yalnızca IAM kimlik doğrulama yöntemi destekler. Provisioned, SASL/SCRAM (şifre) kimlik doğrulaması, IAM kimlik doğrulaması, AWS Sertifika Yöneticisi (ACM) kimlik doğrulaması ve Kimlik Doğrulaması Olmayan erişimi destekler.
- Kimlik doğrulaması olmayan erişim etkinleştirildiğinde, bir Provisioned Kafka’nın kamuya açık hale getirilmesinin mümkün olmadığını unutmayın.
Enumeration
#Get clusters
aws kafka list-clusters
aws kafka list-clusters-v2
# Check the supported authentication
aws kafka list-clusters | jq -r ".ClusterInfoList[].ClientAuthentication"
# Get Zookeeper endpoints
aws kafka list-clusters | jq -r ".ClusterInfoList[].ZookeeperConnectString, .ClusterInfoList[].ZookeeperConnectStringTls"
# Get nodes and node enspoints
aws kafka kafka list-nodes --cluster-arn <cluster-arn>
aws kafka kafka list-nodes --cluster-arn <cluster-arn> | jq -r ".NodeInfoList[].BrokerNodeInfo.Endpoints" # Get endpoints
# Get used kafka configs
aws kafka list-configurations #Get Kafka config file
aws kafka describe-configuration --arn <config-arn> # Get version of config
aws kafka describe-configuration-revision --arn <config-arn> --revision <version> # Get content of config version
# If using SCRAN authentication, get used AWS secret name (not secret value)
aws kafka list-scram-secrets --cluster-arn <cluster-arn>
Kafka IAM Erişimi (sunucusuz)
# Guide from https://docs.aws.amazon.com/msk/latest/developerguide/create-serverless-cluster.html
# Download Kafka
wget https://archive.apache.org/dist/kafka/2.8.1/kafka_2.12-2.8.1.tgz
tar -xzf kafka_2.12-2.8.1.tgz
# In kafka_2.12-2.8.1/libs download the MSK IAM JAR file.
cd kafka_2.12-2.8.1/libs
wget https://github.com/aws/aws-msk-iam-auth/releases/download/v1.1.1/aws-msk-iam-auth-1.1.1-all.jar
# Create file client.properties in kafka_2.12-2.8.1/bin
security.protocol=SASL_SSL
sasl.mechanism=AWS_MSK_IAM
sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;
sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
# Export endpoints address
export BS=boot-ok2ngypz.c2.kafka-serverless.us-east-1.amazonaws.com:9098
## Make sure you will be able to access the port 9098 from the EC2 instance (check VPS, subnets and SG)
# Create a topic called msk-serverless-tutorial
kafka_2.12-2.8.1/bin/kafka-topics.sh --bootstrap-server $BS --command-config client.properties --create --topic msk-serverless-tutorial --partitions 6
# Send message of every new line
kafka_2.12-2.8.1/bin/kafka-console-producer.sh --broker-list $BS --producer.config client.properties --topic msk-serverless-tutorial
# Read messages
kafka_2.12-2.8.1/bin/kafka-console-consumer.sh --bootstrap-server $BS --consumer.config client.properties --topic msk-serverless-tutorial --from-beginning
Privesc
Kimlik Doğrulaması Olmayan Erişim
AWS - MSK Unauthenticated Enum
Süreklilik
Eğer Provisioned Kafka’nın bulunduğu VPC’ye erişiminiz olacaksa, yetkisiz erişimi etkinleştirebilirsiniz, eğer SASL/SCRAM kimlik doğrulaması varsa, şifreyi gizli bilgiden okuyabilir, bazı diğer kontrol edilen kullanıcı IAM izinleri verebilir (eğer IAM veya sunucusuz kullanılıyorsa) veya sertifikalarla devam edebilirsiniz.
Referanslar
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

