Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
DbDat — Db डेटाबेस मूल्यांकन उपकरण | Kitploit
उपकरण/GitHubGitHub/foospidy/dbdat
भेद्यता स्कैनरकॉन्फ़िगरेशन ऑडिटिंगपेनिट्रेशन टेस्टिंगडेटाबेस सुरक्षा
GitHubfoospidy/dbdat

DbDat

Db डेटाबेस मूल्यांकन उपकरण

रिपॉजिटरी देखें
211448 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

DbDat

Db डेटाबेस मूल्यांकन उपकरण

DbDat सुरक्षा का मूल्यांकन करने के लिए डेटाबेस पर अनेक जाँच करता है। जाँच की श्रेणियाँ कॉन्फ़िगरेशन, विशेषाधिकार, उपयोगकर्ता और जानकारी हैं। जाँच क्वेरी चलाकर या डेटाबेस कॉन्फ़िगरेशन फ़ाइलें पढ़कर की जाती हैं। इस उपकरण का उद्देश्य उन मुद्दों को उजागर करना है जिन पर तत्काल ध्यान देने की आवश्यकता है और उन कॉन्फ़िगरेशन सेटिंग्स की पहचान करना है जिनकी उपयुक्तता के लिए समीक्षा की जानी चाहिए। यह उपकरण किसी एप्लिकेशन में SQL इंजेक्शन कमजोरियों की पहचान करने के लिए नहीं है, इसके लिए पहले से ही अच्छे उपकरण उपलब्ध हैं (जैसे https://github.com/sqlmapproject)। साथ ही, यह उपकरण यह निर्धारित करने का प्रयास नहीं करता कि लक्ष्य डेटाबेस के संस्करण को कौन से CVE प्रभावित कर सकते हैं (लेकिन भविष्य में ऐसा कर सकता है - शायद)। बल्कि, यह उपकरण आपको कमजोर कॉन्फ़िगरेशन या एक्सेस नियंत्रण के कारण सफल SQL इंजेक्शन हमले के संभावित प्रभाव को बेहतर ढंग से समझने में मदद कर सकता है। अधिकांश जाँचें CIS (https://cisecurity.org) सुरक्षा बेंचमार्क से हैं, तो CIS को धन्यवाद! बेंचमार्क दस्तावेज़ यहां पाए जा सकते हैं: https://benchmarks.cisecurity.org/downloads/browse/index.cfm?category=benchmarks.servers.database

मैं दृढ़ता से अनुशंसा करता हूं कि आप अपने लक्ष्य डेटाबेस के लिए बेंचमार्क दस्तावेज़ डाउनलोड करें क्योंकि इसमें किए गए जाँचों के बारे में अतिरिक्त जानकारी है।

अंत में, DbDat को एक ढांचा (फ्रेमवर्क) के रूप में डिज़ाइन किया गया है जो नए प्लगइन्स और जाँचों को आसानी से बनाने में सक्षम बनाता है। सुरक्षा या यहां तक कि डेटाबेस प्रशासक समुदाय से योगदान ही इसे एक महान उपकरण बनाएगा। जाँचों का वर्तमान सेट किसी भी तरह से पूर्ण नहीं है, निश्चित रूप से और अधिक करने की आवश्यकता है। कृपया योगदान दें!

नए डेटाबेस जाँच विकसित करना

Pull requests are very welcome! जाँचें डेटाबेस प्रकार (जैसे MySQL, Oracle, MS SQL, आदि) के अनुसार प्लगइन्स फ़ोल्डर में संगठित की गई हैं। प्रत्येक जाँच एक एकल पायथन फ़ाइल है जिसके फ़ाइल नाम की शुरुआत में check_ होना चाहिए। प्रत्येक फ़ाइल में एक क्लास होती है जिसमें एक do_check विधि होती है। यह विधि जाँचों के लिए प्राथमिक तर्क है। शुरू करने का त्वरित तरीका किसी मौजूदा जाँच फ़ाइल को कॉपी करके उसे संशोधित करना है। हालाँकि, अधिक विवरण के लिए नीचे 'डिवेलपिंग प्लगइन्स' अनुभाग देखें।

DbDat चलाना

  1. सुनिश्चित करें कि आपके लक्ष्य डेटाबेस से कनेक्ट करने के लिए Python स्क्रिप्ट के लिए आवश्यक निर्भरताएँ स्थापित हैं। नीचे निर्भरताएँ अनुभाग देखें।
  2. प्रत्येक डेटाबेस के लिए जिसका आप मूल्यांकन करना चाहते हैं, etc/dbdat.conf फ़ाइल में एक कनेक्शन प्रोफ़ाइल प्रविष्टि जोड़ें।
  3. चलाएँ: python dbdat.py -p <profile name>
  4. रिपोर्ट देखें। रिपोर्ट देखने के लिए रिपोर्ट्स निर्देशिका में cd करें और python -m SimpleHTTPServer 9000 चलाएँ (या अपनी पसंद का पोर्ट नंबर चुनें)। फिर अपना ब्राउज़र खोलें और http://localhost:9000 पर जाएँ।

अतिरिक्त कमांड लाइन तर्कों की सूची देखने के लिए python dbdat.py -h चलाएँ।

रिपोर्ट आउटपुट

रिपोर्ट परिणामों को स्तरों द्वारा व्यवस्थित करती है, जो हैं RED, YELLOW, ORANGE, GRAY और GREEN।

  • RED - तत्काल ध्यान देने योग्य वस्तुएँ।
  • YELLOW - समीक्षा की आवश्यकता वाली वस्तुएँ।
  • ORANGE - वे जाँचें जो ठीक से निष्पादित नहीं हुईं।
  • GRAY - वे वस्तुएँ जो मूल्यांकित किए जा रहे डेटाबेस के संस्करण के लिए लागू नहीं हो सकतीं।
  • GREEN - वे वस्तुएँ जो पास हो गईं।

निर्भरताएँ

अब तक 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 - इनिट फ़ाइल में प्रत्येक जाँच फ़ाइल के लिए एक इम्पोर्ट स्टेटमेंट होता है।
  • check_ फ़ाइलें - ये वास्तविक फ़ाइलें हैं जो डेटाबेस जाँच करती हैं। फ़ाइल और उसके अंदर परिभाषित क्लास का नाम समान होना चाहिए।
  • helper.py - सामान्य कार्यों वाली फ़ाइल। जाँच फ़ाइलें सामान्य कार्यों का लाभ उठाने के लिए helper.py को इम्पोर्ट कर सकती हैं।

जाँच फ़ाइलें

नई जाँच फ़ाइल जोड़ते समय संबंधित प्लगइन निर्देशिका की __init__.py फ़ाइल में एक इम्पोर्ट स्टेटमेंट जोड़ना आवश्यक है। जाँचों के लिए कोड पैटर्न काफी सुसंगत हैं। यह समझने के लिए मौजूदा फ़ाइलों की समीक्षा करें कि वे कैसे संरचित हैं। sql और configuration_file प्रकार की जाँचों के बीच अंतर पर ध्यान दें।

जाँच फ़ाइल

जाँचों के विभिन्न "प्रकार" परिभाषित किए जा सकते हैं। जाँच प्रकार TYPE चर द्वारा निर्धारित किया जाता है और sql, configurtion_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 चर की आवश्यकता है। appuser को sql स्टेटमेंट में गतिशील रूप से जोड़ने की आवश्यकता है, इसलिए self.SQL चर को __init__ विधि में सेट किया जा रहा है। साथ ही, चूंकि इस do_check विधि को sql निष्पादित करने की आवश्यकता है, हमें DB कर्सर (कनेक्शन) की भी आवश्यकता है, यह __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)

