Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/skahwah/sqlrecon
الاستطلاعالاستغلالجمع المعلوماتما بعد الاستغلالاختبار الاختراقالمصادقةالفريق الأحمرأمن قواعد البيانات
GitHubskahwah/sqlrecon

SQLRecon

مجموعة أدوات C# لـ MS SQL مصممة للاستطلاع الهجومي والاستغلال اللاحق.

عرض المستودع
814129منذ 2 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

  licence badge wiki Badge stars badge forks badge issues badge

SQLRecon

SQLRecon هي مجموعة أدوات لخادم SQL من مايكروسوفت مصممة للاستطلاع الهجومي وما بعد الاستغلال. للحصول على معلومات مفصلة حول كيفية استخدام كل أسلوب، راجع الويكي.

يمكنك تنزيل نسخة من SQLRecon من صفحة الإصدارات. بدلاً من ذلك، يمكنك تجميع الحل بنفسك. يجب أن يكون ذلك سهلاً مثل استنساخ المستودع، والنقر المزدوج على ملف الحل، والبناء.

تم أيضًا توفير إرشادات الوقاية والكشف والتخفيف لجميع المدافعين هناك.

اطّلع على مقالتي في مدونة موقع IBM Security Intelligence. إذا كنت تفضل الفيديوهات، فشاهد عرضي التقديمي في Black Hat.

وحدات التعداد

لا تتطلب وحدات التعداد توفير موفر مصادقة. يجب تمرير هذه الوحدات إلى علامة وحدة التعداد (/e:, /enum:). تحتوي الويكي على تفاصيل حول استخدام وحدات التعداد.``` Info - Show information about the SQL server. /h:, /host -> SQL server hostname or IP. Multiple hosts supported. /port: -> (OPTIONAL) Defaults to 1434 (UDP). /t:, timeout: -> (OPTIONAL) Defaults to 3s.

SqlSpns - Use the current user token to enumerate the AD domain for MSSQL SPNs. /d:, /domain: -> (OPTIONAL) NETBIOS name or FQDN of domain.

root@kitploit:~
# مزودو المصادقة

يدعم SQLRecon مجموعة متنوعة من مزودي المصادقة (`/a:, /auth:`) للتفاعل مع خادم Microsoft SQL Server.```
WinToken   - Use the current users token to authenticate against the SQL database
             /h:, /host:     -> SQL server hostname or IP

WinDomain  - Use AD credentials to authenticate against the SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /d:, /domain:   -> NETBIOS name or FQDN of domain.
             /u:, /username: -> Username for domain user.
             /p:, /password: -> Password for domain user.

Local      - Use local SQL credentials to authenticate against the SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /u:, /username: -> Username for local SQL user.
             /p:, /password: -> Password for local SQL user.

EntraID    - Use Azure EntraID credentials to authenticate against the Azure SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /d:, /domain:   -> FQDN of domain (DOMAIN.COM).
             /u:, /username: -> Username for domain user.
             /p:, /password: -> Password for domain user.

AzureLocal - Use local SQL credentials to authenticate against the Azure SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /u:, /username: -> Username for local SQL user.
             /p:, /password: -> Password for local SQL user.

Pth        - Authenticate using an NT hash (pass-the-hash) over raw TDS/NTLM. Elevated privileges or SeImpersonate is not required.
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /d:, /domain:   -> NETBIOS domain name.
             /u:, /username: -> Domain username.
             /hash:          -> NT hash (32 hex chars, 8846f7eaee8fb117ad06bdd830b7586c) or LM:NT format.

موفرو المصادقة - تفاصيل إضافية

  • المضيفون: علامة المضيف (/h:, host:) مطلوبة وتسمح بخادم SQL واحد أو أكثر. إذا كنت ترغب في تنفيذ وحدة ضد خوادم SQL متعددة، فافصل بين المضيفين بفاصلة، على سبيل المثال /h:SQL01,10.10.10.2,SQL03.
  • قاعدة البيانات: يتصل SQLRecon بقاعدة البيانات master افتراضيًا، ومع ذلك، يمكن تغيير ذلك اختياريًا عن طريق توفير اسم قاعدة بيانات مخصص عبر علامة قاعدة البيانات (/database:).
  • التصحيح: علامة /debug اختيارية وتعرض جميع استعلامات SQL التي يتم تنفيذها بواسطة وحدة، دون تنفيذها فعليًا على المضيف (المضيفين) البعيد. يمكن العثور على مثال على ذلك في الويكي.
  • المنفذ: في بعض الحالات، قد لا يستمع خادم Microsoft SQL Server إلى منفذ TCP قياسي. بعض الأمثلة هي تجميع تجاوز الفشل لخادم Microsoft SQL Server، أو منافذ TCP الديناميكية. يتصل SQLRecon بقواعد البيانات عبر منفذ TCP 1433 افتراضيًا، ومع ذلك، يمكن تغيير ذلك اختياريًا باستخدام علامة /port:.
  • المهلة: وقت اتصال قاعدة بيانات SQL الافتراضي هو 3 ثوانٍ، ومع ذلك، يمكن تغيير هذه القيمة اختياريًا عن طريق توفير قيمة مهلة (/t:, /timeout:) والتي تقابل عدد الثواني قبل إنهاء محاولة الاتصال.
  • المفصّل: علامة /v, /verbose اختيارية وتعرض جميع استعلامات SQL التي يتم تنفيذها بواسطة وحدة قبل تنفيذها على المضيف (المضيفين) البعيد. يمكن العثور على مثال على ذلك في .

