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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
DbDat — Db أداة تقييم قاعدة البيانات | Kitploit
أدوات/GitHubGitHub/foospidy/dbdat
ماسحات الثغرات الأمنيةتدقيق التكويناختبار الاختراقأمن قواعد البيانات
GitHubfoospidy/dbdat

DbDat

Db أداة تقييم قاعدة البيانات

عرض المستودع
21144منذ 8 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة

DbDat

أداة تقييم قاعدة بيانات Db

يقوم DbDat بإجراء العديد من الفحوصات على قاعدة بيانات لتقييم الأمان. تشمل فئات الفحوصات التي يتم إجراؤها: التهيئة، الصلاحيات، المستخدمين، والمعلومات. يتم إجراء الفحوصات عن طريق تشغيل استعلامات أو قراءة ملفات تهيئة قاعدة البيانات. الهدف من هذه الأداة هو تسليط الضوء على المشكلات التي تحتاج إلى اهتمام فوري وتحديد إعدادات التهيئة التي ينبغي مراجعتها للتأكد من ملاءمتها. هذه الأداة ليست لتحديد ثغرات حقن SQL في تطبيق ما، فهناك أدوات جيدة متوفرة لهذا الغرض (مثل https://github.com/sqlmapproject). كما أن هذه الأداة لا تحاول تحديد الثغرات الأمنية العامة (CVEs) التي قد تؤثر على إصدار قاعدة البيانات المستهدفة (قد تفعل ذلك في المستقبل - ربما). بدلاً من ذلك، يمكن لهذه الأداة مساعدتك في فهم الأثر المحتمل لهجوم حقن SQL ناجح بسبب ضعف التهيئة أو ضوابط الوصول. غالبية الفحوصات مستمدة من معايير أمان قواعد بيانات CIS (https://cisecurity.org)، فجزيل الشكر لـ CIS! يمكن العثور على وثائق المعايير هنا: https://benchmarks.cisecurity.org/downloads/browse/index.cfm?category=benchmarks.servers.database

أوصي بشدة بتحميل وثيقة المعايير الخاصة بقاعدة بياناتك المستهدفة، حيث تحتوي على معلومات إضافية حول الفحوصات التي يتم إجراؤها.

أخيرًا، تم تصميم DbDat كإطار عمل يسهل إنشاء إضافات وفحوصات جديدة. المساهمات من مجتمع الأمن، أو حتى مسؤولي قواعد البيانات، هي ما سيجعل هذه الأداة رائعة. المجموعة الحالية من الفحوصات ليست كاملة بأي حال من الأحوال، بالتأكيد هناك حاجة للمزيد. يرجى المساهمة!

تطوير فحوصات قاعدة بيانات جديدة

طلبات السحب (Pull requests) مرحب بها جدًا! يتم تنظيم الفحوصات حسب نوع قاعدة البيانات (مثل MySQL, Oracle, MS SQL, إلخ.) في مجلد الإضافات (plugins). كل فحص هو ملف Python واحد يجب أن يبدأ اسمه بـ check_. يحتوي كل ملف على فئة (class) بطريقة do_check. هذه الطريقة هي المنطق الأساسي للفحوصات. الطريقة السريعة للبدء هي نسخ ملف فحص موجود وتعديله. ومع ذلك، راجع قسم تطوير الإضافات أدناه لمزيد من التفاصيل.

تشغيل DbDat

  1. تأكد من تثبيت التبعيات اللازمة لاتصالات Python بقاعدة البيانات المستهدفة. راجع قسم التبعيات أدناه.
  2. أضف إدخال ملف تعريف اتصال في ملف etc/dbdat.conf لكل قاعدة بيانات تريد تقييمها.
  3. شغّل: python dbdat.py -p <اسم الملف التعريفي>
  4. اعرض التقرير. لعرض التقرير، انتقل إلى مجلد التقارير بالأمر cd ثم شغّل python -m SimpleHTTPServer 9000 (أو اختر رقم منفذ تفضله). ثم افتح متصفحك وانتقل إلى http://localhost:9000.

لعرض قائمة بوسائط سطر الأوامر الإضافية، شغّل python dbdat.py -h

مخرجات التقرير

ينظم التقرير النتائج حسب المستويات، وهي: الأحمر، الأصفر، البرتقالي، الرمادي، والأخضر.

  • أحمر - عناصر تحتاج إلى اهتمام فوري.
  • أصفر - عناصر تحتاج إلى مراجعة.
  • برتقالي - فحوصات فشلت في التنفيذ بشكل صحيح.
  • رمادي - عناصر قد لا تنطبق على إصدار قاعدة البيانات التي يتم تقييمها.
  • أخضر - عناصر اجتازت الفحص

التبعيات

تم اختبار DbDat حتى الآن على Debian Linux و CentOS Linux و Windows 7 مع Python 2.7

دعم MySQL

شغّل: pip install MySQL-python

أو على Debian، شغّل: apt-get install python-mysqldb

دعم PostgreSQL

شغّل: pip install psycopg2

دعم Oracle

شغّل: pip install cx_Oracle

  • https://cx-oracle.readthedocs.org/en/latest/index.html

ملاحظة: ستحتاج إلى تثبيت مكتبات عميل Oracle لكي يعمل هذا.

دعم MS SQL

شغّل: pip install pymssql

  • https://pymssql.readthedocs.org/en/latest/index.html
دعم Sybase
  • قيد التطوير (todo)
دعم DB2

شغّل: pip install ibm_db أو easy_install ibm_db

ملاحظة: ستحتاج إلى التأكد من أن المستخدم الذي يشغل DbDat لديه صلاحية الوصول لتنفيذ أوامر DB2 CLP (مثل db2 و db2level).

دعم MongoDB

شغّل: pip install pymongo

لدعم ملفات تهيئة MongoDB بصيغة YAML، شغّل: pip install pyyaml

دعم CouchDB

شغّل: pip install couchdb

تطوير الإضافات

مجلدات الإضافات

داخل مجلد الإضافات يوجد مجلد لكل نوع من قواعد البيانات، وكل مجلد يحتوي على ملفات الفحص. هذا هيكل بسيط للغاية، لكن يمكنك أيضًا تصفح مجلد الإضافات للتعرف عليه https://github.com/foospidy/DbDat/tree/master/plugins

ستحتوي مجلدات قواعد البيانات على:

  • __init.py - يحتوي ملف التهيئة (init) على عبارة استيراد (import) لكل ملف فحص.
  • ملفات check_ - هذه هي الملفات الفعلية التي تقوم بفحوصات قاعدة البيانات. يجب أن يكون اسم الملف والصنف (class) المعرف داخله متطابقين.
  • helper.py - ملف يحتوي على دوال مشتركة. يمكن لملفات الفحص استيراد helper.py للاستفادة من الدوال المشتركة.

ملفات الفحص

عند إضافة ملف فحص جديد، يجب إضافة عبارة استيراد (import) إلى ملف __init__.py الخاص بمجلد الإضافة المناسب. نمط الكود للفحوصات ثابت إلى حد كبير. راجع الملفات الموجودة لفهم هيكلها. لاحظ الفرق بين فحوصات النوع sql و configuration_file.

ملف الفحص

هناك "أنواع" مختلفة من الفحوصات يمكن تعريفها. يتم تحديد نوع الفحص بواسطة المتغير TYPE ويمكن أن يكون: sql، configuration_file، nosql، أو clp. فيما يلي أمثلة تطبيقية لسيناريوهات أنواع الفحوصات المختلفة.

نوع الفحص sql

بالنسبة لفحوصات sql، يجب أن يكون توقيع الطريقة do_check كالتالي: do_check(self, *results)

فحص sql نموذجي

https://github.com/foospidy/DbDat/blob/master/plugins/mysql/check_user_empty_password.py

فحص sql حيث يتم تعيين متغير SQL عند التهيئة (init)

في هذا المثال، نحتاج إلى المتغير appuser من الفئة الأم (parent class). يجب إضافة appuser ديناميكيًا إلى جملة SQL، لذلك يتم تعيين المتغير self.SQL في طريقة __init__. أيضًا، نظرًا لأن هذه الطريقة do_check تحتاج إلى تنفيذ SQL، فإننا نحتاج إلى مؤشر قاعدة البيانات (cursor) أيضًا، ويتم تعيينه في طريقة __init__ باستخدام self.dbcurs = parent.dbcurs.

https://github.com/foospidy/DbDat/blob/master/plugins/mysql/check_privilege_user_grants.py

نوع الفحص configuration_file

بالنسبة لفحوصات configuration_file، يجب أن يكون توقيع الطريقة do_check كالتالي: do_check(self, configuration_file)

تحليل ملفات تهيئة متوافقة مع وحدة ConfigParser الخاصة بـ Python

https://github.com/foospidy/DbDat/blob/master/plugins/mysql/check_configuration_general_log.py

تحليل ملفات تهيئة غير متوافقة مع وحدة ConfigParser الخاصة بـ Python

في هذا المثال، ملف تهيئة PostgreSQL لا يحتوي على أقسام (مثل [section_name])، لذلك تحتوي الوحدة المساعدة (helper module) في مجلد PostgreSQL على دالة تتعامل مع هذا. راجع الدالة get_config_value المعرفة في helper.py.

https://github.com/foospidy/DbDat/blob/master/plugins/postgresql/check_configuration_host_wildcards.py

بالنسبة لتنسيقات ملفات تهيئة أخرى، ستحتاج إلى تعريف منطق التحليل الخاص بك.

نوع الفحص nosql

بالنسبة لفحوصات nosql، يجب أن يكون توقيع الطريقة do_check كالتالي: do_check(self)

يجب تنفيذ استعلامات NoSQL داخل الطريقة do_check، لذلك يجب أن تطبق الطريقة __init__ الصفية self.db = parent.db. يمكن بعد ذلك استخدام المتغير self.db لتنفيذ استعلامات NoSQL ضمن الطريقة do_check.

https://github.com/foospidy/DbDat/blob/master/plugins/mongodb/check_information_banner.py

نوع الفحص clp

بالنسبة لفحوصات clp، يجب أن يكون توقيع الطريقة do_check كالتالي: do_check(self, *results). هناك حاجة لفحوصات clp لقواعد بيانات IBM DB2 بحيث يمكن تنفيذ معالج سطر أوامر db2 للحصول على معلومات حول قاعدة البيانات. ومع ذلك، يمكن استخدام هذا النوع من الفحوصات لتنفيذ أي أمر سطر أوامر عشوائي. يمكن تحليل جميع مخرجات سطر الأوامر من المتغير results الذي يُمرر إلى الطريقة do_check. بالإضافة إلى ذلك، ستحتاج إلى تعريف طريقة الصف CMD. هذا المتغير هو قائمة بالأمر والوسائط المرتبطة به.

https://github.com/foospidy/DbDat/blob/master/plugins/db2/check_privilege_group_entitlements.py

المتغير Category

يجب أن يحتوي كل فحص على فئة محددة باستخدام المتغير CATEGORY. الفئة هي طريقة لتنظيم الفحوصات. الفئات الممكنة هي: Information (معلومات)، Configuration (تهيئة)، Privilege (صلاحية)، و User (مستخدم). حدد الفئة الأكثر صلة بسياق الفحص.

هيكل ملف الفحص

هذا مثال تقريبي يوضح النمط الذي يجب أن يتبعه ملف الفحص:

root@kitploit:~
# (اختياري): إضافة عبارات الاستيراد، تضمين أي وحدات ضرورية لدعم هذا الفحص
import helper

# (إلزامي): تعريف الصنف، يجب أن يكون اسم الصنف مطابقًا لاسم الملف.
class check_configuration_evaluate_something():

  # (إلزامي): إضافة توثيق، تقديم معلومات حول هذا الفحص حيث سيتم عرضها في التقرير.
	"""
	check_configuration_evaluate_something:
	يذهب هنا بعض الوصف!
	"""

  # (اختياري): إضافة مراجع، هذه مجرد تعليقات في الكود، إضافة المراجع مفيدة للآخرين.
  # المراجع:
  # https://www.percona.com/blog/2012/12/28/auditing-login-attempts-in-mysql/
  # https://dev.mysql.com/doc/refman/5.7/en/password-security-user.html

  # (إلزامي): إضافة المجموعة القياسية من المتغيرات 
	TITLE    = 'كلمة مرور العميل'
	CATEGORY = 'Configuration'
	TYPE     = 'configuration_file'
	SQL    	 = None
	
	verbose = False
	skip	= False
	result  = {}
	
	# (اختياري): إضافة أي متغيرات مخصصة خاصة بهذا الفحص 
	custom_var = 'custom_val'
	
	
	# (إلزامي): تعريف الطريقة do_check، هذا هو منطق الفحص الفعلي ويتم استدعاؤه بواسطة البرنامج الرئيسي.
	def do_check(self, *results):
	
		# (إلزامي): يوضع هنا منطق الفحص، تأكد من تعيين قيم لـ self.result['level'] و self.result['output']
		
		# يمكن معالجة النتائج من المتغير SQL باستخدام:
		for rows in results:
			for row in rows:
		
			# (إلزامي):
			# قم دائمًا بتعيين المتغيرين self.result['level'] و self.result['output'] قبل العودة.
			if row[0] == 'bad':
				self.result['level']  = 'RED'
				self.result['output'] = 'النتيجة هي %s' % (row[0])
			elif row[0] == 'needs review':
				self.result['level']  = 'YELLOW'
				self.result['output'] = 'النتيجة هي %s' % (row[0])
			else:
				self.result['level']  = 'GREEN'
				self.result['output'] = 'النتيجة هي %s' % (row[0])
		
		# قم دائمًا بإرجاع self.result
		return self.result
	
	# (إلزامي): كحد أدنى، يجب أن تطبع الطريقة __init__ الفحص الذي يتم تنفيذه.
	def __init__(self, parent):
		print('جارٍ تنفيذ الفحص: ' + self.TITLE)
		
		# الحصول على القيم من الصنف الأصلي (parent)
		self.verbose = parent.verbose

أدوات أمان قواعد بيانات أخرى

  • SQLMap
  • NoSQLMap
  • Audit CouchDB
  • MongoAudit
  • MSDAT
  • ODAT
تنزيل الأداة