ODAT
ODAT (Oracle Database Attacking Tool) एक ओपन सोर्स पेनिट्रेशन टेस्टिंग टूल है जो ओरेकल डेटाबेस की सुरक्षा का रिमोटली परीक्षण करता है।
ODAT के उपयोग के उदाहरण:
- आपके पास एक ओरेकल डेटाबेस रिमोटली सुन रहा है और आप डेटाबेस से कनेक्ट करने के लिए मान्य SIDs और क्रेडेंशियल्स ढूंढना चाहते हैं
- आपके पास एक डेटाबेस पर एक मान्य ओरेकल खाता है और आप DBA या SYSDBA बनने के लिए अपने विशेषाधिकारों को बढ़ाना चाहते हैं
- आपके पास एक ओरेकल खाता है और आप डेटाबेस होस्ट करने वाले ऑपरेटिंग सिस्टम पर आगे बढ़ने के लिए सिस्टम कमांड निष्पादित करना चाहते हैं (जैसे रिवर्स शेल)
परीक्षण ओरेकल डेटाबेस 10g, 11g, 12c, 18c और 19c पर किया गया है।
ODAT linux स्टैंडअलोन संस्करण 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 nmap XML आउटपुट फ़ाइल से सभी ओरेकल डेटाबेस लोड करने के लिए
- all मॉड्यूल में नया विकल्प: -l एक टेक्स्ट फ़ाइल से सभी लक्ष्य लोड करने के लिए (प्रत्येक पंक्ति पर ip:port या ip)
- all मॉड्यूल में, ODAT परीक्षण शुरू करने से पहले प्रत्येक लक्ष्य पर एक TCP कनेक्शन का परीक्षण किया जाता है। --timeout-tcp-check का उपयोग टाइमआउट मान प्रबंधित करने के लिए किया जा सकता है।
- all मॉड्यूल में, अब प्रत्येक लक्ष्य पर यह जाँचने के लिए एक परीक्षण किया जाता है कि TNS लिसनर सही ढंग से कॉन्फ़िगर किया गया है या नहीं। यह परीक्षण TCP कनेक्शन परीक्षण के बाद किया जाता है।
- नया वैश्विक विकल्प: --client-driver. डेटाबेस कनेक्शन के लिए क्लाइंट नाम सेट करने की अनुमति देता है (V$SESSION_CONNECT_INFO से client_driver)। उन अनुप्रयोगों के लिए उपयोगी जिनके अंतिम उपयोगकर्ता cx_Oracle के उपयोग से अनजान हैं। डिफ़ॉल्ट रूप से, अब 'sql*plus' है।
- ODAT अब एक sqlnet.ora फ़ाइल स्वीकार करता है। एक डिफ़ॉल्ट फ़ाइल conf/ में है। TCP और OUTBOUND (TNS) कनेक्शन का टाइमआउट अब डिफ़ॉल्ट रूप से 60 सेकंड पर सेट है।
- संस्करण 5.0 (08/02/2021):
- महत्वपूर्ण नया मॉड्यूल: Service Name Guesser, मान्य Service Names खोजने के लिए। विशिष्ट मॉड्यूल का नाम snguesser है और all मॉड्यूल में भी एकीकृत है। डिफ़ॉल्ट रूप से, all मॉड्यूल SIDs खोजने के बाद अब सभी मान्य Service Names खोजता है। SIDs Service Name के समान हो सकते हैं। जब कोई Service Name मिलता है लेकिन SID नहीं, तो Service Name का उपयोग कनेक्शन के लिए SID के रूप में किया जा सकता है।
- search मॉड्यूल में --basic-info विकल्प डेटाबेस/इंस्टेंस के बारे में कुछ बुनियादी तकनीकी जानकारी प्राप्त करने के लिए। यह Service Name, SID, डेटाबेस, Oracle Database Vault स्थिति, Java स्थिति, होस्टनाम, सर्वर का IP पता, पासवर्ड नीति, वर्तमान सिस्टम विशेषाधिकार, वर्तमान भूमिकाएं, पैच (जब >= 12c और उपयोगकर्ता विशेषाधिकार प्राप्त है), आदि प्राप्त करता है। बहुत ही रोचक जानकारी के लिए उच्च विशेषाधिकारों की आवश्यकता होती है (जैसे पासवर्ड नीति और लॉक स्थिति)।
विशेषताएं
ODAT की बदौलत, आप यह कर सकते हैं:
- रिमोट Oracle Database लिसनर पर मान्य SID खोजें:
- एक शब्दकोश हमले के माध्यम से
- एक ब्रूट फोर्स हमले के माध्यम से
- लिसनर के ALIAS के माध्यम से
- Oracle खाते खोजें:
- एक शब्दकोश हमले के माध्यम से
- प्रत्येक Oracle उपयोगकर्ता को पासवर्ड के रूप में (इस हमले का उपयोग करने से पहले एक खाते की आवश्यकता है)
- डेटाबेस सर्वर पर सिस्टम कमांड निष्पादित करें:
- DBMS_SCHEDULER
- JAVA
- बाहरी तालिकाएं
- oradbg
- डेटाबेस सर्वर पर संग्रहीत फ़ाइलें डाउनलोड करें:
- UTL_FILE
- DBMS_XSLPROCESSOR
- बाहरी तालिकाएं
- CTXSYS
- DBMS_LOB
- डेटाबेस सर्वर पर फ़ाइलें अपलोड करें:
- UTL_FILE
- DBMS_XSLPROCESSOR
- DBMS_ADVISOR
- फ़ाइलें हटाएं:
- निम्नलिखित सिस्टम विशेषाधिकार संयोजनों का उपयोग करके विशेषाधिकार प्राप्त पहुँच प्राप्त करें (privesc मॉड्यूल कमांड के लिए सहायता देखें):
- CREATE ANY PROCEDURE
- CREATE PROCEDURE और EXECUTE ANY PROCEDURE
- CREATE ANY TRIGGER (और CREATE PROCEDURE)
- ANALYZE ANY (और CREATE PROCEDURE)
- CREATE ANY INDEX (और CREATE PROCEDURE)
- डेटाबेस सर्वर से HTTP अनुरोध भेजें/प्राप्त करें:
- स्थानीय सर्वर या रिमोट सर्वर के पोर्ट स्कैन करें:
- UTL_HTTP
- HttpUriType
- UTL_TCP
- एक SMB कनेक्शन को ट्रिगर करने के लिए एक इंडेक्स के माध्यम से SMB प्रमाणीकरण कैप्चर करें
- कुछ CVE का शोषण करें:
- CVE-2012-3137
- मनमाने उपयोगकर्ताओं के लिए सत्र कुंजी और सॉल्ट उठाएं
- सत्रों पर शब्दकोश द्वारा हमला
- CVE-2012-????: एक प्रमाणित उपयोगकर्ता उन सभी तालिकाओं को संशोधित कर सकता है जिन्हें वह चुन सकता है, भले ही वह सामान्य रूप से उन्हें संशोधित नहीं कर सकता (कोई ALTER विशेषाधिकार नहीं)।
- (उर्फ TNS पॉइज़निंग हमला)
यह सूची विस्तृत नहीं है।
माइंड मैप - ODAT और Oracle Database पेंटेस्ट