يرجى ملاحظة أن موفر المصادقة EntraID يتطلب وجود مكتبة مصادقة Azure Active Directory (ADAL) أو مكتبة مصادقة Microsoft (MSAL) على النظام الذي يتم تنفيذ SQLRecon منه. هذا لوظيفة المصادقة والترخيص لـ Azure EntraID.

وحدات SQL

يتم تنفيذ وحدات SQL ضد مثيل واحد أو أكثر من خادم Microsoft SQL. يجب تمرير هذه الوحدات إلى علامة الوحدة (/m:, /module:).

وحدات SQL - قياسية

علامة المضيف (/h:, host:) مطلوبة وتسمح بخادم SQL واحد أو أكثر. إذا كنت ترغب في تنفيذ وحدة ضد خوادم SQL متعددة، فافصل بين المضيفين بفاصلة، على سبيل المثال /h:SQL01,10.10.10.2,SQL03.

تفاصيل استخدام كل وحدة تدعم التنفيذ على مثيل واحد أو أكثر من خادم SQL موجودة في الويكي.

وحدات SQL - انتحال الشخصية

يتم تنفيذ وحدات انتحال الشخصية ضد مثيل واحد أو أكثر من خادم Microsoft SQL، في سياق مستخدم SQL منتحل. جميع وحدات انتحال الشخصية لديها المتطلبات الدنيا التالية:

  • يجب تحديد مستخدم انتحال الشخصية (/i:, /iuser:).
  • يجب تحديد وحدة تدعم انتحال الشخصية (/m:, /module:).

تفاصيل استخدام كل وحدة تدعم التنفيذ باستخدام انتحال الشخصية موجودة في الويكي.

وحدات SQL - مرتبطة

يتم تنفيذ الوحدات المرتبطة على مثيل واحد أو أكثر من خادم Microsoft SQL مرتبط. جميع الوحدات المرتبطة لديها المتطلبات الدنيا التالية:

  • يجب تحديد خادم SQL مرتبط (/l:, /link:). تسمح علامة الارتباط بخادم SQL مرتبط واحد أو أكثر. على سبيل المثال، إذا كان SQL01 لديه رابط إلى SQL02، و SQL01 لديه رابط إلى DB04، يمكنك فصل المضيفين المرتبطين بفاصلة، وسيتم تنفيذ وحدة على كل خادم SQL مرتبط، على سبيل المثال /l:SQL02,DB04.
  • يجب تحديد وحدة تدعم التنفيذ المرتبط (/m:, /module:).

تفاصيل استخدام كل وحدة تدعم التنفيذ على مثيل واحد أو أكثر من خادم SQL مرتبط موجودة في الويكي.

وحدات SQL - سلسلة مرتبطة

يتم تنفيذ وحدات السلسلة المرتبطة على خادم Microsoft SQL النهائي في سلسلة خوادم مرتبطة. جميع وحدات السلسلة المرتبطة لديها المتطلبات الدنيا التالية:

  • يجب تحديد سلسلة خوادم SQL مرتبطة في علامة /l:, /link:. إذا كان SQL01 لديه رابط إلى SQL02، و SQL02 لديه رابط إلى PAYMENTS01، وتريد تنفيذ وحدة على PAYMENTS01، فسيكون الوسيط /l:SQL02,PAYMENTS01.
  • يجب تضمين علامة /chain لتنفيذ الوحدة ضد خادم SQL النهائي في السلسلة المرتبطة المقدمة.
  • يجب تحديد وحدة تدعم التنفيذ المتسلسل المرتبط (/m:, /module:).

تفاصيل استخدام كل وحدة تدعم التنفيذ على خادم SQL النهائي المقدم في سلسلة خوادم SQL مرتبطة موجودة في الويكي.

وحدات SCCM

يحتوي SQLRecon على عدة وحدات يمكن أن تساعد في تعداد ومهاجمة Microsoft System Center Configuration Manager (SCCM) و Microsoft Endpoint Configuration Manager (ECM). ستحتاج خادم SCCM أو ECM إلى وجود قاعدة بيانات Microsoft SQL مكشوفة محليًا أو عن بُعد.

يجب تمرير وحدات SCCM إلى علامة وحدة SCCM (/s:, /sccm:).

يمكن تنفيذ معظم وحدات SCCM في سياق مستخدم SQL منتحل (/i:, /iuser:).

تفاصيل استخدام كل وحدة ضد قاعدة بيانات SCCM/ECM موجودة في الويكي.

