
أداة تصعيد الصلاحيات في نظام ويندوز تستغل صلاحيات SeImpersonate عبر انتحال الأنابيب المسماة، وتدعم طرق تنفيذ متعددة (CreateProcessWithTokenW, CreateProcessAsUserW, CreateUser, BindShell) للوصول إلى صلاحيات SYSTEM.
أولاً وقبل كل شيء - الشكر لـ @splinter_code و @decoder_it على RoguePotato حيث أن هذا الكود مبني عليه بشكل كبير.
هذه مجرد بطاطس أخرى للحصول على صلاحيات SYSTEM عبر صلاحيات SeImpersonate. لكن هذه تختلف من حيث
CreateProcessWithTokenW لتشغيل عملية جديدة. بدلاً من ذلك، يمكنك الاختيار بين CreateProcessWithTokenW و CreateProcessAsUserW و CreateUser و BindShell.إذن هذا المشروع قادر على فتح خادم NamedPipe، وانتحال هوية أي مستخدم يتصل به ثم يقوم بأحد الخيارات المذكورة أعلاه. إذا تم نشر أي محفزات مصادقة SYSTEM جديدة في المستقبل، فلا يزال من الممكن استخدام هذه الأداة لرفع الصلاحيات - ما عليك سوى استخدام اسم Pipe مختلف في هذه الحالة.
أمثلة:
c:\temp\MultiPotato> MultiPotato.exe -t CreateUser
لديك 60 ثانية بشكل افتراضي (قابل للتغيير عبر THEAD_TIMEOUT) للسماح لحساب SYSTEM أو أي حساب آخر بالمصادقة. يمكن القيام بذلك على سبيل المثال عبر وظيفة MS-EFSRPC غير مصححة. بشكل افتراضي، يستمع MultiPotato على اسم الأنبوب \\.\pipe\pwned/pipe/srvsvc والذي يُقصد استخدامه مع MS-EFSRPC. بالنسبة لمحفزات مصادقة SYSTEM الأخرى، يمكنك ضبط هذه القيمة عبر المعامل -p.
c:\temp\MultiPotato> PetitPotamModified.exe localhost/pipe/pwned localhost
بالطبع من الممكن أيضًا استخدام PetitPotam.py كمحفز من نظام بعيد مع مستخدم صالح منخفض الصلاحيات.
c:\temp\MultiPotato> MultiPotato.exe -t CreateProcessAsUserW -p "pwned\pipe\spoolss" -e "C:\temp\stage2.exe"
وتشغيله عبر
c:\temp\MultiPotato>MS-RPRN.exe \\192.168.100.150 \\192.168.100.150/pipe/pwned
هام: في اختباراتي لـ MS-RPRN، لم أتمكن من استخدام localhost أو 127.0.0.1 كهدف، بل يجب أن يكون عنوان IP للشبكة أو اسم النطاق المؤهل بالكامل (FQDN). بالإضافة إلى ذلك، يجب أن تكون خدمة الطابعة مفعلة لكي يعمل هذا.
c:\temp\MultiPotato> MultiPotato.exe -t BindShell -p "pwned\pipe\spoolss"
لقد قمت مؤخرًا باختبار اختراق، حيث تمكنت من اختراق خادم MSSQL عبر SQL-Injection و XP_CMDShell. لكن جميع أدوات Potato العامة فشلت على هذا النظام المستهدف في رفع الصلاحيات من حساب الخدمة إلى SYSTEM. لم يكن محفز مصادقة SYSTEM هو المشكلة - بل فشلت CreateProcessWithTokenW طوال الوقت برمز حالة NTSTATUS 5 - الوصول ممنوع. لم يكن هذا منطقيًا بالنسبة لي وقد يكون حالة خاصة. أحد الأسباب لذلك قد يكون حماية نقطة النهاية المحلية التي قد تكون منعت إنشاء العملية بعد انتحال هوية SYSTEM.
لذلك بحثت عن بدائل - وسألت بعض الأشخاص على تويتر عن ذلك. مرة أخرى الشكر لـ @splinter_code لشرحه لي كيفية القيام بذلك عبر CreateProcessAsUserW والتي عملت بشكل جيد على خادم MSSQL المخترق للحصول على اتصال C2 من SYSTEM.