macOS Office Sandbox Bypasses
Reading time: 5 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
Word Sandbox bypass via Launch Agents
यह एप्लिकेशन com.apple.security.temporary-exception.sbpl
अधिकार का उपयोग करके कस्टम सैंडबॉक्स का उपयोग करता है और यह कस्टम सैंडबॉक्स किसी भी स्थान पर फ़ाइलें लिखने की अनुमति देता है जब तक फ़ाइल का नाम ~$
से शुरू होता है: (require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))
इसलिए, बचने के लिए plist
LaunchAgent को ~/Library/LaunchAgents/~$escape.plist
में लिखना आसान था।
Word Sandbox bypass via Login Items and zip
याद रखें कि पहले के बचाव से, Word किसी भी फ़ाइल को लिख सकता है जिसका नाम ~$
से शुरू होता है, हालांकि पिछले कमजोरियों के पैच के बाद /Library/Application Scripts
या /Library/LaunchAgents
में लिखना संभव नहीं था।
यह पता चला कि सैंडबॉक्स के भीतर एक Login Item (ऐप्स जो उपयोगकर्ता के लॉगिन करने पर निष्पादित होंगे) बनाना संभव है। हालाँकि, ये ऐप्स तब तक निष्पादित नहीं होंगे जब तक कि वे नोटराइज्ड न हों और इसमें args जोड़ना संभव नहीं है (इसलिए आप केवल bash
का उपयोग करके एक रिवर्स शेल नहीं चला सकते)।
पिछले सैंडबॉक्स बायपास से, Microsoft ने ~/Library/LaunchAgents
में फ़ाइलें लिखने का विकल्प अक्षम कर दिया। हालाँकि, यह पता चला कि यदि आप Login Item के रूप में एक zip फ़ाइल रखते हैं तो Archive Utility
इसे उसके वर्तमान स्थान पर unzip कर देगा। इसलिए, चूंकि डिफ़ॉल्ट रूप से ~/Library
से LaunchAgents
फ़ोल्डर नहीं बनाया गया है, इसलिए LaunchAgents/~$escape.plist
में एक plist को zip करना और ~/Library
में zip फ़ाइल को रखना संभव था ताकि जब इसे decompress किया जाए तो यह स्थायी गंतव्य तक पहुँच सके।
Word Sandbox bypass via Login Items and .zshenv
(याद रखें कि पहले के बचाव से, Word किसी भी फ़ाइल को लिख सकता है जिसका नाम ~$
से शुरू होता है)।
हालाँकि, पिछले तकनीक में एक सीमा थी, यदि फ़ोल्डर ~/Library/LaunchAgents
मौजूद है क्योंकि कुछ अन्य सॉफ़्टवेयर ने इसे बनाया है, तो यह विफल हो जाएगा। इसलिए इसके लिए एक अलग Login Items श्रृंखला का पता लगाया गया।
एक हमलावर फ़ाइलें .bash_profile
और .zshenv
बना सकता है जिसमें निष्पादित करने के लिए पेलोड हो और फिर उन्हें zip कर सकता है और शिकार उपयोगकर्ता फ़ोल्डर में zip लिख सकता है: ~/~$escape.zip
।
फिर, zip फ़ाइल को Login Items में जोड़ें और फिर Terminal
ऐप। जब उपयोगकर्ता फिर से लॉगिन करता है, तो zip फ़ाइल उपयोगकर्ता फ़ाइल में अनजिप हो जाएगी, .bash_profile
और .zshenv
को ओवरराइट कर देगी और इसलिए, टर्मिनल इनमें से एक फ़ाइल को निष्पादित करेगा (इस पर निर्भर करता है कि bash या zsh का उपयोग किया गया है)।
Word Sandbox Bypass with Open and env variables
सैंडबॉक्स किए गए प्रक्रियाओं से अन्य प्रक्रियाओं को open
उपयोगिता का उपयोग करके बुलाना अभी भी संभव है। इसके अलावा, ये प्रक्रियाएँ अपने स्वयं के सैंडबॉक्स के भीतर चलेंगी।
यह पता चला कि open उपयोगिता में --env
विकल्प है जिससे एक ऐप को विशिष्ट env वेरिएबल्स के साथ चलाया जा सकता है। इसलिए, यह संभव था कि सैंडबॉक्स के भीतर एक फ़ोल्डर में .zshenv
फ़ाइल बनाई जाए और open
का उपयोग --env
के साथ HOME
वेरिएबल को उस फ़ोल्डर में सेट किया जाए, जिससे Terminal
ऐप खोला जाए, जो .zshenv
फ़ाइल को निष्पादित करेगा (किसी कारण से __OSINSTALL_ENVIROMENT
वेरिएबल को सेट करना भी आवश्यक था)।
Word Sandbox Bypass with Open and stdin
open
उपयोगिता ने --stdin
पैरामीटर का भी समर्थन किया (और पिछले बायपास के बाद --env
का उपयोग करना संभव नहीं था)।
बात यह है कि भले ही python
Apple द्वारा साइन किया गया हो, यह quarantine
विशेषता वाली स्क्रिप्ट को निष्पादित नहीं करेगा। हालाँकि, इसे stdin से एक स्क्रिप्ट पास करना संभव था ताकि यह जांच न करे कि यह क्वारंटाइन में था या नहीं:
- एक
~$exploit.py
फ़ाइल छोड़ें जिसमें मनमाने Python कमांड हों। - open
–stdin='~$exploit.py' -a Python
चलाएँ, जो Python ऐप को हमारे छोड़े गए फ़ाइल के साथ उसके मानक इनपुट के रूप में चलाता है। Python खुशी-खुशी हमारे कोड को चलाता है, और चूंकि यह launchd का एक चाइल्ड प्रोसेस है, यह Word के सैंडबॉक्स नियमों से बंधा नहीं है।
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।