وحدات SCCM - تفاصيل إضافية
  • تقوم وحدة Users بإدراج جميع المستخدمين في جدول RBAC_Admins. هؤلاء هم جميع المستخدمين المهيئين لمستوى معين من الوصول إلى SCCM.
  • تقوم وحدة Sites بإدراج جميع المواقع الأخرى مع البيانات المخزنة في جدول DPInfo الخاص بقواعد بيانات SCCM. يمكن أن يوفر هذا طرق هجوم إضافية حيث يمكن تكوين مواقع مختلفة بطرق مختلفة (غير آمنة).
  • تستعلم وحدة Logons جدول Computer_System_DATA لاسترداد جميع عملاء SCCM المرتبطين مع المستخدم الذي سجل الدخول إليهم آخر مرة. ملاحظة: يتم تحديث هذا مرة واحدة في الأسبوع افتراضيًا ولن يكون محدثًا بنسبة 100%. استخدم /option: كوسيط اختياري (غير مطلوب) لتصفية عملاء SCCM.
  • توفر وحدة TaskList قائمة بجميع تسلسلات المهام المخزنة في قاعدة بيانات SCCM، ولكنها لا تصل إلى محتويات بيانات المهمة الفعلية.
  • تستعيد وحدة TaskData جميع تسلسلات المهام المخزنة في قاعدة بيانات SCCM وتقوم بفك تشفيرها إلى نص عادي. يمكن أن تحتوي تسلسلات المهام على بيانات اعتماد لضم الأنظمة إلى المجالات، ومشاركات الخرائط، وتشغيل الأوامر، وما إلى ذلك.
  • تقوم وحدة Credentials بإدراج بيانات الاعتماد المخزنة بواسطة SCCM لاستخدامها في وظائف مختلفة. لا يمكن فك تشفير بيانات الاعتماد هذه عن بُعد لأن المفتاح مخزن على خادم SCCM. ومع ذلك، توفر هذه الوحدة معلومات استخباراتية حول ما إذا كان من المنطقي محاولة الحصول على المفتاح.

توسيع SQLRecon

إذا كنت مهتمًا بتوسيع SQLRecon، فيرجى الرجوع إلى قسم المساهمة والتوسيع في الويكي.

أشجعك على فتح issue إذا كان لديك أي اقتراحات أو أفكار.

خارطة الطريق

الهدف هو تحسين SQLRecon باستمرار. فيما يلي بعض مجالات البحث المخطط لها:

  • تنفيذ دعم للمصادقة المستندة إلى تجزئة NTLM.
  • استكشاف وظائف enablerpc/disablerpc للخوادم SQL المرتبطة والمتسلسلة المرتبطة.

الاعتمادات

ساهم الأشخاص التاليون بشكل مباشر أو غير مباشر في جوانب مختلفة من SQLRecon.

  • Adam Chester (xpn)
  • Andrew Smith (jakxx)
  • Azaël Martin (n3rada)
  • Crusher (chryzsh)
  • Daniel Duggan (rasta-mouse)
  • Dave Cossa (G0ldenGunSec)
  • Dwight Hohnstein (djhohnstein)
  • Javier Balanza (JBalanza)
  • Joshua Magri (passthehashbrowns)

التاريخ

الإصدار 4.0
  • تمت إضافة موفر مصادقة NTLM pass-the-hash (/auth:pth). ينفذ مصادقة TDS/NTLM الخام عبر PTHTdsConnection و NtlmHelper و PthState بحيث تعمل جميع الوحدات دون بيانات اعتماد نصية أو امتيازات مرتفعة. تتضمن الإصلاحات الرئيسية خيارات جلسة ANSI بعد تسجيل الدخول، وتقسيم TDS متعدد الحزم، ومعالجة حالة الجمود في تدفق TCP لاتصالات CLR المتزامنة، وتوافق تدوين الأقواس لـ OPENQUERY.
  • إصلاحات أخطاء في وحدات انتحال الشخصية.
  • إصلاحات أخطاء في وحدات adsi.
  • إصلاحات أخطاء في وحدات ole.
  • إصلاحات أخطاء في _linkedChainRpcQuery
  • تم إصلاح مشكلة طويلة الأمد حيث لم يتم تحويل System.Byte[] بشكل صحيح وطباعته على وحدة التحكم.
  • تمت إضافة وحدات credentialobjectss و proxies (jakxx).
  • تحديث README.md
  • تحديث الويكي
