
mssqlproxy هي مجموعة أدوات تهدف إلى تنفيذ حركة جانبية في بيئات مقيدة عبر خادم Microsoft SQL Server مخترق من خلال إعادة استخدام المقابس
mssqlproxy هي مجموعة أدوات تهدف إلى القيام بحركة جانبية في بيئات مقيدة عبر خادم Microsoft SQL Server مخترق عبر إعادة استخدام المقابس (socket reuse). يتطلب العميل impacket وامتيازات sysadmin على خادم SQL.
يرجى قراءة هذه المقالة بعناية قبل المتابعة.
تتكون من ثلاثة أجزاء:
يمكنك تجميع المكتبات أو تنزيلها من الإصدارات (x64).
لإنشاء مكتبة DLL الأساسية، ما عليك سوى استيراد المشروع إلى Visual Studio (reciclador.sln) وتجميعه.
لإنشاء تجميع CLR، تحتاج أولاً إلى العثور على مترجم C#:
Get-ChildItem -Recurse "C:\Windows\Microsoft.NET\" -Filter "csc.exe" | Sort-Object fullname -Descending | Select-Object fullname -First 1 -ExpandProperty fullname
ثم،
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /target:library .\assembly.cs
بعد تجميع المكتبتين، قم برفع مكتبة DLL الأساسية (reciclador) إلى الخادم الهدف.
خيارات المصادقة هي نفسها الموجودة في mssqlclient الأصلي. خيارات mssqlproxy:
proxy mode:
-reciclador path Remote path where DLL is stored in server
-install Installs CLR assembly
-uninstall Uninstalls CLR assembly
-check Checks if CLR is ready
-start Starts proxy
-local-port port Local port to listen on
-clr local_path Local CLR path
-no-check-src-port Use this option when connection is not direct (e.g. proxy)
لقد قمنا أيضًا بتنفيذ أمرين (داخل واجهة SQL shell) لتنزيل ورفع الملفات. فيما يتعلق بأمور الوكيل (proxy)، لدينا أربعة أوامر:
-clr لقراءة تجميع CLR المُنشأ من ملف DLL محلي.-reciclador)، والذي يمكن رفعه باستخدام الأمر upload.-local-port، فسيستمع على المنفذ 1337/tcp.بمجرد بدء الوكيل، يمكنك استخدام proxychains الخاصة بك ;)
ملاحظة #1: إذا كان الاتصال غير مباشر (مثل وجود بروكسيات وسيطة)، فإن العلم -no-check-src-port ضروري، بحيث يتحقق الخادم من عنوان المصدر فقط.
ملاحظة #2: في الوقت الحالي، يتم دعم أهداف IPv4 فقط (وليس عناوين DNS أو IPv6).
ملاحظة #3: استخدم بحذر! حتى الآن، سيتعطل خدمة MSSQL إذا حاولت إنشاء اتصالات متزامنة متعددة.
هام: من المهم إيقاف mssqlproxy بالضغط على Ctrl+C في العميل. وإلا، فقد يتعطل الخادم وسيتعين عليك إعادة تشغيل خدمة MSSQL يدويًا.
Pablo Martinez (@xassiz), Juan Manuel Fernandez (@TheXC3LL) [ www.blackarrow.net - www.tarlogic.com ]
جميع الأكواد المضمنة في هذا المشروع مرخصة بموجب شروط ترخيص MIT. يعتمد mssqlclient.py على Impacket.