Install Burp Certificate
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2Fpentest.eu%2FRENDER_WebSec_10fps_21sec_9MB_29042024.gif&width=768&dpr=4&quality=100&sign=bc0743d1&sv=1)
On a Virtual Machine
सबसे पहले आपको Burp से Der प्रमाणपत्र डाउनलोड करने की आवश्यकता है। आप इसे Proxy --> Options --> Import / Export CA certificate में कर सकते हैं।
Der प्रारूप में प्रमाणपत्र निर्यात करें और इसे Android द्वारा समझे जाने योग्य रूप में परिवर्तित करें। ध्यान दें कि AVD में Android मशीन पर burp प्रमाणपत्र कॉन्फ़िगर करने के लिए आपको इस मशीन को -writable-system
विकल्प के साथ चलाना होगा।
उदाहरण के लिए, आप इसे इस तरह चला सकते हैं:
फिर, बर्प के प्रमाणपत्र को कॉन्फ़िगर करने के लिए:
एक बार जब मशीन रीबूट करना समाप्त कर दे तो बर्प प्रमाणपत्र इसका उपयोग में होगा!
मैजिक का उपयोग करना
यदि आपने मैजिक के साथ अपने डिवाइस को रूट किया है (शायद एक एमुलेटर), और आप बर्प प्रमाणपत्र स्थापित करने के लिए पिछले चरणों का पालन नहीं कर सकते क्योंकि फाइल सिस्टम केवल पढ़ने के लिए है और आप इसे लिखने योग्य फिर से माउंट नहीं कर सकते, तो एक और तरीका है।
इस वीडियो में समझाया गया है कि आपको:
एक CA प्रमाणपत्र स्थापित करें: बस खींचें और छोड़ें DER बर्प प्रमाणपत्र को
.crt
एक्सटेंशन में बदलते हुए मोबाइल में ताकि यह डाउनलोड फ़ोल्डर में संग्रहीत हो जाए औरInstall a certificate
->CA certificate
पर जाएं।
यह जांचें कि प्रमाणपत्र सही ढंग से संग्रहीत किया गया है
Trusted credentials
->USER
पर जाकर।
इसे सिस्टम द्वारा विश्वसनीय बनाएं: मैजिक मॉड्यूल MagiskTrustUserCerts (एक .zip फ़ाइल) डाउनलोड करें, इसे फोन में खींचें और छोड़ें, फोन में मैजिक ऐप पर जाएं और
Modules
सेक्शन में,Install from storage
पर क्लिक करें,.zip
मॉड्यूल का चयन करें और एक बार स्थापित होने पर रीबूट करें:
रीबूट करने के बाद,
Trusted credentials
->SYSTEM
पर जाएं और जांचें कि Postswigger प्रमाणपत्र वहां है।
एंड्रॉइड 14 के बाद
हाल के एंड्रॉइड 14 रिलीज़ में, सिस्टम-विश्वसनीय प्रमाणपत्र प्राधिकरण (CA) प्रमाणपत्रों के प्रबंधन में एक महत्वपूर्ण बदलाव देखा गया है। पहले, ये प्रमाणपत्र /system/etc/security/cacerts/
में housed थे, जिन्हें रूट विशेषाधिकार वाले उपयोगकर्ताओं द्वारा एक्सेस और संशोधित किया जा सकता था, जिससे सिस्टम में तुरंत लागू किया जा सकता था। हालाँकि, एंड्रॉइड 14 के साथ, संग्रहण स्थान को /apex/com.android.conscrypt/cacerts
में स्थानांतरित कर दिया गया है, जो /apex
पथ के भीतर एक निर्देशिका है, जो स्वाभाविक रूप से अपरिवर्तनीय है।
APEX cacerts पथ को लिखने योग्य के रूप में फिर से माउंट करने के प्रयास विफल होते हैं, क्योंकि सिस्टम ऐसी संचालन की अनुमति नहीं देता। अस्थायी फ़ाइल प्रणाली (tmpfs) के साथ निर्देशिका को अनमाउंट या ओवरले करने के प्रयास भी अपरिवर्तनीयता को नहीं रोकते; अनुप्रयोग मूल प्रमाणपत्र डेटा तक पहुंचना जारी रखते हैं चाहे फ़ाइल सिस्टम स्तर पर परिवर्तन हों या न हों। यह लचीलापन /apex
माउंट के PRIVATE प्रोपगेशन के साथ कॉन्फ़िगर होने के कारण है, यह सुनिश्चित करता है कि /apex
निर्देशिका के भीतर कोई भी संशोधन अन्य प्रक्रियाओं को प्रभावित नहीं करता।
एंड्रॉइड का प्रारंभिककरण init
प्रक्रिया द्वारा होता है, जो ऑपरेटिंग सिस्टम शुरू करने पर Zygote प्रक्रिया को भी प्रारंभ करता है। यह प्रक्रिया नए माउंट नामस्थान के साथ अनुप्रयोग प्रक्रियाओं को लॉन्च करने के लिए जिम्मेदार है जिसमें एक निजी /apex
माउंट शामिल है, इस प्रकार इस निर्देशिका में परिवर्तनों को अन्य प्रक्रियाओं से अलग करता है।
फिर भी, उन लोगों के लिए एक समाधान है जिन्हें /apex
निर्देशिका के भीतर सिस्टम-विश्वसनीय CA प्रमाणपत्रों को संशोधित करने की आवश्यकता है। इसमें /apex
को मैन्युअल रूप से फिर से माउंट करना शामिल है ताकि PRIVATE प्रोपगेशन को हटा दिया जाए, जिससे इसे लिखने योग्य बनाया जा सके। प्रक्रिया में /apex/com.android.conscrypt
की सामग्री को एक अन्य स्थान पर कॉपी करना, पढ़ने के लिए केवल प्रतिबंध को समाप्त करने के लिए /apex/com.android.conscrypt
निर्देशिका को अनमाउंट करना, और फिर सामग्री को /apex
के भीतर उनके मूल स्थान पर पुनर्स्थापित करना शामिल है। इस दृष्टिकोण के लिए प्रणाली क्रैश से बचने के लिए त्वरित कार्रवाई की आवश्यकता होती है। इन परिवर्तनों के प्रणाली-व्यापी अनुप्रयोग को सुनिश्चित करने के लिए, system_server
को पुनरारंभ करने की सिफारिश की जाती है, जो प्रभावी रूप से सभी अनुप्रयोगों को पुनरारंभ करता है और प्रणाली को एक सुसंगत स्थिति में लाता है।
Bind-mounting through NSEnter
एक लिखने योग्य निर्देशिका सेट करना: प्रारंभ में, एक लिखने योग्य निर्देशिका स्थापित की जाती है जो मौजूदा गैर-APEX सिस्टम प्रमाणपत्र निर्देशिका पर
tmpfs
को माउंट करके बनाई जाती है। यह निम्नलिखित कमांड के साथ प्राप्त किया जाता है:
CA प्रमाणपत्रों की तैयारी: लिखने योग्य निर्देशिका की सेटअप के बाद, CA प्रमाणपत्रों को इस निर्देशिका में कॉपी किया जाना चाहिए। इसमें
/apex/com.android.conscrypt/cacerts/
से डिफ़ॉल्ट प्रमाणपत्रों को कॉपी करना शामिल हो सकता है। इन प्रमाणपत्रों की अनुमतियों और SELinux लेबल को उचित रूप से समायोजित करना आवश्यक है।Zygote के लिए बाइंड माउंटिंग:
nsenter
का उपयोग करते हुए, कोई Zygote के माउंट नामस्थान में प्रवेश करता है। Zygote, जो Android अनुप्रयोगों को लॉन्च करने के लिए जिम्मेदार प्रक्रिया है, इस कदम की आवश्यकता होती है ताकि सभी अनुप्रयोग जो आगे शुरू किए जाते हैं, नए कॉन्फ़िगर किए गए CA प्रमाणपत्रों का उपयोग करें। उपयोग की जाने वाली कमांड है:
यह सुनिश्चित करता है कि हर नया ऐप जो शुरू किया जाएगा, अपडेटेड CA सर्टिफिकेट सेटअप का पालन करेगा।
चल रहे ऐप्स पर परिवर्तन लागू करना: पहले से चल रहे अनुप्रयोगों पर परिवर्तन लागू करने के लिए,
nsenter
का फिर से उपयोग किया जाता है ताकि प्रत्येक ऐप के नामस्थान में व्यक्तिगत रूप से प्रवेश किया जा सके और एक समान बाइंड माउंट किया जा सके। आवश्यक कमांड है:
वैकल्पिक दृष्टिकोण - सॉफ्ट रीबूट: एक वैकल्पिक विधि
init
प्रक्रिया (PID 1) पर बाइंड माउंट करने के बाद ऑपरेटिंग सिस्टम का सॉफ्ट रीबूट करना शामिल है, जिसमेंstop && start
कमांड का उपयोग किया जाता है। यह दृष्टिकोण सभी नेमस्पेस में परिवर्तनों को फैलाएगा, प्रत्येक चल रहे ऐप को व्यक्तिगत रूप से संबोधित करने की आवश्यकता से बचते हुए। हालांकि, इस विधि को आमतौर पर रीबूट करने की असुविधा के कारण कम पसंद किया जाता है।
संदर्भ
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2Fpentest.eu%2FRENDER_WebSec_10fps_21sec_9MB_29042024.gif&width=768&dpr=4&quality=100&sign=bc0743d1&sv=1)
Last updated