الإصدار 3.12
  • تمت إضافة دعم الوكيل إلى agentcmd (jakxx).
  • تم حل مشكلة تعداد role الذي لا يعمل بشكل صحيح عبر السلسلة المرتبطة (passthehashbrowns).
  • تم حل مشكلة عدم عمل وحدة impersonate بشكل صحيح عبر السلسلة المرتبطة (passthehashbrowns).
  • تم حل مشكلة عدم توفر EnableRpc/DisableRpc عبر السلاسل المرتبطة (passthehashbrowns).
  • تم حل مشكلة عدم عمل وحدة XpCmd عبر السلاسل المرتبطة، كما تدعم الإخراج الآن (passthehashbrowns).
  • تم حل المشكلات حيث تتسبب أسماء الخوادم المرتبطة التي تحتوي على حرف '.' في حدوث مشكلات عند استخدامها في استعلامات EXEC AT ما لم تكن محاطة بأقواس، مما يسبب مشاكل إذا كان اسم الخادم المرتبط هو عنوان IP أو FQDN (passthehashbrowns).
  • تم إجراء تعديلات على منطق إنشاء استعلام سلسلة الخوادم المرتبطة. يستخدم المنطق الحالي العودية وتتوقع الحالة الأساسية أن تكون "0" هي العنصر الأول في المصفوفة، ولكن هذا يسبب سلوكًا غير بديهي عند تطوير وحدات حيث يكون من الضروري التكرار عبر السلسلة المرتبطة مثل دالة .First التي ترجع "0". لقد قمت بتحديثه بحيث تقوم دالة LinkedChainQuery بإنشاء مصفوفة جديدة مع "0" في المقدمة ثم تستدعي المنطق الحالي في دالة منفصلة، تسمى الآن LinkedChainQueryRecurse (passthehashbrowns).
الإصدار 3.11
  • تمت إضافة وظيفة للسماح بفك تشفير بيانات الاعتماد المخزنة في المواقع المهيأة للتوفر العالي (مع خوادم نشطة + خاملة).
الإصدار 3.10
  • تم إصلاح مشكلة في وحدة impersonate للتعامل مع حالات sysadmin بشكل صحيح (n3rada).
  • تم تنفيذ وحدتين جديدتين لـ SCCM هما scriptdata و cidata (G0ldenGunSec).
  • تم تحسين أوقات تحميل وتنفيذ DLL لـ CLR (chryzsh).
  • تم إنشاء وحدة auditstatus للتحقق من وجود تدقيق SQL (chryzsh).
  • تحديث حالات الاختبار.
  • تحديث README.
  • تحديث الويكي.
الإصدار 3.9
  • تمت إضافة قواعد البيانات التي يمكن للمستخدم الوصول إليها في وحدة whoami (JBalanza).
  • تم تصحيح مشكلة في وحدة adsi حيث لا يحتاج خادم LDAP إلى الإضافة إلى قاعدة البيانات msdb، كما تم إسقاط الوظيفة التي تم إنشاؤها بشكل صحيح الآن.
  • تم تصحيح مشكلة حيث تفشل استعلامات RPC التي تحتوي على عبارة AT على الخادم الوجهة إذا كان اسم المضيف المقدم هو FQDN.
  • تحديث README.
  • تحديث الويكي.
الإصدار 3.8
  • تمت إضافة منطق لدعم تنفيذ تجميعات CLR على SQL Server 2016 والإصدارات الأقدم. هذا لوحدة clr. التنفيذ مدعوم في جميع السياقات.
  • تمت إضافة منطق لتحميل تجميع CLR لخادم LDAP على SQL Server 2016 والإصدارات الأقدم. هذا لوحدة adsi. التنفيذ مدعوم في جميع السياقات.
  • تحديث README.
  • تحديث الويكي.
الإصدار 3.7* إعادة هيكلة كاملة لقاعدة الكود. * تحديث الوثائق (تعليقات الكود، README، والويكي). * التنفيذ ضد سلسلة خوادم SQL مرتبطة. على سبيل المثال، إذا كان `SQL01` لديه رابط لـ `SQL02`، و `SQL02` لديه رابط لـ `SQL03`، و `SQL03` لديه رابط لـ `PAYMENTS01`. أصبح من الممكن الآن تنفيذ الأوامر من `SQL01` على `PAYMENTS01` باستخدام سلسلة الخوادم المرتبطة (`/link:SQL02,SQL03,PAYMENTS01 /chain`). يُنسب الفضل إلى Azaël Martin (n3rada). * إزالة وحدتي '`l`' و '`i`'، وإدخال منطق السياق بحيث يمكن أن تكون أسماء الوحدات متطابقة عبر عمليات التنفيذ القياسية، وانتحال الشخصية، والمرتبطة، والمتسلسلة. * إضافة دعم السلسلة إلى جميع الوحدات المرتبطة. * إضافة دعم التصحيح (`/debug`)، الذي سيعرض معلومات تصحيح متنوعة وجميع استعلامات SQL التي سيتم تنفيذها بواسطة وحدة، دون تنفيذها. * إضافة وضع الإسهاب (`/verbose, /v`)، الذي سيعرض جميع استعلامات SQL التي سيتم تنفيذها أثناء تنفيذ الوحدة. * إضافة مهلة (`/timeout, /t`)، والتي تأخذ قيمة صحيحة لمهلة الاتصال بقاعدة بيانات خادم SQL. * تحسين وحدة `links` لتضمين معلومات مفصلة. يُنسب الفضل إلى Azaël Martin (n3rada). * تحسين وحدة `whoami` لتضمين مبادئ Windows ومستخدمي قاعدة البيانات. يُنسب الفضل إلى Azaël Martin (n3rada). * تحسين وحدة `impersonation` لتضمين مبادئ Windows ومستخدمي قاعدة البيانات. يُنسب الفضل إلى Azaël Martin (n3rada). * إضافة استرجاع عنوان IP في وحدة تعداد `sqlspns`. يُنسب الفضل إلى Azaël Martin (n3rada). * توحيد إخراج وحدة التحكم إلى markdown حيثما ينطبق ذلك. يُنسب الفضل إلى Azaël Martin (n3rada). * إضافة دعم DNS لوحدة `/enum:info`. * إضافة وسيط `/subsystem` اختياري لوحدة `olecmdexec`، والذي يقبل التنفيذ باستخدام الأنظمة الفرعية لأتمتة OLE `CmdExec` أو `PowerShell`. * تحديث حلقات الاختبار لتعكس تغييرات CLI والوحدات الجديدة. * تغيير مصادقة `AzureAD` إلى `EntraID`.
الإصدار v3.6
  • التنفيذ ضد خوادم SQL متعددة مقدمة في علامة /host أو /h أصبح مدعومًا الآن باستخدام قيم مفصولة بفاصلة.
  • التنفيذ ضد خوادم SQL مرتبطة متعددة مقدمة في علامة /link أو /l أصبح مدعومًا الآن باستخدام قيم مفصولة بفاصلة.
  • تغيير /lhost إلى /link.
  • إزالة وحدات 's' وإنشاء المفتاح /s، /sccm لوحدات SCCM.
  • إضافة دعم انتحال الشخصية إلى جميع وحدات SCCM، باستثناء DecryptCredentials.
  • إضافة وحدة تعداد (/enum) جديدة تسمى info والتي يمكنها استخدام سياق غير مصادق عليه للحصول على معلومات خادم SQL، بما في ذلك اسم المثيل ومنفذ TCP باستخدام بروتوكول UDP.
  • نقل منطق الوسائط إلى طرق فردية داخل ModuleHandler.cs لتعزيز التبسيط وقابلية التوسعة.