Python के ConfigParser मॉड्यूल के अनुरूप कॉन्फ़िगरेशन फ़ाइलों का पार्सिंग

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

Python के ConfigParser मॉड्यूल के अनुरूप नहीं होने वाली कॉन्फ़िगरेशन फ़ाइलों का पार्सिंग

इस उदाहरण में, PostgreSQL कॉन्फ़िगरेशन फ़ाइल में अनुभाग (जैसे [section_name]) नहीं हैं, इसलिए PostgreSQL फ़ोल्डर में हेल्पर मॉड्यूल में एक फ़ंक्शन है जो इसे संभालता है। helper.py में परिभाषित get_config_value फ़ंक्शन देखें।

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 चर का उपयोग तब do_check विधि में NoSQL क्वेरी निष्पादित करने के लिए किया जा सकता है।

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 कमांड लाइन प्रोसेसर को निष्पादित किया जा सके। हालाँकि, इस प्रकार की जाँच का उपयोग किसी भी मनमाने कमांड लाइन कमांड को निष्पादित करने के लिए किया जा सकता है। सभी कमांड लाइन आउटपुट को do_check विधि में पास किए गए results चर से पार्स किया जा सकता है। इसके अलावा, आपको CMD क्लास विधि को परिभाषित करना होगा। यह चर कमांड और संबंधित तर्कों की सूची है।

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

