Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
odat — أداة اختبار اختراق لقواعد بيانات Oracle تقوم باكتشاف معرفات SIDs صالحة، واختراق بيانات الاعتماد بالقوة العمياء، ورفع الصلاحيات إلى DBA، وتنفيذ أوامر النظام، واستغلال الثغرات الأمنية المعروفة (CVEs). | Kitploit
أدوات/GitHubGitHub/quentinhardy/odat
تصعيد الامتيازاتماسحات الثغرات الأمنيةهجمات كلمات المرورالاستغلالاختبار الاختراقالقيادة والسيطرةأمن قواعد البيانات
GitHubquentinhardy/odat

odat

أداة اختبار اختراق لقواعد بيانات Oracle تقوم باكتشاف معرفات SIDs صالحة، واختراق بيانات الاعتماد بالقوة العمياء، ورفع الصلاحيات إلى DBA، وتنفيذ أوامر النظام، واستغلال الثغرات الأمنية المعروفة (CVEs).

عرض المستودع
1.8k349منذ 4 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
Quentin HARDY
[email protected]
[email protected]

ODAT

ODAT (Oracle Database Attacking Tool) هي أداة اختبار اختراق مفتوحة المصدر تختبر أمان قواعد بيانات Oracle عن بُعد.

أمثلة على استخدامات ODAT:

  • لديك قاعدة بيانات Oracle تستمع عن بُعد وتريد العثور على SIDs و بيانات اعتماد صالحة للاتصال بقاعدة البيانات
  • لديك حساب Oracle صالح على قاعدة بيانات وتريد رفع صلاحياتك لتصبح DBA أو SYSDBA
  • لديك حساب Oracle وتريد تنفيذ أوامر النظام (مثل الصدفة العكسية) للتقدم على نظام التشغيل الذي يستضيف قاعدة البيانات

تم اختباره على Oracle Database 10g، 11g، 12c، 18c و 19c.

إصدار ODAT linux standalone على https://github.com/quentinhardy/odat/releases/. يُلاحظ أنه يُوصى باستخدام نسخة التطوير ( git clone)، فرع master-python3 (إصدار بايثون 3).

سجل التغييرات

  • الإصدار 5.1.1 (27/04/2022):
    • طباعة رسالة تحذير عند حدوث خطأ "ORA-12519 - TNS:no appropriate service handler found". يمكن تحفيز هذا الخطأ بواسطة خادم قاعدة البيانات (المستمع) عند إنشاء عدد كبير جداً من الاتصالات (على سبيل المثال، عند تخمين بيانات الاعتماد). في هذه الحالة، يجب استخدام خيار --sleep (مثل --sleep 0.2).
  • الإصدار 5.1 (12/03/2021):
    • خيار جديد في وحدة all: --nmap-file لتحميل جميع قواعد بيانات Oracle من ملف إخراج nmap بصيغة XML
    • خيار جديد في وحدة all: -l لتحميل جميع الأهداف من ملف نصي (ip:port أو ip في كل سطر)
    • في وحدة all، يتم الآن اختبار اتصال TCP على كل هدف قبل بدء اختبارات ODAT. يمكن استخدام --timeout-tcp-check لإدارة قيمة المهلة.
    • في وحدة all، يتم الآن إجراء اختبار على كل هدف للتحقق من تكوين مستمع TNS بشكل صحيح. يتم هذا الاختبار بعد اختبار اتصال TCP.
    • خيار عالمي جديد: --client-driver. يسمح بتعيين اسم العميل لاتصال قاعدة البيانات (client_driver من V$SESSION_CONNECT_INFO). مفيد للتطبيقات التي لا يعرف المستخدمون النهائيون أن cx_Oracle قيد الاستخدام. القيمة الافتراضية الآن هي 'sql*plus'.
    • يقبل ODAT الآن ملف sqlnet.ora. يوجد ملف افتراضي في conf/. تم تعيين مهلة اتصال TCP & OUTBOUND (TNS) إلى 60 ثانية افتراضياً الآن.
  • الإصدار 5.0 (08/02/2021):
    • وحدة جديدة مهمة: خادم أسماء الخدمة، للبحث عن أسماء الخدمات الصالحة. وحدة محددة باسم snguesser ومدمجة أيضاً في وحدة all. افتراضياً، تبحث وحدة all الآن عن جميع أسماء الخدمات الصالحة بعد البحث عن SIDs. يمكن أن تكون SIDs مطابقة لاسم الخدمة. عند العثور على اسم خدمة ولكن ليس SID، يمكن استخدام اسم الخدمة كـ SID للاتصال.
    • خيار --basic-info في وحدة search للحصول على بعض المعلومات التقنية الأساسية حول قاعدة البيانات/المثيل. يحصل على اسم الخدمة، SID، قواعد البيانات، حالة Oracle Database Vault، حالة Java، اسم المضيف، عنوان IP للخادم، سياسة كلمة المرور، الصلاحيات النظامية الحالية، الأدوار الحالية، التصحيحات (عندما يكون الإصدار >= 12c والمستخدم متميز). يتطلب صلاحيات عالية للحصول على معلومات مثيرة للاهتمام (مثل سياسة كلمة المرور وحالة القفل).
    • تم تنفيذ الصدفة العكسية في وحدة DbmsScheduler عندما يكون الهدف هو Windows. يبدأ خادم HTTP بسيط، ويجعل قاعدة بيانات Oracle تقوم بتنزيل كود powershell وتنفيذه عن بُعد. المستخدم لديه صدفة PS تفاعلية. يتم حذف الملف الذي تم تنزيله تلقائياً.
    • خيار الذي تم تنفيذه في لتنزيل ملف نصي/ثنائي من هدف Windows.

