AWS - Relational Database (RDS) Enum

HackTricks का समर्थन करें

मूल जानकारी

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

AWS RDS विभिन्न व्यापक रूप से उपयोग किए जाने वाले रिलेशनल डेटाबेस इंजनों का समर्थन करता है, जिसमें MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server, और Amazon Aurora शामिल हैं, जो MySQL और PostgreSQL दोनों के लिए संगतता प्रदान करते हैं।

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

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

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

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

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

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

  • व्यापक निगरानी और मैट्रिक्स के लिए AWS CloudWatch

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

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

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

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

  • RDS को स्वतः उत्पन्न करने के लिए कहें

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

प्रमाणीकरण

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

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

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

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

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

एन्क्रिप्शन

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

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

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

ट्रांसपेरेंट डेटा एन्क्रिप्शन (TDE)

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

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

  1. विकल्प समूह संघ:

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

  • हालाँकि, यह ध्यान रखना महत्वपूर्ण है कि विकल्प समूह केवल विशिष्ट डेटाबेस इंजनों और संस्करणों के लिए उपलब्ध हैं।

  1. विकल्प समूह में TDE का समावेश:

  • एक विकल्प समूह के साथ संबद्ध होने के बाद, Oracle ट्रांसपेरेंट डेटा एन्क्रिप्शन विकल्प को उस समूह में शामिल करने की आवश्यकता है।

  • यह पहचानना आवश्यक है कि एक बार जब TDE विकल्प को एक विकल्प समूह में जोड़ा जाता है, तो यह एक स्थायी विशेषता बन जाती है और इसे हटाया नहीं जा सकता।

  1. TDE एन्क्रिप्शन मोड:

  • TDE दो अलग-अलग एन्क्रिप्शन मोड प्रदान करता है:

  • TDE टेबलस्पेस एन्क्रिप्शन: यह मोड पूरे तालिकाओं को एन्क्रिप्ट करता है, डेटा सुरक्षा के व्यापक दायरे को प्रदान करता है।

  • TDE कॉलम एन्क्रिप्शन: यह मोड डेटाबेस के भीतर विशिष्ट, व्यक्तिगत तत्वों को एन्क्रिप्ट करने पर केंद्रित है, जिससे यह नियंत्रित करना संभव होता है कि कौन सा डेटा एन्क्रिप्ट किया गया है।

इन पूर्वापेक्षाओं और TDE के संचालन की जटिलताओं को समझना RDS के भीतर एन्क्रिप्शन को प्रभावी ढंग से लागू करने और प्रबंधित करने के लिए महत्वपूर्ण है, डेटा सुरक्षा और आवश्यक मानकों के अनुपालन को सुनिश्चित करना।

एन्यूमरेशन

# 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

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

AWS - RDS Unauthenticated Enum

प्रिवेस्क

AWS - RDS Privesc

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

AWS - RDS Post Exploitation

स्थिरता

AWS - RDS Persistence

SQL इंजेक्शन

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

HackTricks का समर्थन करें

Last updated