
نسخة محلاة من RottenPotatoNG، مع قليل من العصير، أي أداة أخرى لتصعيد الامتيازات المحلية، من حسابات خدمة Windows إلى NT AUTHORITY\SYSTEM.
نسخة محلاة من RottenPotatoNG، مع القليل من العصير، أي أداة أخرى لتصعيد الامتيازات المحلية، من حسابات خدمات ويندوز إلى NT AUTHORITY\SYSTEM
يستغل RottenPotatoNG و متغيراته سلسلة تصعيد الامتيازات بناءً على خدمة BITS التي تحتوي على مستمع MiTM على 127.0.0.1:6666 وعندما تكون لديك صلاحيات SeImpersonate أو SeAssignPrimaryToken. أثناء مراجعة بناء ويندوز، وجدنا إعدادًا حيث تم تعطيل BITS عن قصد وكان المنفذ 6666 مشغولًا.
قررنا تسليح RottenPotatoNG: قل مرحباً لجوسي بوتيتو.
للنظرية، انظر Rotten Potato - Privilege Escalation from Service Accounts to SYSTEM واتبع سلسلة الروابط والمراجع.
اكتشفنا أنه، بالإضافة إلى BITS، هناك العديد من خوادم COM التي يمكننا إساءة استخدامها. تحتاج فقط إلى:
IMarshalبعد بعض الاختبارات، حصلنا واختبرنا قائمة واسعة من CLSID المثيرة للاهتمام على عدة إصدارات من ويندوز.
يسمح لك JuicyPotato بما يلي:
CLSID المستهدف
اختر أي CLSID تريده. هنا يمكنك العثور على القائمة منظمة حسب نظام التشغيل.
منفذ الاستماع COM
حدد منفذ الاستماع COM الذي تفضله (بدلاً من المنفذ الثابت المرمّز 6666)
عنوان IP الاستماع COM
ربط الخادم على أي IP
وضع إنشاء العملية
بناءً على صلاحيات المستخدم المنتحل، يمكنك الاختيار من:
CreateProcessWithToken (يحتاج SeImpersonate)CreateProcessAsUser (يحتاج SeAssignPrimaryToken)bothالعملية المراد تشغيلها
تشغيل ملف تنفيذي أو سكريبت إذا نجح الاستغلال
وسائط العملية
تخصيص وسائط العملية التي تم تشغيلها
عنوان خادم RPC
للنهج الخفي، يمكنك المصادقة على خادم RPC خارجي
منفذ خادم RPC
مفيد إذا كنت تريد المصادقة على خادم خارجي وجدار الحماية يحظر المنفذ 135...
وضع الاختبار
لأغراض الاختبار بشكل أساسي، أي اختبار CLSIDs. يقوم بإنشاء DCOM وطباعة مستخدم الرمز المميز. انظر هنا للاختبار
T:\>JuicyPotato.exe
JuicyPotato v0.1
Mandatory args:
-t createprocess call: <t> CreateProcessWithTokenW, <u> CreateProcessAsUser, <*> try both
-p <program>: program to launch
-l <port>: COM server listen port
Optional args:
-m <ip>: COM server listen address (default 127.0.0.1)
-a <argument>: command line argument to pass to program (default NULL)
-k <ip>: RPC server ip address (default 127.0.0.1)
-n <port>: RPC server listen port (default 135)
-c <{clsid}>: CLSID (default BITS:{4991d34b-80a1-4291-83b6-3328366b9097})
-z only test CLSID and print token's user

إذا كان المستخدم لديه صلاحيات SeImpersonate أو SeAssignPrimaryToken، فأنت SYSTEM.
من المستحيل تقريبًا منع إساءة استخدام جميع خوادم COM هذه. قد تفكر في تعديل أذونات هذه الكائنات عبر DCOMCNFG لكن حظًا سعيدًا، سيكون هذا صعبًا.
الحل الفعلي هو حماية الحسابات والتطبيقات الحساسة التي تعمل تحت حسابات * SERVICE.
إيقاف DCOM سيمنع هذا الاستغلال بالتأكيد ولكن قد يكون له تأثير خطير على نظام التشغيل الأساسي.
يتوفر بناء تلقائي. يمكن تنزيل الملفات الثنائية من قسم Artifacts هنا.
متوفر أيضًا في BlackArch.