AWS - Relational Database (RDS) Enum

htARTE (HackTricks AWS Red Team Expert) के साथ जीरो से हीरो तक AWS हैकिंग सीखें!

HackTricks का समर्थन करने के अन्य तरीके:

मूल जानकारी

AWS द्वारा प्रदान की गई सांबंधिक डेटाबेस सेवा (RDS) का उद्देश्य बादल में सांबंधिक डेटाबेस का डिप्लॉयमेंट, परिचालन, और स्केलिंग सुविधाजनक बनाना है। यह सेवा लागत की दक्षता और स्केलेबिलिटी के लाभ प्रदान करती है जबकि हार्डवेयर प्रोविजनिंग, डेटाबेस कॉन्फ़िगरेशन, पैचिंग, और बैकअप्स जैसे श्रम-उत्पीड़न कार्यों को स्वचालित करती है।

AWS RDS माइक्रोसॉफ्ट SQL सर्वर और अमेज़न औरोरा सहित कई व्यापक उपयोग किए जाने वाले सांबंधिक डेटाबेस इंजनों का समर्थन करता है, जिसमें MySQL और PostgreSQL दोनों के लिए संगति शामिल है।

RDS की मुख्य विशेषताएँ शामिल हैं:

  • डेटाबेस इंस्टेंसेस का प्रबंधन सरल होता है।

  • पढ़ने के प्रदर्शन को बढ़ाने के लिए रीड रेप्लिका का निर्माण।

  • मल्टी-एवेलेबिलिटी ज़ोन (AZ) डिप्लॉयमेंट्स की विन्यास करना उचित उपलब्धता और फेलओवर तंत्रों की सुनिश्चिति के लिए।

  • अन्य AWS सेवाओं के साथ एकीकरण, जैसे:

  • मजबूत पहुंच नियंत्रण के लिए AWS आइडेंटिटी और एक्सेस प्रबंधन (IAM)।

  • व्यापक मॉनिटरिंग और मैट्रिक्स के लिए AWS क्लाउडवॉच

  • आराम से विश्राम के लिए AWS कुंजी प्रबंधन सेवा (KMS)।

क्रेडेंशियल्स

डीबी क्लस्टर बनाते समय मास्टर उपयोगकर्ता नाम कॉन्फ़िगर किया जा सकता है (डिफ़ॉल्ट रूप से एडमिन)। इस उपयोगकर्ता का पासवर्ड जेनरेट करने के लिए आप:

  • खुद एक पासवर्ड निर्दिष्ट करें

  • RDS से स्वचालित रूप से जेनरेट करने के लिए कहें

  • RDS से इसे AWS सीक्रेट मैनेजर में प्रबंधित करने के लिए कहें जो एक KMS कुंजी से एन्क्रिप्टेड है

प्रमाणीकरण

3 प्रकार के प्रमाणीकरण विकल्प हैं, लेकिन मास्टर पासवर्ड का उपयोग हमेशा अनुमति दी जाती है:

सार्वजनिक पहुंच और VPC

डेटाबेस को डिफ़ॉल्ट रूप से कोई सार्वजनिक पहुंच नहीं है, हालांकि यह दी जा सकती है। इसलिए, डिफ़ॉल्ट रूप से केवल वही मशीन इसका उपयोग कर सकेगी जो वही VPC से होगी अगर चयनित सुरक्षा समूह (EC2 SG में संग्रहित हैं) इसे अनुमति देता है।

एक DB इंस्टेंस को उजागर करने की बजाय, एक RDS प्रॉक्सी बनाया जा सकता है जो DB क्लस्टर की स्केलेबिलिटी और उपलब्धता को बेहतर बनाता है

इसके अलावा, डेटाबेस पोर्ट को संशोधित किया जा सकता है

एन्क्रिप्शन

एन्क्रिप्शन डिफ़ॉल्ट रूप से सक्षम है एक AWS प्रबंधित कुंजी का उपयोग करके (एक CMK का विकल्प चुना जा सकता है)।

अपनी एन्क्रिप्शन को सक्षम करके, आप अपने स्टोरेज, स्नैपशॉट, पढ़ने वाले रेप्लिका, और आपके बैकअप्स के लिए आराम पर एन्क्रिप्शन सक्षम कर रहे हैं। इस एन्क्रिप्शन को प्रबंधित करने के लिए कुंजियाँ KMS का उपयोग करके जारी की जा सकती हैं। इस स्तर की एन्क्रिप्शन को जोड़ना संभव नहीं है जब तक आपकी डेटाबेस बनाई नहीं गई है। इसे उसके निर्माण के दौरान किया जाना चाहिए

