AWS - Relational Database (RDS) Enum
Reading time: 7 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
Basic Information
AWS द्वारा प्रदान किया गया Relational Database Service (RDS) एक क्लाउड में रिलेशनल डेटाबेस के तैनाती, संचालन और स्केलिंग को सरल बनाने के लिए डिज़ाइन किया गया है। यह सेवा लागत दक्षता और स्केलेबिलिटी के लाभ प्रदान करती है जबकि हार्डवेयर प्रावधान, डेटाबेस कॉन्फ़िगरेशन, पैचिंग और बैकअप जैसे श्रम-गहन कार्यों को स्वचालित करती है।
AWS RDS विभिन्न व्यापक रूप से उपयोग किए जाने वाले रिलेशनल डेटाबेस इंजनों का समर्थन करता है, जिसमें MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server, और Amazon Aurora शामिल हैं, जो MySQL और PostgreSQL दोनों के लिए संगतता प्रदान करते हैं।
RDS की प्रमुख विशेषताएँ शामिल हैं:
- डेटाबेस इंस्टेंस का प्रबंधन सरल है।
- पढ़ने के प्रदर्शन को बढ़ाने के लिए रीड रेप्लिका का निर्माण।
- उच्च उपलब्धता और फेलओवर तंत्र सुनिश्चित करने के लिए मल्टी-एवेलबिलिटी ज़ोन (AZ) तैनाती का कॉन्फ़िगरेशन।
- अन्य AWS सेवाओं के साथ एकीकरण, जैसे:
- मजबूत पहुँच नियंत्रण के लिए AWS पहचान और पहुँच प्रबंधन (IAM)।
- व्यापक निगरानी और मैट्रिक्स के लिए AWS CloudWatch।
- विश्राम में एन्क्रिप्शन सुनिश्चित करने के लिए AWS की प्रबंधन सेवा (KMS)।
Credentials
DB क्लस्टर बनाते समय मास्टर यूज़रनेम को कॉन्फ़िगर किया जा सकता है (admin
डिफ़ॉल्ट रूप से)। इस उपयोगकर्ता का पासवर्ड उत्पन्न करने के लिए आप:
- स्वयं एक पासवर्ड निर्दिष्ट करें
- RDS को स्वतः उत्पन्न करने के लिए कहें
- RDS को AWS Secret Manager में KMS कुंजी के साथ एन्क्रिप्टेड रूप में प्रबंधित करने के लिए कहें
.png)
Authentication
प्रमाणीकरण विकल्पों के 3 प्रकार हैं, लेकिन मास्टर पासवर्ड का उपयोग हमेशा अनुमति है:
.png)
Public Access & VPC
डिफ़ॉल्ट रूप से कोई सार्वजनिक पहुँच डेटाबेस को नहीं दी जाती है, हालाँकि इसे दी जा सकती है। इसलिए, डिफ़ॉल्ट रूप से केवल उसी VPC से मशीनें इसे एक्सेस कर सकेंगी यदि चयनित सुरक्षा समूह (जो EC2 SG में संग्रहीत हैं) इसे अनुमति देता है।
DB इंस्टेंस को उजागर करने के बजाय, एक RDS Proxy बनाना संभव है जो DB क्लस्टर की स्केलेबिलिटी और उपलब्धता को सुधारता है।
इसके अलावा, डेटाबेस पोर्ट को भी संशोधित किया जा सकता है।
Encryption
एन्क्रिप्शन डिफ़ॉल्ट रूप से सक्षम है एक AWS प्रबंधित कुंजी का उपयोग करते हुए (इसके बजाय एक CMK चुना जा सकता है)।
आपकी एन्क्रिप्शन को सक्षम करने से, आप आपके स्टोरेज, स्नैपशॉट, रीड रेप्लिका और आपके बैकअप के लिए एन्क्रिप्शन को सक्षम कर रहे हैं। इस एन्क्रिप्शन का प्रबंधन करने के लिए कुंजी KMS का उपयोग करके जारी की जा सकती हैं।
आपके डेटाबेस के निर्माण के बाद इस स्तर की एन्क्रिप्शन को जोड़ना संभव नहीं है। यह इसके निर्माण के दौरान किया जाना चाहिए।
हालांकि, एक वर्कअराउंड है जो आपको एक अनएन्क्रिप्टेड डेटाबेस को एन्क्रिप्ट करने की अनुमति देता है। आप अपने अनएन्क्रिप्टेड डेटाबेस का एक स्नैपशॉट बना सकते हैं, उस स्नैपशॉट की एक एन्क्रिप्टेड कॉपी बना सकते हैं, उस एन्क्रिप्टेड स्नैपशॉट का उपयोग करके एक नया डेटाबेस बना सकते हैं, और फिर, अंततः, आपका डेटाबेस एन्क्रिप्टेड हो जाएगा।
Transparent Data Encryption (TDE)
RDS में एप्लिकेशन स्तर पर अंतर्निहित एन्क्रिप्शन क्षमताओं के साथ-साथ, RDS डेटा को सुरक्षित रखने के लिए अतिरिक्त प्लेटफ़ॉर्म-स्तरीय एन्क्रिप्शन तंत्रों का समर्थन करता है। इसमें Oracle और SQL Server के लिए Transparent Data Encryption (TDE) शामिल है। हालाँकि, यह महत्वपूर्ण है कि ध्यान दें कि जबकि TDE डेटा को सुरक्षित रखने के लिए एन्क्रिप्ट करता है, यह डेटाबेस प्रदर्शन को प्रभावित कर सकता है। यह प्रदर्शन प्रभाव विशेष रूप से MySQL क्रिप्टोग्राफिक फ़ंक्शंस या Microsoft Transact-SQL क्रिप्टोग्राफिक फ़ंक्शंस के साथ उपयोग करने पर ध्यान देने योग्य है।
TDE का उपयोग करने के लिए कुछ प्रारंभिक कदम आवश्यक हैं:
- विकल्प समूह संघ:
- डेटाबेस को एक विकल्प समूह के साथ संघबद्ध होना चाहिए। विकल्प समूह सेटिंग्स और सुविधाओं के लिए कंटेनर के रूप में कार्य करते हैं, डेटाबेस प्रबंधन को सरल बनाते हैं, जिसमें सुरक्षा सुधार शामिल हैं।
- हालाँकि, यह ध्यान रखना महत्वपूर्ण है कि विकल्प समूह केवल विशिष्ट डेटाबेस इंजनों और संस्करणों के लिए उपलब्ध हैं।
- विकल्प समूह में TDE का समावेश:
- एक विकल्प समूह के साथ संघबद्ध होने के बाद, Oracle Transparent Data Encryption विकल्प को उस समूह में शामिल करने की आवश्यकता है।
- यह पहचानना आवश्यक है कि एक बार जब TDE विकल्प को एक विकल्प समूह में जोड़ा जाता है, तो यह एक स्थायी विशेषता बन जाती है और इसे हटाया नहीं जा सकता।
- TDE एन्क्रिप्शन मोड:
- TDE दो अलग-अलग एन्क्रिप्शन मोड प्रदान करता है:
- TDE टेबलस्पेस एन्क्रिप्शन: यह मोड पूरे तालिकाओं को एन्क्रिप्ट करता है, डेटा सुरक्षा के व्यापक दायरे को प्रदान करता है।
- TDE कॉलम एन्क्रिप्शन: यह मोड डेटाबेस के भीतर विशिष्ट, व्यक्तिगत तत्वों को एन्क्रिप्ट करने पर केंद्रित है, जिससे यह नियंत्रित करना संभव होता है कि कौन सा डेटा एन्क्रिप्ट किया गया है।
इन पूर्वापेक्षाओं और TDE के संचालन की जटिलताओं को समझना RDS के भीतर एन्क्रिप्शन को प्रभावी ढंग से लागू करने और प्रबंधित करने के लिए महत्वपूर्ण है, डेटा सुरक्षा और आवश्यक मानकों के अनुपालन को सुनिश्चित करते हुए।
Enumeration
# 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
प्रिवेस्क
पोस्ट एक्सप्लोइटेशन
स्थिरता
SQL इंजेक्शन
DynamoDB डेटा तक पहुँचने के लिए SQL सिंटैक्स के साथ तरीके हैं, इसलिए, सामान्य SQL इंजेक्शन भी संभव हैं।
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।