الإصدار v3.5
  • إصلاح خطأ حيث كان تنفيذ adsi المرتبط لا يزيل خادم LDAP.
  • إزالة تنفيذ مهمة الوكيل من adsi المرتبط، لصالح openquery/rpc.
  • تغيير /lhost إلى /adsi في وحدة adsi.
  • تغيير /rhost إلى /unc في وحدة smb.
  • إزالة CaptureHash.cs وتبسيط المنطق.
  • إزالة SetEnumerationType.cs وتبسيط المنطق.
  • إعادة تسمية Impersonation.cs إلى Impersonate.cs.
  • إعادة تسمية OleCmdExec.cs إلى OleAutomation.cs.
الإصدار v3.4
  • إضافة دعم انتحال الشخصية لوحدة smb.
  • إضافة دعم انتحال الشخصية لوحدة info.
  • إضافة دعم الربط لوحدة info.
الإصدار v3.3
  • إنشاء وحدات rows، iRows و lRows.
  • تحديث sLogons ليشمل عامل تصفية اختياري.
  • إصلاح خطأ حيث كانت وحدات xp_cmdshell لا تطبع إخراج الأمر إلى وحدة التحكم.
  • تنظيف قائمة المساعدة.
الإصدار v3.2
  • إصلاح شامل لتحليل وسيطات سطر الأوامر.
  • تحديث README، حالات الاختبار والويكي بأمثلة جديدة.
  • إعادة تصميم تحليل الوسائط المعتمد على التعداد والمصادقة.
  • إنشاء SetEnumerationType.cs.
  • تغيير وحدة التعداد domain إلى SqlSpns.
الإصدار v3.1
  • تغيير مُنشئ SetAuthenticationType.cs إلى طريقة جديدة تسمى EvaluateAuthenticationType.
  • إنشاء CreateSqlConnectionObject في SetAuthenticationType.cs والذي يوسع SQLRecon لدعم كائنات اتصال SQL متعددة متزامنة.
  • إنشاء ADSI.cs، والذي يدمج هجمات بيانات اعتماد ADSI كما هو موضح هنا.
  • إنشاء وحدات adsi، iAdsi، و lAdsi.
  • إنشاء وحدتي lLinks و iLinks.
  • تحديث README، حالات الاختبار والويكي بأمثلة جديدة.
الإصدار v3.0
  • تنفيذ التحقق من الأخطاء للمستخدمين المنتحلين غير الموجودين.
  • إنشاء ExecuteImpersonationQuery و ExecuteImpersonationCustomQuery.
  • حذف Impersonate.cs
  • إضافة وحدة checkRpc.
  • إضافة وحدة iCheckRpc.
  • إضافة وحدة lCheckRpc.
  • إعادة تصميم وحدات SCCM.
  • إعادة تصميم تحليل وسائط SCCM.
  • استخدام حالة الجمل camelCase للأوامر في قائمة المساعدة لسهولة القراءة.
  • تحديث الاختبارات بالوحدات الجديدة.
الإصدار v2.9
  • إعادة تسمية EnableDisable.cs إلى ConfigureOptions.cs
  • إصلاح شامل لتكوينات الخيارات المتقدمة.
  • تنفيذ التحقق من أخطاء RPC أينما يتم استدعاء ExecuteLinkedCustomQueryRpcExec.