हालांकि, एक वर्कअराउंड है जो आपको निम्नलिखित रूप से एन्क्रिप्ट करने की अनुमति देता है। आप अपनी अएन्क्रिप्टेड डेटाबेस का स्नैपशॉट बना सकते हैं, उस स्नैपशॉट की एन्क्रिप्टेड प्रतिलिपि बना सकते हैं, उस एन्क्रिप्टेड स्नैपशॉट का उपयोग करके एक नया डेटाबेस बना सकते हैं, और फिर, अंततः, आपकी डेटाबेस फिर से एन्क्रिप्टेड हो जाएगी।

पारदर्शी डेटा एन्क्रिप्शन (TDE)

RDS के आवेदन स्तर पर एन्क्रिप्शन क्षमताओं के साथ, RDS ने डेटा को आराम पर एन्क्रिप्ट करने के लिए अतिरिक्त प्लेटफ़ॉर्म स्तर की एन्क्रिप्शन तंत्र का समर्थन किया है। इसमें पारदर्शी डेटा एन्क्रिप्शन (TDE) शामिल है जो ओरेकल और SQL सर्वर के लिए है। हालांकि, यह महत्वपूर्ण है कि जबकि TDE डेटा को आराम पर एन्क्रिप्ट करके सुरक्षित बनाने में मदद करता है, यह डेटाबेस प्रदर्शन पर भी प्रभाव डाल सकता है। यह प्रदर्शन प्रभाव विशेष रूप से जब MySQL या माइक्रोसॉफ्ट ट्रांसैक्शन-एसक्यूएल एन्क्रिप्शन कार्यों के साथ उपयोग किया जाता है।

TDE का उपयोग करने के लिए कुछ प्रारंभिक कदम आवश्यक हैं:

  1. विकल्प समूह संबंधितता:

  • डेटाबेस को एक विकल्प समूह से संबंधित किया जाना चाहिए। विकल्प समूह सेटिंग्स और विशेषताओं के लिए एक कंटेनर के रूप में काम करते हैं, डेटाबेस प्रबंधन को सुविधाएँ प्रदान करते हैं, सुरक्षा वृद्धि सहित।

  • हालांकि, यह महत्वपूर्ण है कि

# Clusters info
## Get Endpoints, username, port, iam auth enabled, attached roles, SG
aws rds describe-db-clusters
aws rds describe-db-cluster-endpoints #Cluster URLs
aws rds describe-db-cluster-backtracks --db-cluster-identifier <cluster-name>

## Cluster snapshots
aws rds describe-db-cluster-snapshots

# Get DB instances info
aws rds describe-db-instances #username, url, port, vpc, SG, is public?
aws rds describe-db-security-groups

## Find automated backups
aws rds describe-db-instance-automated-backups

## Find snapshots
aws rds describe-db-snapshots
aws rds describe-db-snapshots --include-public --snapshot-type public
## Restore snapshot as new instance
aws rds restore-db-instance-from-db-snapshot --db-instance-identifier <ID> --db-snapshot-identifier <ID> --availability-zone us-west-2a

# Any public snapshot in the account
aws rds describe-db-snapshots --snapshot-type public

# Proxies
aws rds describe-db-proxy-endpoints
aws rds describe-db-proxy-target-groups
aws rds describe-db-proxy-targets

## reset credentials of MasterUsername
aws rds modify-db-instance --db-instance-identifier <ID> --master-user-password <NewPassword> --apply-immediately

अनधिकृत पहुंच

pageAWS - RDS Unauthenticated Enum

विशेषाधिकार

pageAWS - RDS Privesc

पोस्ट एक्सप्लोइटेशन

pageAWS - RDS Post Exploitation

स्थिरता

pageAWS - RDS Persistence

SQL इन्जेक्शन

डाइनामोडीबी डेटा तक पहुंचने के तरीके हैं SQL सिंटैक्स के साथ, इसलिए, सामान्य SQL इन्जेक्शन भी संभव हैं।

शून्य से हीरो तक AWS हैकिंग सीखें htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

Last updated