الميزات

بفضل ODAT، يمكنك:

  • البحث عن SID صالح على مستمع Oracle Database عن بُعد عبر:
    • هجوم قاموس
    • هجوم تخمين بالقوة
    • ALIAS للمستمع
  • البحث عن حسابات Oracle باستخدام:
    • هجوم قاموس
    • كل مستخدم Oracle ككلمة مرور (يحتاج إلى حساب قبل استخدام هذا الهجوم)
  • تنفيذ أوامر النظام على خادم قاعدة البيانات باستخدام:
    • DBMS_SCHEDULER
    • JAVA
    • جداول خارجية
    • oradbg
  • تنزيل الملفات المخزنة على خادم قاعدة البيانات باستخدام:
    • UTL_FILE
    • DBMS_XSLPROCESSOR
    • جداول خارجية
    • CTXSYS
    • DBMS_LOB
  • رفع الملفات على خادم قاعدة البيانات باستخدام:
    • UTL_FILE
    • DBMS_XSLPROCESSOR
    • DBMS_ADVISOR
  • حذف الملفات باستخدام:
    • UTL_FILE
  • الحصول على وصول متميز باستخدام مجموعات صلاحيات النظام التالية (انظر المساعدة لأوامر وحدة privesc):
    • CREATE ANY PROCEDURE
    • CREATE PROCEDURE و EXECUTE ANY PROCEDURE
    • CREATE ANY TRIGER (و CREATE PROCEDURE)
    • ANALYZE ANY (و CREATE PROCEDURE)
    • CREATE ANY INDEX (و CREATE PROCEDURE)
  • إرسال/استقبال طلبات HTTP من خادم قاعدة البيانات باستخدام:
    • UTL_HTTP
    • HttpUriType
  • مسح المنافذ للخادم المحلي أو خادم عن بُعد باستخدام:
    • UTL_HTTP
    • HttpUriType
    • UTL_TCP
  • التقاط مصادقة SMB عبر:
    • فهرس لتحفيز اتصال SMB
  • استغلال بعض CVE:
    • CVE-2012-3137
      • الحصول على مفتاح الجلسة والملح للمستخدمين العشوائيين
      • هجوم بواسطة القاموس على الجلسات
    • CVE-2012-????: يمكن للمستخدم المصادق تعديل جميع الجداول التي يمكنه تحديدها حتى إذا كان لا يمكنه تعديلها عادةً (بدون صلاحية ALTER).
    • CVE-2012-1675 (المعروف بهجوم تسميم TNS)

هذه القائمة ليست شاملة.

خريطة ذهنية - ODAT واختبارات اختراق Oracle Database

Alt text

المنصات المدعومة والتبعيات

ODAT متوافق مع Linux فقط.