الإصدار v2.8
  • إنشاء PrintUtils.cs، الذي ينفذ فئة طباعة لإخراج موحد.
  • نقل TablePrinter من Help.cs إلى PrintUtils.cs.
  • توحيد تنسيق الطباعة لجميع مخرجات وحدة التحكم باستخدام فئة PrintUtils.
  • تغيير معدّلات الوصول للفئات ومتغيرات الفئة.
  • إضافة فحص لمعرفة ما إذا كانت النتيجة فارغة لـ:
    • query
    • search
    • tables
    • lColumns
    • lQuery
    • lSearch
    • lTables
    • iColumns
الإصدار v2.7
  • تغيير مصادقة Azure إلى AzureAD.
  • إنشاء مصادقة AzureLocal.
  • إضافة وحدة disableRpc.
  • إضافة وحدة enableRpc.
  • إضافة وحدة iEnableRpc.
  • إضافة وحدة iDisableRpc.
  • إزالة وحدة lEnableRpc.
  • إزالة وحدة lDisbleRpc.
  • تحديث الاختبارات بالوحدات الجديدة.
الإصدار v2.6.1
  • إصلاح أخطاء lAgentCmd.
  • إصلاح استقرار clr، iClr و lClr باستخدام SqlCommand.ExecuteNonQuery عند إنشاء الإجراء المخزن.
  • إصلاح خطأ lClr حيث لم يكن يزيل التجميعات أو الإجراءات المخزنة المنشأة.
الإصدار v2.6
  • إضافة وحدة columns.
  • إضافة وحدة iColumns.
  • إضافة وحدة iDatabases.
  • إضافة وحدة iSearch.
  • إضافة وحدة iTables.
  • إضافة وحدة lColumns.
  • إضافة وحدة lSearch.
الإصدار v2.5
  • إصلاح أخطاء متنوعة في وحدات SCCM.
  • تنظيم قائمة المساعدة باستخدام جدول.
  • تحسين الإخراج المقدم بواسطة ExecuteLinkedCustomQueryRpcExec.
  • تحسين التعليقات على الكود في جميع الأنحاء.
  • تحسين اتساق أسماء الطرق عبر وظائف تنفيذ الأوامر.
  • تحسين النمطية من خلال استخدام أفضل للبرمجة كائنية التوجه.
  • تغيير علامة منفذ خادم SQL المخصص إلى x.
  • نقل Random.cs إلى دليل utilities.
  • توحيد نمط الطباعة لجعله أكثر اتساقًا عبر جميع الوحدات.
  • إنشاء حلقات اختبار قياسية، وانتحال شخصية، ومرتبطة.
الإصدار v2.4
  • تغيير مصادقة Windows إلى WinToken.
  • إنشاء مصادقة WinDomain، والتي تستخدم اسم مستخدم وكلمة مرور مجال AD للمصادقة عبر انتحال الشخصية. تحقق من Impersonation.cs.
  • إعادة تصميم تحليل الوسائط ومعالجتها عبر ArgumentLogic.cs، SQLAuthentication.cs و ModuleHandler.cs.
  • ModuleHandler.cs لم يعد يستخدم جملة if/else if/else ضخمة لتنفيذ الوحدات. بدلاً من ذلك، يتم الآن استخدام الانعكاس لاستدعاء الطرق المطابقة لأسماء وحدات الأوامر.
  • إضافة دليل commands، الذي يحتوي على متغيرات عامة تُستخدم في جميع أنحاء البرنامج.
  • دمج جميع مزودي المصادقة في SQLAuthentication.cs.
  • نقل تحليل الوسائط من Program.cs إلى ArgumentLogic.cs.
الإصدار v2.3
  • إضافة وظائف SCCM.
  • إضافة وحدات SCCM، والتي يمكن تنفيذها باستخدام الأمر sccm.
  • إصلاح التحقق من حالة RPC على خوادم SQL المرتبطة.
  • إضافة القدرة على تنزيل تجميعات .NET عبر HTTP/S.
الإصدار v2.2
  • توسيع الأدوار التي يتم الاستعلام عنها في وحدات roles، iRoles و lRoles.
  • إنشاء وحدات users، iUsers و lUsers.
  • إصلاح عدم إزالة التجزئة من sp_drop_trusted_assembly في وحدتي clr و iClr.
  • إنشاء وحدة lAgentCmd.
  • إنشاء وحدة lClr.
الإصدار v2.1.6
  • إضافة وحدة info.
  • تصحيحات في قائمة المساعدة.
  • حل المشكلات المتعلقة بالوسائط الإجبارية مع مصادقة Local و Azure.
الإصدار v2.1.5
  • إضافة وحدة لتعداد SPNs للمجال (-e domain).
الإصدار v2.1.4
  • إصلاح مشكلة تنسيق سلسلة نصية بسيطة.
الإصدار v2.1.3
  • إضافة علامة -r إلى وضعي مصادقة Windows و Local بحيث يمكن توفير منافذ TCP غير قياسية.
الإصدار v2.1.2
  • تحسين المنطق حول سلاسل الاتصال الفارغة.
