# GCP - Cloud SQL Enum {{#include ../../../banners/hacktricks-training.md}} ## Basic Information Google Cloud SQL एक प्रबंधित सेवा है जो **रिलेशनल डेटाबेस** जैसे MySQL, PostgreSQL, और SQL Server को Google Cloud Platform पर सेटअप, बनाए रखने और प्रबंधित करने को **सरल बनाती है**, जिससे हार्डवेयर प्रावधान, डेटाबेस सेटअप, पैचिंग, और बैकअप जैसे कार्यों को संभालने की आवश्यकता समाप्त हो जाती है। Google Cloud SQL की प्रमुख विशेषताएँ हैं: 1. **पूर्ण रूप से प्रबंधित**: Google Cloud SQL एक पूर्ण रूप से प्रबंधित सेवा है, जिसका अर्थ है कि Google डेटाबेस रखरखाव कार्यों जैसे पैचिंग, अपडेट, बैकअप, और कॉन्फ़िगरेशन को संभालता है। 2. **स्केलेबिलिटी**: यह आपके डेटाबेस के स्टोरेज क्षमता और कंप्यूट संसाधनों को स्केल करने की क्षमता प्रदान करता है, अक्सर बिना डाउनटाइम के। 3. **उच्च उपलब्धता**: उच्च उपलब्धता कॉन्फ़िगरेशन प्रदान करता है, यह सुनिश्चित करते हुए कि आपकी डेटाबेस सेवाएँ विश्वसनीय हैं और क्षेत्र या उदाहरण की विफलताओं को सहन कर सकती हैं। 4. **सुरक्षा**: डेटा एन्क्रिप्शन, पहचान और पहुंच प्रबंधन (IAM) नियंत्रण, और निजी आईपी और VPC का उपयोग करके नेटवर्क अलगाव जैसी मजबूत सुरक्षा सुविधाएँ प्रदान करता है। 5. **बैकअप और पुनर्प्राप्ति**: स्वचालित बैकअप और समय-निर्धारित पुनर्प्राप्ति का समर्थन करता है, जिससे आप अपने डेटा की सुरक्षा और पुनर्स्थापना कर सकते हैं। 6. **एकीकरण**: अन्य Google Cloud सेवाओं के साथ निर्बाध रूप से एकीकृत होता है, अनुप्रयोगों को बनाने, तैनात करने और प्रबंधित करने के लिए एक व्यापक समाधान प्रदान करता है। 7. **प्रदर्शन**: डेटाबेस प्रदर्शन की निगरानी, समस्या निवारण, और सुधार के लिए प्रदर्शन मैट्रिक्स और डायग्नोस्टिक्स प्रदान करता है। ### Password वेब कंसोल में Cloud SQL उपयोगकर्ता को डेटाबेस का **पासवर्ड सेट** करने की अनुमति देता है, वहाँ एक जनरेट फीचर भी है, लेकिन सबसे महत्वपूर्ण बात यह है कि **MySQL** को **खाली पासवर्ड छोड़ने** की अनुमति है और सभी को पासवर्ड के रूप में केवल "a" वर्ण सेट करने की अनुमति है:
यह एक पासवर्ड नीति को कॉन्फ़िगर करना भी संभव है जिसमें **लंबाई**, **जटिलता**, **पुन: उपयोग को अक्षम करना** और **पासवर्ड में उपयोगकर्ता नाम को अक्षम करना** शामिल है। सभी डिफ़ॉल्ट रूप से अक्षम होते हैं। **SQL Server** को **Active Directory Authentication** के साथ कॉन्फ़िगर किया जा सकता है। ### Zone Availability डेटाबेस **1 क्षेत्र में या कई में उपलब्ध** हो सकता है, निश्चित रूप से, महत्वपूर्ण डेटाबेस को कई क्षेत्रों में रखना अनुशंसित है। ### Encryption डिफ़ॉल्ट रूप से एक Google-प्रबंधित एन्क्रिप्शन कुंजी का उपयोग किया जाता है, लेकिन **ग्राहक-प्रबंधित एन्क्रिप्शन कुंजी (CMEK)** का चयन करना भी **संभव है**। ### Connections - **Private IP**: VPC नेटवर्क को इंगित करें और डेटाबेस को नेटवर्क के अंदर एक निजी आईपी मिलेगा - **Public IP**: डेटाबेस को एक सार्वजनिक आईपी मिलेगा, लेकिन डिफ़ॉल्ट रूप से कोई भी कनेक्ट नहीं कर सकेगा - **Authorized networks**: सार्वजनिक **IP रेंज को इंगित करें जो डेटाबेस से कनेक्ट करने की अनुमति होनी चाहिए** - **Private Path**: यदि DB किसी VPC में कनेक्ट है, तो इस विकल्प को सक्षम करना संभव है और **अन्य GCP सेवाओं जैसे BigQuery को इसके माध्यम से पहुंच प्रदान करना**
### Data Protection - **Daily backups**: स्वचालित दैनिक बैकअप करें और आप कितने बैकअप बनाए रखना चाहते हैं, यह इंगित करें। - **Point-in-time recovery**: आपको एक विशिष्ट समय बिंदु से डेटा पुनर्प्राप्त करने की अनुमति देता है, एक सेकंड के अंश तक। - **Deletion Protection**: यदि सक्षम किया गया, तो DB को तब तक हटाया नहीं जा सकेगा जब तक कि यह सुविधा अक्षम न हो जाए। ### Enumeration ```bash # Get SQL instances gcloud sql instances list gcloud sql instances describe # get IPs, CACert, settings # Get database names inside an instance (like information_schema, sys...) gcloud sql databases list --instance gcloud sql databases describe --instance # Get usernames inside the db instance gcloud sql users list --instance # Backups gcloud sql backups list --instance gcloud sql backups describe --instance ``` ### अनधिकृत Enum {{#ref}} ../gcp-unauthenticated-enum-and-access/gcp-cloud-sql-unauthenticated-enum.md {{#endref}} ### पोस्ट एक्सप्लोइटेशन {{#ref}} ../gcp-post-exploitation/gcp-cloud-sql-post-exploitation.md {{#endref}} ### स्थिरता {{#ref}} ../gcp-persistence/gcp-cloud-sql-persistence.md {{#endref}} {{#include ../../../banners/hacktricks-training.md}}