يوجد إصدار مستقل لتجنب الحاجة إلى تثبيت التبعيات (انظر https://github.com/quentinhardy/odat/releases/). تم إنشاء الإصدار المستقل من ODAT بفضل pyinstaller.

إذا كنت ترغب في الحصول على نسخة التطوير المثبتة على جهازك، فإن الأدوات والتبعيات التالية مطلوبة:

  • اللغة: Python 3
  • تبعيات Oracle:
    • Instant Oracle basic
    • Instant Oracle sdk
  • مكتبات بايثون:
    • cx_Oracle
    • passlib
    • pycrypto
    • python-scapy
    • python-libnmap (جديد من بايثون 5.1)
    • colorlog (موصى به)
    • termcolor (موصى به)
    • argcomplete (موصى به)
    • pyinstaller (موصى به)

التثبيت (اختياري، لنسخة التطوير)

يصف هذا الجزء كيفية تثبيت instantclient و CX_Oracle وبعض مكتبات بايثون الأخرى على Ubuntu للحصول على نسخة التطوير من ODAT. لا تنسَ أن هناك إصداراً مستقلاً من ODAT على https://github.com/quentinhardy/odat/releases/: ليس مطلوباً تثبيت أي شيء لاستخدام الإصدار المستقل

  • استنساخ المستودع للحصول على شفرة مصدر ODAT:
root@kitploit:~
git clone https://github.com/quentinhardy/odat.git
  • تحديث صفحات wiki في هذا المستودع للحصول على وثائق ODAT محلياً:
root@kitploit:~
cd odat/
git submodule init
git submodule update
  • الحصول على instant client basic، sdk (تطويري) و sqlplus من موقع Oracle الإلكتروني:

    • X64: http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
    • X86: http://www.oracle.com/technetwork/topics/linuxsoft-082809.html
  • حالياً (03/2021)، إصدار instant client 11.2 من Oracle Database هو الأفضل إذا كنت ترغب في إنشاء الإصدار المستقل من ODAT باستخدام pyinstaller. لاستخدام نسخة التطوير من ODAT، يمكن استخدام أحدث إصدار من عميل Oracle (مثل الإصدار 19).

  • تثبيت حزم python3-dev و alien و libaio1 (لـ sqlplus):

root@kitploit:~
sudo apt-get install libaio1 python3-dev alien python3-pip
  • إنشاء ملفات DEB من ملفات RPM باستخدام:
root@kitploit:~
sudo alien --to-deb oracle-instantclient19.3-basic-???.x???.rpm
sudo alien --to-deb oracle-instantclient19.3-devel-???.x???.rpm
  • تثبيت instant client basic و sdk و sqlplus:
root@kitploit:~
sudo dpkg -i oracle-instantclient19.3-basic-???.x???.deb
sudo dpkg -i oracle-instantclient19.3-devel_???_???.deb
  • وضع هذه الأسطر في ملف /etc/profile الخاص بك لتعريف متغيرات بيئة Oracle:
root@kitploit:~
export ORACLE_HOME=/usr/lib/oracle/19.3/client64/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export PATH=${ORACLE_HOME}bin:$PATH
  • إعادة تشغيل الجلسة (لتطبيق متغيرات البيئة)

  • إنشاء ملف /etc/ld.so.conf.d/oracle.conf وإضافة المسار إلى Oracle home:

root@kitploit:~
/usr/lib/oracle/19.3/client64/lib/
  • تحديث ldpath باستخدام:
root@kitploit:~
sudo ldconfig
  • تثبيت CX_Oracle
root@kitploit:~
sudo -s
source /etc/profile
pip3 install cx_Oracle
  • اختبار إذا كان كل شيء جيداً:
root@kitploit:~
python3 -c 'import cx_Oracle' 

يجب أن يعيد هذا الأمر فقط بدون أخطاء.

  • تثبيت بعض مكتبات بايثون:
root@kitploit:~
sudo apt-get install python3-scapy
sudo pip3 install colorlog termcolor pycrypto passlib python-libnmap
sudo pip3 install argcomplete && sudo activate-global-python-argcomplete
  • تنزيل وتثبيت نسخة التطوير من pyinstaller (http://www.pyinstaller.org/) لـ python 3.
root@kitploit:~
python setup.py install
  • أو التثبيت عبر pip:
root@kitploit:~
pip3 install pyinstaller
  • تشغيل ODAT:
root@kitploit:~
./odat.py -h

عمل جيد إذا لم يكن لديك أخطاء :)

الوثائق والأمثلة

الوثائق والأمثلة موجودة على WIKI

التبرع

إذا كنت ترغب في دعم عملي من خلال التبرع، سأقدر ذلك كثيراً:

  • عبر BTC: 36FugL6SnFrFfbVXRPcJATK9GsXEY6mJbf
تنزيل الأداة
--make-download
DbmsScheduler
  • إصلاح خطأ في المخرجات في وحدة DbmsScheduler (printOSCmdOutput()).
  • شرح أفضل في وحدة DbmsScheduler (الخيارات).
  • الإصدار 4.3 (28/06/2020):
    • خيار جديد: --both-ul. يحاول كل كلمة مرور بحالة الأحرف الصغيرة والكبيرة إذا لم يتم ذلك في ملف (ملفات) بيانات الاعتماد
    • خيار جديد: --random-order. اختبار الحسابات بترتيب عشوائي. افتراضياً، يستخدم ترتيب الملف النصي
    • يتم الآن اختبار جميع كلمات المرور بحالة الأحرف الصغيرة افتراضياً (تم تعديل ملفات الحسابات من الأحرف الكبيرة إلى الصغيرة)
    • بعض الحسابات الجديدة
  • الإصدار 4.2 (04/02/2020):
    • صدفة SQL تفاعلية بسيطة في وحدة search
    • ميزة جديدة لتنزيل الملفات باستخدام DBMS_XSLPROCESSOR.read2clob في وحدة DbmsXslprocessor
    • تحسين للحصول على نظام التشغيل عن بُعد بعد المصادقة
    • إصلاح أخطاء (مثل حجم الطرفية)
  • الإصدار 4.1 (01/15/2020):
    • خيار للاتصال باستخدام SERVICE NAME بدلاً من SID
    • تعيين الترميز إلى UTF-8 افتراضياً لبعض العمليات (مثل NVARCHAR2 و NCLOB، VARCHAR2 و CLOB)
    • إصلاحات متعددة للأخطاء (مشاكل الترميز)
  • الإصدار 4.0 (08/10/2019):
    • Odat مع بايثون 3، إصدار مستقر
  • الإصدار 3.0 (01/09/2019):
    • متوافق مع Oracle Database 18c
    • خيار جديد في وحدة Java لتعيين المسار إلى الصدفة (مثل /usr/bin/sh عند CentOS)
  • الإصدار 2.3.2 (16/07/2019):
    • إصلاحات الأخطاء:
      • جدول خارجي ونتائج سلبية خاطئة
  • الإصدار 2.3.1 (10/08/2018):
    • خيار جديد في وحدة Java لاستغلال CVE-2018-3004: يسمح للمستخدم المصادق بالكتابة بشكل تعسفي إلى الملفات على نظام التشغيل (رفع الامتيازات مع تجاوز الأمان المدمج لـ Oracle JVM). تفاصيل أكثر http://obtruse.syfrtext.com/2018/07/oracle-privilege-escalation-via.html.
  • الإصدار 2.3 (06/03/2018):
    • إصلاحات الأخطاء:
      • لم يتمكن بعض بيانات اعتماد قاعدة البيانات من الاكتشاف في وحدة passwordguesser (عند محاولة الاتصال كـ SYSDBA/SYSOPER من قبل). إصلاح خطأ مهم!
      • PPoutput المفقود في وحدة smb (شكراً لـ dirkjanm)
      • نتيجة إيجابية خاطئة في وحدة tnspoison
      • في بعض الأحيان، يستحيل الحصول على الإصدار من VSNNUM
    • التحسينات:
      • تحسينات الأداء عند تخمين الحسابات.
      • خيار للاتصال باستخدام سلسلة اتصال TNS
      • بيانات اعتماد تافهة جديدة في ملف الحسابات
      • طريقة أفضل لقراءة الملف في وحدة dbmsLob (شكراً لـ omair2084)
  • الإصدار 2.2.1 (12/04/2017):
    • إصلاحات الأخطاء:
      • الإصدار في tnscmd (معلومة)
      • وحدة خارجية (التقاط خطأ Oracle)
      • التقاط خطأ عند "فشل الاتصال بالخادم"
      • Tnscmd: "يجب إعطاء SID الخادم مع الخيار '-d SID'
      • إصلاح خطأ TypeError في وحدة tnspoison
      • وحدة تسميم TNS عندما المنفذ !=1521 (خطأ عدد صحيح)
    • التحسينات:
      • SIDs جديدة
  • الإصدار 2.2 (25/03/2016):
    • وحدة جديدة (tnspoison) لاستغلال هجوم تسميم مستمع TNS (CVE-2012-1675). شكر كبير لـ Joxean Koret و donctl.
    • بعض إصلاحات الأخطاء
    • قائمة مساعدة أفضل
    • صفحات WIKI في مستودع ODAT
  • الإصدار 2.1 (04/03/2016) :
    • وحدة جديدة (cve) لاستغلال بعض CVE (الثغرات ونقاط الضعف الشائعة). تم تنفيذ CVE-2012-3137 (ربما هذا الرقم، لست متأكداً...) حالياً: يمكن للمستخدم المصادق تعديل جميع الجداول التي يمكنه تحديدها حتى إذا كان لا يمكنه تعديلها عادةً (بدون صلاحية ALTER).
    • خيار جديد (--accounts-files) لهجوم المصادقة عن بُعد الذي يستخدم ملفين منفصلين: قائمة تسجيل الدخول وقائمة كلمات المرور.
    • طباعة كلمات مرور 10g للتوافق مع oclHashcat.
    • إصلاح الأخطاء (الاستماع باستخدام nc).
  • الإصدار 2.0 (21/02/2016) :
    • وحدة جديدة (privesc) لاستخدام صلاحيات النظام لمستخدم Oracle (مثل CREATE ANY PROCEDURE) من أجل الحصول على وصول متميز (أي DBA). صلاحيات النظام التي يمكن استخدامها بواسطة ODAT في هذا الإصدار:
      • CREATE ANY PROCEDURE: تنفيذ طلبات عشوائية بصلاحيات APEX_040200 (مثل تعديل كلمات مرور مستخدمي Oracle)
      • CREATE PROCEDURE و EXECUTE ANY PROCEDURE: تنفيذ طلبات عشوائية كـ SYS (مثل منح دور DBA لمستخدم)
      • CREATE ANY TRIGER (و CREATE PROCEDURE): تنفيذ طلبات عشوائية كـ SYS (مثل منح دور DBA لمستخدم)
      • ANALYZE ANY (و CREATE PROCEDURE): تنفيذ طلبات عشوائية كـ SYS (مثل منح دور DBA لمستخدم)
      • CREATE ANY INDEX (و CREATE PROCEDURE): تنفيذ طلبات عشوائية كـ SYS (مثل منح دور DBA لمستخدم)
    • يمكن استخدام وحدة privesc للحصول على جميع صلاحيات النظام والأدوار الممنوحة. يُظهر صلاحيات النظام التي يمكن استخدامها للحصول على وصول متميز.
    • خيار جديد (-vvv) لعرض طلبات SQL التي يرسلها ODAT في وضع التصحيح
    • تم نقل الإصدار المستقل إلى releases (https://github.com/quentinhardy/odat/releases/)
  • الإصدار 1.6 (14/07/2015) :
    • ميزة جديدة للكشف عما إذا كان الهدف عرضة لتسميم TNS (CVE-2012-1675)
    • وحدة جديدة باسم unwrapper لفك شفرة مصدر PL/SQL الملفوفة، من ملف أو قاعدة بيانات عن بُعد
    • بعض التحسينات تم إجراؤها
  • الإصدار 1.5 (17/03/2015) :
    • وحدة جديدة باسم search للبحث في أسماء الأعمدة
    • بعض التحسينات تم إجراؤها (مثل: إخراج الجداول)
    • خيار جديد: ترميز الإخراج
  • الإصدار 1.4 (07/12/2014) :
    • إصلاح بعض النتائج الإيجابية الخاطئة
    • تحسين وحدة CVE-2012-3137: التحقق بسهولة أكبر مما إذا كان يمكن استغلال الثغرة
  • الإصدار 1.3 (07/10/2014) :
    • إضافة الخيار -C في وحدة all. يمكن استخدام هذه الوحدة لاستخدام ملف يحتوي على بيانات اعتماد (تعطيل الخيارين -U و -P)
    • إضافة وحدة tnscmd للحصول على alias TNS، إصدار قاعدة البيانات (بفضل VSNNUM) و حالة TNS
    • إصلاح خطأ: يمكن إعطاء اسم الخادم للخيار -s
  • الإصدار 1.2 (08/08/2014) :
    • إضافة وحدة SMB لالتقاط مصادقة SMB
    • إضافة خيار (SHOW_SQL_REQUESTS_IN_VERBOSE_MODE) في Constants.py لعرض طلبات SQL المرسلة إلى خادم قاعدة البيانات
  • الإصدار 1.1 (28/07/2014) :
    • إضافة وحدة DBMS_LOB المفيدة لتنزيل الملفات المخزنة على خادم عن بُعد عبر Oracle Database.
    • إصلاح خطأ: كود مصدر جافا: "getenv لم يعد مدعوماً، استخدم properties و -D بدلاً من ذلك"
  • الإصدار 1.0 (26/06/2014) :
    • أول إصدار من ODAT.
  • البحث في أسماء الأعمدة بفضل وحدة search:
    • البحث عن نمط (مثال: password) في أسماء الأعمدة
  • فك التغليف عن شفرة مصدر PL/SQL (10g/11g و 12c)
  • الحصول على صلاحيات النظام و الأدوار الممنوحة. من الممكن الحصول على صلاحيات وأدوار الأدوار الممنوحة أيضاً
  • تنفيذ طلبات SELECT عشوائية (المعروفة باسم صدفة SQL بسيطة)