الإصدار v2.1.1
  • إزالة Environment.Exit من TestAuthentication.cs.
الإصدار v2.1
  • إنشاء AgentJobs.cs.
  • إنشاء agentStatus.
  • إنشاء iAgentStatus.
  • إنشاء lAgentStatus.
  • إنشاء agentCmd.
  • إنشاء iAgentCmd.
الإصدار v2.0
  • إنشاء clr.
  • إنشاء iEnableClr.
  • إنشاء iDisbleClr.
  • إنشاء iClr.
  • إنشاء iWhoami.
  • إنشاء iMapped.
  • إنشاء iRoles.
  • إنشاء lEnableRpc.
  • إنشاء lDisableRpc.
  • إنشاء lWhoami.
  • إنشاء lEnableXp.
  • إنشاء lDisableXp.
  • إنشاء lEnableOle.
  • إنشاء lDisableOle.
الإصدار v1.2
  • إنشاء وحدة lSmb.
  • إنشاء وحدة lWhoami.
  • إنشاء وحدة lRoles.
الإصدار v1.1
  • إصلاح وحدة oldCmd.
  • إصلاح وحدة iOleCmd.
  • إصلاح وحدة lDatabases.
  • إصلاح وحدة lTables.
  • تنظيف قاعدة الكود.
  • تصحيح التناقضات في قائمة المساعدة.
