AWS - Relational Database (RDS) Enum

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 Identity and Access Management (IAM).

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

  • स्थिरता में एन्क्रिप्शन सुनिश्चित करने के लिए AWS Key Management Service (KMS.

Credentials

DB क्लस्टर बनाते समय मास्टर username को कॉन्फ़िगर किया जा सकता है (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. Option Group Association:

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

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

  1. Inclusion of TDE in Option Group:

  • एक ऑप्शन ग्रुप के साथ संबद्ध होने के बाद, Oracle Transparent Data Encryption विकल्प को उस ग्रुप में शामिल करने की आवश्यकता है।

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

  1. TDE Encryption Modes:

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

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

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

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

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

Unauthenticated Access

AWS - RDS Unauthenticated Enum

Privesc

AWS - RDS Privesc

Post Exploitation

AWS - RDS Post Exploitation

Persistence

AWS - RDS Persistence

SQL Injection

DynamoDB डेटा को SQL syntax के साथ एक्सेस करने के तरीके हैं, इसलिए, सामान्य SQL injections भी संभव हैं

HackTricks को सपोर्ट करें

Last updated