
Symantec Encryption Desktop में CVE-2019-9702 के लिए SYSTEM शेल प्राप्त करने हेतु स्थानीय विशेषाधिकार वृद्धि PoC।
PGPwded.sys स्थानीय विशेषाधिकार वृद्धि PoCइस रिपॉजिटरी में सिमैंटेक एन्क्रिप्शन डेस्कटॉप के PGPwded.sys स्टोरेज फिल्टर में एक स्थानीय विशेषाधिकार वृद्धि पथ का प्रूफ-ऑफ-कॉन्सेप्ट शामिल है, जो कम-विशेषाधिकार वाले रॉ डिस्क रीड/राइट प्रिमिटिव पर आधारित है।
PoC को Symantec Encryption Desktop Pro 10.4.2 MP3 के विरुद्ध विकसित और परीक्षण किया गया था। अन्य संस्करणों का इस कार्यान्वयन के साथ परीक्षण नहीं किया गया है।
यह कार्य Kyriakos Economou / Nettitude (अब LRQA Nettitude) के मूल सार्वजनिक शोध से प्रेरित और उस पर आधारित है:
उनकी पोस्ट में PGPwded.sys डिवाइस एक्सेस चेक, विश्वसनीय PGP-प्रक्रिया इंजेक्शन विचार, रॉ रीड/राइट IOCTLs, और NTFS-आधारित शोषण दृष्टिकोणों का वर्णन है। यह PoC एक रीबूट-ट्रिगर्ड सेवा-बाइनरी ओवरराइट वेरिएंट पर ध्यान केंद्रित करता है और इसमें एक रीड-ओनली प्रीचेक उपयोगिता शामिल है।
src/
sym_portable_launcher.c # single-EXE launcher; embeds and drops the staging worker
portable_stage_worker.c # injected worker; maps C:, opens PGPwded, stages payload
spooler_payload.c # service payload run by Spooler as LocalSystem after reboot
sym_portable_precheck.c # single-EXE read-only precheck launcher
precheck_worker.c # injected read-only diagnostic worker
*_bytes.h # generated embedded payload/worker byte arrays
tools/
sym_target_diag_lite.cmd # wrapper script for collecting target diagnostics
रीबूट-स्टेज एक्सप्लॉइट एक एकल ड्रॉप किया गया 32-बिट विंडोज निष्पादनीय है। उच्च स्तर पर:
C:\Users\Public।%TEMP% में ड्रॉप करता है।\\.\PGPwdef खोलता है।C:\Windows\System32\spoolsv.exe को उसके NTFS एक्सटेंट से मैप करता है और बैकिंग डिस्क सेक्टर की गणना करता है।\Device\000000xx PGP डिस्क ऑब्जेक्ट उस C: सेक्टर से मैप होता है।C:\Users\Public\spoolsv.exe.orig.portable पर लेता है।spoolsv.exe को बैक करने वाले सेक्टरों को एक एम्बेडेड LocalSystem सेवा पेलोड से रॉ-ओवरराइट करता है।रीड-ओनली प्रीचेक उसी विश्वसनीय-प्रक्रिया पथ का अनुसरण करता है, लेकिन केवल रॉ रीड IOCTL का उपयोग करता है। यह फ़ाइलों को ओवरराइट नहीं करता है और एक्सप्लॉइट को स्टेज नहीं करता है।
MinGW-w64 स्थापित लिनक्स होस्ट से बिल्ड करें:
make
अपेक्षित आउटपुट:
bin/sym_portable_reboot_stage32.exe # exploit/stager
bin/sym_portable_precheck32.exe # read-only precheck
पहले प्रीचेक चलाएं। इसका उद्देश्य यह जवाब देना है कि क्या वर्तमान एक्सप्लॉइट स्थितियां मौजूद हैं बिना संरक्षित फ़ाइलों को संशोधित किए।
C:\Users\Public\sym_portable_precheck32.exe
notepad C:\Users\Public\sym_portable_precheck.log
एक व्यवहार्य लक्ष्य को इसके साथ समाप्त होना चाहिए:
[OK] current reboot exploit conditions
यदि लॉग में कोई पढ़ने योग्य PGP PDOs नहीं दिखता है, या कोई C: सेक्टर मैच नहीं है, तो एक्सप्लॉइट न चलाएं। इसका आमतौर पर मतलब है कि OS डिस्क Symantec WDE-प्रबंधित/उपकरणित नहीं है।
अधिक संपूर्ण लक्ष्य रिपोर्ट के लिए, नीचे दोनों फ़ाइलों को एक ही निर्देशिका में कॉपी करें और CMD रैपर चलाएं:
sym_target_diag_lite.cmd
sym_portable_precheck32.exe
फिर चलाएं:
C:\Users\Public\sym_target_diag_lite.cmd
notepad C:\Users\Public\sym_target_diag_lite.log
एक्सप्लॉइट केवल उन सिस्टम पर चलाएं जहां आप संरक्षित सिस्टम फ़ाइलों को संशोधित करने के लिए अधिकृत हैं और जहां प्रीचेक पास हो गया है।
स्टेजर को एक लिखने योग्य पथ पर कॉपी करें और इसे कम-विशेषाधिकार वाले उपयोगकर्ता के रूप में चलाएं:
C:\Users\Public\sym_portable_reboot_stage32.exe
स्टेजिंग लॉग जांचें:
type C:\Users\Public\sym_portable_launcher.log
type C:\Users\Public\sym_portable_stage.log
यदि स्टेजिंग सफल हुई, तो वर्कर लॉग में यह होगा:
STAGED_OK_REBOOT_TO_TRIGGER
मशीन को रीबूट करें। रीबूट के बाद, स्पूलर सेवा को LocalSystem के रूप में पेलोड शुरू करना चाहिए और एक कमांड प्रॉम्प्ट खोलना चाहिए जिसका शीर्षक हो:
SYSTEM_CMD_FROM_PORTABLE_REBOOT_LPE
स्टेजर लक्ष्य को ओवरराइट करने से पहले यह बैकअप बनाता है:
C:\Users\Public\spoolsv.exe.orig.portable
एक सार्वजनिक वन-क्लिक पुनर्स्थापना मोड शामिल नहीं है। परीक्षण में, बैकअप को उन्हीं मैप किए गए सेक्टरों पर रॉ-राइट करके और रीबूट करके पुनर्स्थापना की गई थी। बाइनरी प्रकाशित करने से पहले एक सुरक्षित पुनर्स्थापना प्रवाह जोड़ा और मान्य किया जाना चाहिए।
C:\Windows\System32\spoolsv.exe को लक्षित करता है।PGPwded.sys के माध्यम से उजागर होना चाहिए; केवल सिमैंटेक इंस्टॉल पर्याप्त नहीं है।यह अधिकृत परीक्षण और रक्षात्मक सत्यापन के लिए शोध कोड है। इसे उन सिस्टम पर न चलाएं जिनके मालिक आप नहीं हैं या जिनके आकलन की स्पष्ट अनुमति नहीं है।