समर्थित प्लेटफ़ॉर्म और निर्भरताएँ
ODAT केवल Linux के साथ संगत है।
निर्भरताएँ स्थापित करने की आवश्यकता न होने के लिए स्टैंडअलोन संस्करण मौजूद है (देखें https://github.com/quentinhardy/odat/releases/)।
ODAT स्टैंडअलोन pyinstaller की बदौलत उत्पन्न किया गया है।
यदि आप अपने कंप्यूटर पर विकास संस्करण स्थापित करना चाहते हैं, तो निम्नलिखित उपकरण और निर्भरताएँ आवश्यक हैं:
- भाषा: Python 3
- Oracle निर्भरताएँ:
- Instant Oracle basic
- Instant Oracle sdk
- Python लाइब्रेरी:
- cx_Oracle
- passlib
- pycrypto
- python-scapy
- python-libnmap (python 5.1 से नया)
- colorlog (अनुशंसित)
- termcolor (अनुशंसित)
- argcomplete (अनुशंसित)
- pyinstaller (अनुशंसित)
स्थापना (वैकल्पिक, विकास संस्करण के लिए)
यह भाग बताता है कि Ubuntu पर instantclient, CX_Oracle और कुछ अन्य Python लाइब्रेरी कैसे स्थापित करें ताकि ODAT विकास संस्करण प्राप्त किया जा सके।
यह न भूलें कि ODAT स्टैंडअलोन संस्करण https://github.com/quentinhardy/odat/releases/ पर मौजूद है: स्टैंडअलोन संस्करण का उपयोग करने के लिए कुछ भी स्थापित करना आवश्यक नहीं है
- ODAT स्रोत कोड प्राप्त करने के लिए रिपॉजिटरी को क्लोन करें:
git clone https://github.com/quentinhardy/odat.git
- इस रिपॉजिटरी में विकी पेज अपडेट करें ताकि ODAT दस्तावेज़ स्थानीय रूप से प्राप्त हो सके:
cd odat/
git submodule init
git submodule update
-
Oracle वेबसाइट से instant client basic, sdk (devel) और sqlplus प्राप्त करें:
-
फिलहाल (03/2021), Oracle Database instant client संस्करण 11.2 सबसे अच्छा संस्करण है यदि आप pyinstaller के साथ ODAT स्टैंडअलोन उत्पन्न करना चाहते हैं।
ODAT विकास संस्करण का उपयोग करने के लिए, Oracle क्लाइंट के नवीनतम संस्करण का उपयोग किया जा सकता है (जैसे संस्करण 19)।
-
python3-dev, alien और libaio1 पैकेज स्थापित करें (sqlplus के लिए):
sudo apt-get install libaio1 python3-dev alien python3-pip
- RPM फ़ाइलों से DEB फ़ाइलें जनरेट करें:
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 स्थापित करें:
sudo dpkg -i oracle-instantclient19.3-basic-???.x???.deb
sudo dpkg -i oracle-instantclient19.3-devel_???_???.deb
- Oracle env चर को परिभाषित करने के लिए अपनी /etc/profile फ़ाइल में ये पंक्तियाँ डालें:
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
/usr/lib/oracle/19.3/client64/lib/
- इसका उपयोग करके ldpatch अपडेट करें:
sudo -s
source /etc/profile
pip3 install cx_Oracle
- जाँचें कि सब कुछ ठीक है या नहीं:
python3 -c 'import cx_Oracle'
यह कमांड बिना किसी त्रुटि के बस वापस आना चाहिए।
- कुछ Python लाइब्रेरी स्थापित करें:
sudo apt-get install python3-scapy
sudo pip3 install colorlog termcolor pycrypto passlib python-libnmap
sudo pip3 install argcomplete && sudo activate-global-python-argcomplete
- या pip के माध्यम से स्थापित करें:
__यदि आपको कोई त्रुटि नहीं मिली है तो बढ़िया काम:)
दस्तावेज़ और उदाहरण
दस्तावेज़ और उदाहरण WIKI पर हैं।
दान
यदि आप दान करके मेरे काम का समर्थन करना चाहते हैं, तो मैं इसकी बहुत सराहना करूंगा:
- BTC के माध्यम से: 36FugL6SnFrFfbVXRPcJATK9GsXEY6mJbf