अपने हैकिंग ट्रिक्स साझा करें, HackTricks और HackTricks Cloud github repos को PRs जमा करके।
Amazon MSK
Amazon Managed Streaming for Apache Kafka (Amazon MSK) एक सेवा है जो पूरी तरह से प्रबंधित है, Apache Kafka के माध्यम से स्ट्रीमिंग डेटा प्रसंस्करण करने वाले एप्लिकेशनों के विकास और क्रियान्वयन को सुगम बनाती है। Amazon MSK द्वारा क्लस्टर के निर्माण, अपडेट, और हटाने जैसी कंट्रोल-प्लेन कार्रवाईयाँ प्रदान की जाती है। यह सेवा Apache Kafka डेटा-प्लेन कार्रवाईयों का उपयोग करने की अनुमति देती है, जिसमें डेटा उत्पादन और उपभोक्ता शामिल हैं। यह Apache Kafka के ओपन-सोर्स संस्करण पर काम करती है, जिससे मौजूदा एप्लिकेशन, टूलिंग, और प्लगइन्स के साथ संगति सुनिश्चित होती है, जो उपभोक्ताओं और Apache Kafka समुदाय से हैं, एप्लिकेशन को संशोधन की आवश्यकता को खत्म करती है।
संबंधितता के मामले में, Amazon MSK का निर्माण स्वचालित रूप से प्रमुख क्लस्टर विफलता स्थितियों का पता लगाना और सुधारना डेटा लेखन और पठन गतिविधियों में विघटन के साथ जारी रखने की सुनिश्चित करने के लिए डिज़ाइन किया गया है। इसके अतिरिक्त, यह यह लक्ष्य रखता है कि अपाचे काफ्का द्वारा अनुकूलित डेटा प्रतिकृति प्रक्रियाओं को अनुकूलित करने के लिए प्रतिस्थापित ब्रोकरों के संग्रह का पुनः उपयोग करने का प्रयास करता है, जिससे Apache Kafka द्वारा प्रतिकृत करने की आवश्यकता होने वाले डेटा की मात्रा को कम किया जा सके।
प्रकार
AWS द्वारा निर्मित करने की दो प्रकार की Kafka क्लस्टर हैं: Provisioned और Serverless।
हमले करने वाले के दृष्टिकोण से आपको यह जानना चाहिए कि:
Serverless सीधे सार्वजनिक नहीं हो सकता (यह केवल एक VPN में चल सकता है जिसमें कोई सार्वजनिक आईपी पता नहीं है)। हालांकि, Provisioned को सार्वजनिक आईपी प्राप्त करने के लिए कॉन्फ़िगर किया जा सकता है (डिफ़ॉल्ट रूप से नहीं) और सुरक्षा समूह को उचित पोर्ट्स को उजागर करने के लिए कॉन्फ़िगर किया जा सकता है।
Serverless केवल IAM को प्रमाणीकरण विधि के रूप में समर्थन करता है। Provisioned SASL/SCRAM (पासवर्ड) प्रमाणीकरण, IAM प्रमाणीकरण, AWS सर्टिफिकेट प्रबंधक (ACM) प्रमाणीकरण और अप्रमाणित पहुंच का समर्थन करता है।
ध्यान दें कि यदि अप्रमाणित पहुंच सक्षम है तो Provisioned Kafka को सार्वजनिक रूप से प्रकट करना संभव नहीं है।
#Get clustersawskafkalist-clustersawskafkalist-clusters-v2# Check the supported authenticationawskafkalist-clusters|jq-r".ClusterInfoList[].ClientAuthentication"# Get Zookeeper endpointsaws kafka list-clusters | jq -r ".ClusterInfoList[].ZookeeperConnectString, .ClusterInfoList[].ZookeeperConnectStringTls"
# Get nodes and node enspointsawskafkakafkalist-nodes--cluster-arn<cluster-arn>aws kafka kafka list-nodes --cluster-arn <cluster-arn> | jq -r ".NodeInfoList[].BrokerNodeInfo.Endpoints" # Get endpoints
# Get used kafka configsawskafkalist-configurations#Get Kafka config fileawskafkadescribe-configuration--arn<config-arn># Get version of configawskafkadescribe-configuration-revision--arn<config-arn>--revision<version># Get content of config version# If using SCRAN authentication, get used AWS secret name (not secret value)awskafkalist-scram-secrets--cluster-arn<cluster-arn>
Kafka IAM पहुंच (सर्वरलेस में)
# Guide from https://docs.aws.amazon.com/msk/latest/developerguide/create-serverless-cluster.html# Download Kafkawgethttps://archive.apache.org/dist/kafka/2.8.1/kafka_2.12-2.8.1.tgztar-xzfkafka_2.12-2.8.1.tgz# In kafka_2.12-2.8.1/libs download the MSK IAM JAR file.cdkafka_2.12-2.8.1/libswgethttps://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/binsecurity.protocol=SASL_SSLsasl.mechanism=AWS_MSK_IAMsasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler# Export endpoints addressexport 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-tutorialkafka_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 linekafka_2.12-2.8.1/bin/kafka-console-producer.sh --broker-list $BS --producer.config client.properties --topic msk-serverless-tutorial
# Read messageskafka_2.12-2.8.1/bin/kafka-console-consumer.sh --bootstrap-server $BS --consumer.config client.properties --topic msk-serverless-tutorial --from-beginning
यदि आपको वीपीसी में पहुंच है जहां एक Provisioned Kafka है, तो आप अनधिकृत पहुंच सक्षम कर सकते हैं, यदि SASL/SCRAM प्रमाणीकरण, गुप्त से पासवर्ड पढ़ें, किसी अन्य नियंत्रित उपयोगकर्ता IAM अनुमतियाँ दें (यदि IAM या सर्वरलेस का उपयोग किया गया है) या प्रमाणपत्रों के साथ स्थिर रहें।