
पायथन में लिखा गया आक्रामक MSSQL टूलकिट, SQLRecon पर आधारित
PySQLRecon
PySQLRecon, अद्भुत SQLRecon प्रोजेक्ट का एक Python पोर्ट है, जिसे @sanjivkawa ने बनाया है। क्षमताओं की सूची के लिए commands अनुभाग देखें।
पोस्ट जो SCCM TAKEOVER-1 को PySQLRecon के साथ प्रदर्शित करती है।
PySQLRecon को pip3 install pysqlrecon द्वारा या इस रिपॉजिटरी को क्लोन करके और pip3 install . चलाकर स्थापित किया जा सकता है।
SQLRecon के सभी मुख्य मॉड्यूल में समतुल्य कमांड हैं। [PRIV] से चिह्नित कमांड को चलाने के लिए उन्नत विशेषाधिकार या sysadmin अधिकार आवश्यक हैं। वैकल्पिक रूप से, [NORM] से चिह्नित कमांड सामान्य उपयोगकर्ताओं द्वारा चलाए जा सकते हैं और उन्नत विशेषाधिकारों की आवश्यकता नहीं होती है।
प्रतिरूपण ([I]) या लिंक्ड सर्वर पर निष्पादन ([L]) के लिए समर्थन कमांड विवरण के अंत में दर्शाया गया है।
adsi [PRIV] ADSI लिंक्ड सर्वर से ADSI क्रेडेंशियल प्राप्त करें [I,L]
agentcmd [PRIV] एजेंट जॉब का उपयोग करके सिस्टम कमांड निष्पादित करें [I,L]
agentstatus [PRIV] SQL एजेंट स्थिति और जॉब की गणना करें [I,L]
checkrpc [NORM] लिंक्ड सर्वर की RPC स्थिति की गणना करें [I,L]
clr [PRIV] संग्रहीत प्रक्रिया में .NET असेंबली लोड और निष्पादित करें [I,L]
columns [NORM] तालिका के अंतर्गत कॉलम की गणना करें [I,L]
databases [NORM] सर्वर पर डेटाबेस की गणना करें [I,L]
disableclr [PRIV] CLR एकीकरण अक्षम करें [I,L]
disableole [PRIV] OLE ऑटोमेशन प्रक्रियाएँ अक्षम करें [I,L]
disablerpc [PRIV] लिंक्ड सर्वर पर RPC और RPC Out अक्षम करें [I]
disablexp [PRIV] xp_cmdshell अक्षम करें [I,L]
enableclr [PRIV] CLR एकीकरण सक्षम करें [I,L]
enableole [PRIV] OLE ऑटोमेशन प्रक्रियाएँ सक्षम करें [I,L]
enablerpc [PRIV] लिंक्ड सर्वर पर RPC और RPC Out सक्षम करें [I]
enablexp [PRIV] xp_cmdshell सक्षम करें [I,L]
impersonate [NORM] उन उपयोगकर्ताओं की गणना करें जिनका प्रतिरूपण किया जा सकता है
info [NORM] SQL सर्वर के बारे में जानकारी एकत्रित करें
links [NORM] लिंक्ड सर्वर की गणना करें [I,L]
olecmd [PRIV] OLE ऑटोमेशन प्रक्रियाओं का उपयोग करके सिस्टम कमांड निष्पादित करें [I,L]
query [NORM] कस्टम SQL क्वेरी निष्पादित करें [I,L]
rows [NORM] तालिका में पंक्तियों की संख्या प्राप्त करें [I,L]
sample [NORM] तालिका डेटा का नमूना क्वेरी करें [I,L]
sccm [SUBM] SCCM विशिष्ट कमांड के लिए उपमॉड्यूल
search [NORM] कॉलम नाम के लिए तालिका खोजें [I,L]
smb [NORM] xp_dirtree के माध्यम से NetNTLM प्रमाणीकरण बाध्य करें [I,L]
tables [NORM] डेटाबेस के अंतर्गत तालिकाओं की गणना करें [I,L]
users [NORM] डेटाबेस तक पहुँच वाले उपयोगकर्ताओं की गणना करें [I,L]
whoami [NORM] लॉग इन उपयोगकर्ता, मैप किए गए उपयोगकर्ता और भूमिकाएँ एकत्रित करें [I,L]
xpcmd [PRIV] xp_cmdshell का उपयोग करके सिस्टम कमांड निष्पादित करें [I,L]
SCCM कमांड pysqlrecon [OPTIONS] sccm -h चलाकर पाए जा सकते हैं (इसके लिए आवश्यक वैश्विक फ़्लैग निर्दिष्ट करने होंगे - usage देखें)
addadmin [PRIV] किसी खाते को पूर्ण व्यवस्थापक तक बढ़ाएँ [I]
credentials [NORM] एन्क्रिप्टेड क्रेडेंशियल प्रदर्शित करें [I]
logons [NORM] SCCM क्लाइंट और अंतिम लॉग इन उपयोगकर्ता प्रदर्शित करें [I]
removeadmin [PRIV] बढ़ाए गए खाते या बढ़ाए गए विशेषाधिकार हटाएँ [I]
sites [NORM] SCCM साइट जानकारी एकत्रित करें [I]
taskdata [NORM] कार्य अनुक्रम डिक्रिप्ट करें [I]
tasklist [NORM] कार्य अनुक्रम प्रदर्शित करें [I]
users [NORM] SCCM उपयोगकर्ताओं की गणना करें [I]
PySQLRecon में वैश्विक विकल्प (किसी भी कमांड के लिए उपलब्ध) हैं, जिनमें कुछ कमांड अतिरिक्त फ़्लैग प्रस्तुत करते हैं। सभी वैश्विक विकल्प कमांड नाम से पहले निर्दिष्ट किए जाने चाहिए:
pysqlrecon [GLOBAL_OPTS] COMMAND [COMMAND_OPTS]
वैश्विक विकल्प देखें:
pysqlrecon --help
कमांड-विशिष्ट विकल्प देखें:
pysqlrecon [GLOBAL_OPTS] COMMAND --help
PySQLRecon कमांड में प्रमाणीकृत डेटाबेस बदलें, या कुछ PySQLRecon कमांड (query, tables, columns, rows) में उपयोग किए जाने वाले डेटाबेस को --database फ़्लैग के साथ बदलें।
किसी PySQLRecon कमांड को लिंक्ड सर्वर पर लक्षित निष्पादन (प्रमाणीकृत SQL सर्वर के बजाय) --link फ़्लैग का उपयोग करके करें।
PySQLRecon कमांड चलाते समय किसी उपयोगकर्ता खाते का प्रतिरूपण --impersonate फ़्लैग के साथ करें।
--link और --impersonate असंगत हैं।
ntlmrelayx के साथ उपयोगPySQLRecon का उपयोग proxychains के साथ किया जा सकता है ताकि mssql:// सेवा को लक्षित करके रिले किए गए प्रमाणीकरण का लाभ उठाया जा सके। ntlmrelayx सत्र जिस तरह से काम करते हैं, PySQLRecon चलाते समय --database पैरामीटर का सम्मान नहीं किया जाएगा (रिले सत्र हमेशा मास्टर डेटाबेस से जुड़ा रहेगा)। यह विशेष रूप से SCCM मॉड्यूल का उपयोग करते समय प्रासंगिक हो सकता है, जिनमें साइट डेटाबेस निर्दिष्ट करने की आवश्यकता होती है। इसे ठीक करने के लिए, पहले query मॉड्यूल का उपयोग करके डेटाबेस संदर्भ बदलें (यह उसी रिले सत्र के साथ किसी भी बाद के PySQLRecon उपयोग में बना रहेगा)। उदाहरण:
proxychains4 pysqlrecon -t <लक्ष्य> -d <DOMAIN> -u <username> -p FAKE query --query 'use new_db_name'
अब आप उस विशिष्ट डेटाबेस के भीतर संसाधनों को लक्षित करने वाले मॉड्यूल/क्वेरी चला सकते हैं, भले ही --database निर्दिष्ट न किया गया हो, उसी ntlmrelayx सत्र से।
pysqlrecon निर्भरताएँ प्रबंधित करने के लिए uv का उपयोग करता है। स्रोत से स्थापित करें और विकास के लिए सेटअप इस प्रकार करें:
# uv स्थापित करें
curl -LsSf https://astral.sh/uv/install.sh | sh
# pysqlrecon स्थापित करें
git clone https://github.com/tw1sm/pysqlrecon
cd pysqlrecon
uv sync
uv run pysqlrecon --help
PySQLRecon आसानी से विस्तार योग्य है - resources में टेम्पलेट और निर्देश देखें।