تنزيل الأداة
الويكي
اسم الوحدةالوصفانتحال الشخصيةالتنفيذ المرتبطالتنفيذ المتسلسل المرتبطيتطلب سياقًا متميزًا
AuditStatusالتحقق من وجود تدقيق SQL.✅✅✅❎
CheckRpcالحصول على قائمة بالخوادم المرتبطة وحالة RPC الخاصة بها.✅✅✅❎
Databasesعرض جميع قواعد البيانات.✅✅✅❎
Impersonateتعداد حسابات المستخدمين التي يمكن انتحال شخصيتها.✅✅✅❎
Infoإظهار معلومات حول خادم SQL.✅✅✅❎
Linksتعداد خوادم SQL المرتبطة.✅✅✅❎
Usersعرض حسابات المستخدمين والمجموعات التي يمكنها المصادقة ضد قاعدة البيانات.✅✅✅❎
Whoamiعرض امتيازاتك.✅✅✅❎
Query /c:QUERYتنفيذ استعلام SQL.✅✅✅❎
Smb /unc:UNC_PATHالتقاط تجزئة NetNTLMv2.✅✅✅❎
Columns /db:DATABASE /table:TABLEعرض جميع الأعمدة في قاعدة البيانات والجدول المقدمين.✅✅✅❎
Rows /db:DATABASE /table:TABLEعرض عدد الصفوف في جدول قاعدة البيانات المقدم.✅✅✅❎
Search /keyword:KEYWORDالبحث في أسماء الأعمدة في الجدول المقدم لقاعدة البيانات التي تتصل بها.✅✅✅❎
Tables /db:DATABASEعرض جميع الجداول في قاعدة البيانات المقدمة.✅✅✅❎
EnableRpc /rhost:LINKED_HOSTتمكين RPC و RPC out على خادم مرتبط.✅❌❌✔️
EnableClrتمكين تكامل CLR.✅✅✅✔️
EnableOleتمكين إجراءات أتمتة OLE.✅✅✅✔️
EnableXpتمكين xp_cmdshell.✅✅✅✔️
DisableRpc /rhost:LINKED_HOSTتعطيل RPC و RPC out على خادم مرتبط.✅❌❌✔️
DisableClrتعطيل تكامل CLR.✅✅✅✔️
DisableOleتعطيل إجراءات أتمتة OLE.✅✅✅✔️
DisableXpتعطيل xp_cmdshell.✅✅✅✔️
AgentStatusعرض ما إذا كان وكيل SQL قيد التشغيل والحصول على مهام الوكيل.✅✅✅✔️
AgentCmd /c:COMMAND /subsystem:(OPTIONAL) /proxy:(OPTIONAL)تنفيذ أمر نظام باستخدام مهام الوكيل. اختياريًا، حدد نظامًا فرعيًا باستخدام /subsystem:، الافتراضي هو 'PowerShell'. اختياريًا، حدد حساب وكيل SQL باستخدام /proxy:.✅✅✅✔️
Adsi /adsi:SERVER_NAME /lport:LOCAL_PORTالحصول على بيانات اعتماد ADSI بنص واضح من خادم ADSI مرتبط.✅✅✅✔️
Clr /dll:DLL /function:FUNCTIONتحميل وتنفيذ تجميع .NET في إجراء مخزن مخصص.✅✅✅✔️
CredentialObjectsالحصول على كائنات بيانات الاعتماد من sys.credentials.✅✅✅✔️
OleCmd /c:COMMAND /subsystem:(OPTIONAL)تنفيذ أمر نظام باستخدام إجراءات أتمتة OLE.✅✅✅✔️
Proxiesالحصول على معلومات وكيل SQL.✅✅✅✔️
XpCmd /c:COMMANDتنفيذ أمر نظام باستخدام xp_cmdshell.✅✅✅✔️
اسم الوحدةالوصفانتحال الشخصيةيتطلب سياقًا متميزًا
Usersعرض جميع مستخدمي SCCM.✅❎
Sitesعرض جميع المواقع الأخرى مع البيانات المخزنة.✅❎
Logonsعرض جميع عملاء SCCM المرتبطين وآخر مستخدم قام بتسجيل الدخول.✅❎
Credentialsعرض بيانات الاعتماد المشفرة المخزنة بواسطة SCCM.✅❎
TaskListعرض جميع تسلسلات المهام، ولكن لا تصل إلى محتويات بيانات المهمة.✅❎
TaskDataفك تشفير جميع تسلسلات المهام إلى نص عادي.✅❎
DecryptCredentialsمحاولة فك تشفير كتلة بيانات اعتماد SCCM. يجب التنفيذ في عملية عالية التكامل أو SYSTEM على خادم SCCM.❌✔️
AddAdmin /user:DOMAIN\USERNAME /sid:SIDرفع حساب محدد إلى 'مسؤول كامل' في SCCM.✅✔️
RemoveAdmin /user:ADMIN_ID /remove:STRINGإزالة امتيازات مستخدم، أو إزالة مستخدم بالكامل من قاعدة بيانات SCCM.✅✔️
ScriptDataإرجاع جميع البرامج النصية المهيأة للتشغيل في SCCM.✅✔️
CIDataإرجاع جميع CIs المهيأة لتشغيل البرامج النصية في SCCM.✅✔️
  • تحاول وحدة DecryptCredentials فك تشفير كتل بيانات اعتماد SCCM المستردة. يجب تشغيل هذه الوحدة في عملية عالية التكامل أو SYSTEM على خادم SCCM.
  • تقوم وحدة AddAdmin برفع الحساب المحدد إلى 'مسؤول كامل' داخل SCCM. إذا كان المستخدم الهدف مستخدم SCCM بالفعل، فستضيف هذه الوحدة بدلاً من ذلك الامتيازات اللازمة للرفع. قدم وسيطين، إما /user:current /sid:current إذا كنت تسعى لإضافة المستخدم الذي ينفذ حاليًا عملية SQLRecon كـ 'مسؤول كامل' في SCCM. إذا كنت تسعى لإضافة مستخدم آخر كـ 'مسؤول كامل' في SCCM، فحدد اسم مستخدم المجال الخاص به و SID كامل /user:DOMAIN\USERNAME /sid:S-1-5-.... تتطلب هذه الوحدة صلاحيات sysadmin أو ما شابه ذلك لأن الكتابة إلى جداول قاعدة بيانات SCCM مطلوبة.
  • تقوم وحدة RemoveAdmin بإزالة امتيازات مستخدم عن طريق إزالة مستخدم مضاف حديثًا بالكامل من قاعدة بيانات SCCM. إذا كان المستخدم موجودًا بالفعل بشكل ما، فإن هذه الوحدة تقوم فقط بإزالة الأدوار الثلاثة التي تمت إضافتها إلى الحساب عبر عمليات الكتابة إلى جدول الأذونات. استخدم الوسائط المقدمة من إخراج أمر sAddAdmin لتشغيل هذا الأمر. تتطلب هذه الوحدة صلاحيات sysadmin أو ما شابه ذلك لأن الكتابة إلى جداول قاعدة بيانات SCCM مطلوبة.
  • نقل جميع استعلامات SQL إلى Queries.cs.
  • إنشاء EnumerationModules.cs.
  • إنشاء FormatQuery.cs.
  • إنشاء SccmModules.cs.
  • إعادة تسمية ModuleHandler.cs إلى SqlModules.cs.
  • إعادة تسمية PrintUtils.cs إلى Print.cs.
  • إعادة تسمية SQLServerInfo.cs إلى Info.cs.
  • iQuery
  • iSearch
  • اختبار موثوقية ووظائف كبير ضد جميع مزودي المصادقة والوحدات.
  • إزالة دليل authentication.
  • تغيير نمط الكود لمتابعة دليل نمط كود C#/.NET من Microsoft بشكل أفضل.
  • تغيير Help.cs من طريقة إلى مُنشئ.
  • تغيير CaptureHash.cs من طريقة إلى مُنشئ.
  • تغيير Impersonate.cs من طريقة إلى مُنشئ.
  • إعادة هيكلة كاملة لقاعدة الكود.
  • إنشاء lEnableClr.
  • إنشاء lDisableClr.
  • إنشاء lXpCmd.
  • إنشاء lXpOle.
  • إنشاء Random.cs.
  • إنشاء EnableDisable.cs.
  • تنفيذ أسماء تجميعات مولدة عشوائياً لـ clr.
  • تنفيذ أسماء متغيرات وطرق مولدة عشوائياً لـ ole.
  • دمج وحدتي mapped و roles في whoami.
  • دمج وحدتي lMapped و lRoles في lWhoami.
  • دمج وحدتي iMapped و iRoles في iWhoami.
  • إعادة هيكلة كاملة لقاعدة الكود.