श्रेणी चर

प्रत्येक जाँच में CATEGORY चर का उपयोग करके एक श्रेणी निर्दिष्ट होनी चाहिए। श्रेणी जाँचों को व्यवस्थित करने का एक तरीका है। संभावित श्रेणियां हैं: Information, Configuration, Privilege और User। वह श्रेणी निर्दिष्ट करें जो जाँच के संदर्भ में सबसे अधिक प्रासंगिक हो।

जाँच फ़ाइल की रूपरेखा

यह एक मोटा उदाहरण है जो एक जाँच फ़ाइल के पैटर्न को प्रदर्शित करता है:

root@kitploit:~
# (OPTIONAL): Add import statements, include any necessary modules to support this check
import helper

# (REQUIRED): Define class, the class must have the same name as its file name.
class check_configuration_evaluate_something():

  # (REQUIRED): Add documentation, provide information on this check as this will be displayed in the report.
	"""
	check_configuration_evaluate_something:
	Some description goes here!
	"""

  # (OPTIONAL): Add references, this is only comments in code, adding references is helpful to others.
  # References:
  # 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

  # (REQUIRED): Add the standard set of variables 
	TITLE    = 'Client Password'
	CATEGORY = 'Configuration'
	TYPE     = 'configuration_file'
	SQL    	 = None
	
	verbose = False
	skip	= False
	result  = {}
	
	# (OPTIONAL): Add any custom variables specific to this check 
	custom_var = 'custom_val'
	
	
	# (REQUIRED): Define the do_check method, this is the actual check logic and is called by the main program.
	def do_check(self, *results):
	
		# (REQUIRED): check logic goes here, besure to set values for self.result['level'] and self.result['output']
		
		# Results from the SQL variable can be processed using:
		for rows in results:
			for row in rows:
		
			# (REQUIRED):
			# Always set the self.result['level'] and self.result['output'] variables before returning.
			if row[0] == 'bad':
				self.result['level']  = 'RED'
				self.result['output'] = 'Result is %s' % (row[0])
			elif row[0] == 'needs review':
				self.result['level']  = 'YELLOW'
				self.result['output'] = 'Result is %s' % (row[0])
			else:
				self.result['level']  = 'GREEN'
				self.result['output'] = 'Result is %s' % (row[0])
		
		# Always return self.result
		return self.result
	
	# (REQUIRED): at minimum the __init__ method should print the check being performed.
	def __init__(self, parent):
		print('Performing check: ' + self.TITLE)
		
		# get values from the parent calling class
		self.verbose = parent.verbose

अन्य डेटाबेस सुरक्षा उपकरण

  • SQLMap
  • NoSQLMap
  • Audit CouchDB
  • MongoAudit
  • MSDAT
  • ODAT
टूल डाउनलोड करें