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 का समर्थन करें

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 कुंजी के साथ एन्क्रिप्टेड रूप में प्रबंधित करने के लिए कहें

Authentication

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

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 का उपयोग करने के लिए कुछ प्रारंभिक कदम आवश्यक हैं:

  1. विकल्प समूह संघ:
  • डेटाबेस को एक विकल्प समूह के साथ संघबद्ध होना चाहिए। विकल्प समूह सेटिंग्स और सुविधाओं के लिए कंटेनर के रूप में कार्य करते हैं, डेटाबेस प्रबंधन को सरल बनाते हैं, जिसमें सुरक्षा सुधार शामिल हैं।
  • हालाँकि, यह ध्यान रखना महत्वपूर्ण है कि विकल्प समूह केवल विशिष्ट डेटाबेस इंजनों और संस्करणों के लिए उपलब्ध हैं।
  1. विकल्प समूह में TDE का समावेश:
  • एक विकल्प समूह के साथ संघबद्ध होने के बाद, Oracle Transparent Data Encryption विकल्प को उस समूह में शामिल करने की आवश्यकता है।
  • यह पहचानना आवश्यक है कि एक बार जब TDE विकल्प को एक विकल्प समूह में जोड़ा जाता है, तो यह एक स्थायी विशेषता बन जाती है और इसे हटाया नहीं जा सकता।
  1. TDE एन्क्रिप्शन मोड:
  • TDE दो अलग-अलग एन्क्रिप्शन मोड प्रदान करता है:
  • TDE टेबलस्पेस एन्क्रिप्शन: यह मोड पूरे तालिकाओं को एन्क्रिप्ट करता है, डेटा सुरक्षा के व्यापक दायरे को प्रदान करता है।
  • TDE कॉलम एन्क्रिप्शन: यह मोड डेटाबेस के भीतर विशिष्ट, व्यक्तिगत तत्वों को एन्क्रिप्ट करने पर केंद्रित है, जिससे यह नियंत्रित करना संभव होता है कि कौन सा डेटा एन्क्रिप्ट किया गया है।

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

Enumeration

bash
# 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 इंजेक्शन भी संभव हैं

SQL Injection - HackTricks

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 का समर्थन करें