Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
Log in
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Browser-Pwning- — Chrome pwning और v8 pwning के साथ शुरुआत करने के लिए एक उचित, सुव्यवस्थित दस्तावेज़ीकरण | Kitploit
उपकरण/GitHubGitHub/spiralbl0ck/browser-pwning-
भेद्यता विश्लेषणशोषणरिवर्स इंजीनियरिंगवेब सुरक्षालर्निंग और शिक्षाबाइनरी शोषण
GitHubspiralbl0ck/browser-pwning-

Browser-Pwning-

Chrome pwning और v8 pwning के साथ शुरुआत करने के लिए एक उचित, सुव्यवस्थित दस्तावेज़ीकरण

रिपॉजिटरी देखें
19719634 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Browser-Pwning

Chrome pwning और v8 pwning के साथ शुरुआत करने के लिए एक उचित, सुव्यवस्थित दस्तावेज़

दस्तावेज़ की संरचना

यह दस्तावेज़ कैसे व्यवस्थित है

  1. प्रेरणा
  2. वास्तविक अध्ययन सामग्री

प्रेरणा

ब्राउज़र आज की सबसे अधिक उपयोग होने वाली तकनीकों में से एक हैं। हर रेडी-मेड कंप्यूटर पर, अगर हम बस प्लग एंड प्ले करें, तो हमें एक ब्राउज़र इंस्टॉल दिखेगा। इसीलिए एक हमलावर के दृष्टिकोण और थ्रेट मॉडल के दृष्टिकोण से यह बहुत फायदेमंद है अगर हमलावर एक दुर्भावनापूर्ण पेज के माध्यम से ब्राउज़र से समझौता करने में सक्षम हो। उपरोक्त तर्कों को देखते हुए मैंने Google के Javascript Engine, विशेष रूप से v8 का अध्ययन करना चुना।

v8 प्रोजेक्ट की विशाल प्रकृति को देखते हुए, मैंने इंटरप्रेटर, अर्थात् d8 को शुरुआती बिंदु के रूप में चुना। हालाँकि d8 पर पहले से ही काफी शोध हो चुका है, हमें उम्मीद है कि कम से कम एक बग मिल जाएगा और अगर नहीं मिलता है, तो हम ब्राउज़र exploitation पर शोध आगे बढ़ाने में सक्षम होंगे, क्योंकि v8 ब्राउज़र exploitation में उपयोग की जाने वाली बुनियादी exploit development रणनीतियों के लिए प्रवेश क्षेत्र प्रदान करता है।

v8 को टारगेट चुनने का एक और कारण यह है कि यह कई ब्राउज़रों में उपयोग होता है।

अगर हम हुड के नीचे देखें, तो हम देख सकते हैं कि यह इंजन MicrosoftEdge में भी उपयोग होता है, इसलिए कई bug bounty पुरस्कार पाने का मौका है। अंतर्निहित ऑपरेटिंग सिस्टम के लिए, शोधकर्ता windows और linux का मिश्रण उपयोग करेगा, क्योंकि shell प्राप्त करने के मामले में कोई प्रतिबंध नहीं है, क्योंकि v8 बग wasm पेजों के माध्यम से कोड निष्पादन की अनुमति देते हैं और यह किसी विशेष प्लेटफ़ॉर्म से बंधा नहीं है।

दुर्भाग्य से, जबकि v8 में एक शोषित बग के परिणामस्वरूप कोड निष्पादन होगा, हम सैंडबॉक्स के कारण कोई कोड निष्पादित नहीं कर पाएंगे, और इस तरह हमें renderer के संदर्भ में कोड निष्पादन मिलेगा, जो हमें मशीन पर कोड निष्पादित करने की अनुमति नहीं देगा। उसके लिए हमें सैंडबॉक्स के लिए एक और exploit की आवश्यकता होगी, इस प्रकार सिस्टम को exploit करने के लिए हमें एक पूरी chain की आवश्यकता होगी।

और इस प्रकार हम ब्राउज़र हैकिंग के साथ शुरुआत करने के लिए निम्नलिखित लक्ष्यों को परिभाषित करते हैं:

  • V8 इंजन द्वारा उपयोग की जाने वाली आंतरिक संरचनाओं को सीखें, मैप करें, मास्टर करें और Chrome आर्किटेक्चर के मुख्य बिंदु
  • ब्राउज़र exploitation के लिए आवश्यक बुनियादी प्रक्रियाओं को सीखें और मास्टर करें

V8 इंजन द्वारा उपयोग की जाने वाली आंतरिक संरचनाओं को सीखें, मैप करें, मास्टर करें और Chrome आर्किटेक्चर के मुख्य बिंदु

परियोजना के पहले चरण में Chrome आर्किटेक्चर के बारे में और यह जानने की आवश्यकता है कि प्रत्येक घटक एक-दूसरे के साथ कैसे इंटरैक्ट करता है। इसे बेहतर ढंग से समझने के लिए हमें Chromium प्रोजेक्ट को कई उप-घटकों में विभाजित करने की आवश्यकता है, ताकि हम सब कुछ अलग कर सकें और ठीक से विश्लेषण कर सकें। अधिक सटीक रूप से, निम्नलिखित प्रत्येक घटक कितने उप-घटकों में टूटता है:

  • V8 आर्किटेक्चर
  • Chromium आर्किटेक्चर
  • Blink आर्किटेक्चर

अब पहले कदम के लिए सबसे तार्किक कदम chromium आर्किटेक्चर को समझना है। तो ठीक है, हम ब्राउज़र को exploit करना चाहते हैं, लेकिन जब हम पहली बार ब्राउज़र शुरू करते हैं तो क्या होता है? chromium executable पर क्लिक करने के बाद, executable कुछ प्रक्रियाएँ शुरू करता है।

उनका क्रम और नाम इस प्रकार है:

पहली प्रक्रिया content process कहलाती है। यह प्रक्रिया क्या करती है?

  • इसे startup process के रूप में जाना जाता है।
  • यह main process भी है
  • यह वास्तविक main process को शुरू करने के लिए ज़िम्मेदार है, जिसे browser process कहा जाता है

अब जब हम संक्षेप में जान गए हैं कि यह क्या करता है, तो इस पर अधिक गहराई से जाने का समय है:

  • कम से कम Windows पर Chromium जिस तरह से काम करता है, वह यह है कि वह फ़ाइलों को एक dll में संकलित करता है, और उसके बाद उसे मेमोरी में लोड करता है। इसलिए Chromium ब्राउज़र का मुख्य लॉजिक chromium.dll में होता है।
    यह कोड द्वारा भी पुष्टि की गई है
    2।
    यह chrome_exe_main_win.cc से लिया गया है और यदि आप पूरा कोड पढ़ने के लिए उत्सुक हैं, तो यह chromium/src/chrome/app पर स्थित है। ठीक है, निष्पादन के साथ आगे बढ़ते हुए हम देख सकते हैं कि यह dll लोडेड क्लास को कॉल करने के लिए MakeMainDllLoader() को कॉल करता है, उसके बाद यह "loader" लॉन्च करता है, यानी यह chrome.dll लोड करता है और यदि आवश्यक हो तो आवश्यक command lines के साथ इसे पुनः आरंभ करता है। Loader का आगे विश्लेषण करने के लिए हमें इसका कोड समझने की आवश्यकता है, जो उसी निर्देशिका में mail_dll_loader_win.cc फ़ाइल में है। फ़ाइल के अंत तक स्क्रॉल करने पर हम MakeMainDllLoader का कॉल देख सकते हैं, जो आपके पास मौजूद संस्करण के आधार पर ChromeDllLoader या ChromiumDllLoader को कॉल करता है।
    3
    हम देख सकते हैं कि ChromiumDllLoader एक class है जो MainDllLoader से inherit करती है। हम definition से देख सकते हैं कि यह class केवल cmdline और process type को दिए गए arguments के आधार पर dll लोड करती है।
    6।
    Launch method का विश्लेषण करके हम कुछ चीज़ें समझ सकते हैं जो chrome.dll शुरू होने से पहले होती हैं: हम इस टिप्पणी से समझ सकते हैं कि "// Launching is a matter of loading the right dll and calling the entry point. // Derived classes can add custom code in the OnBeforeLaunch callback." chrome लॉन्च करना कुछ dll लोड करने का मामला है जो वास्तव में काम करते हैं। दूसरे, यह command line में दिए गए arguments लेता है और आगे sandbox services को initialize करता है।
    q।
    सबसे पहले यह जाँचता है कि क्या sandbox initialization को कॉल करने वाला browser है, फिर यह जाँचता है कि जिस प्रक्रिया ने sandbox के initialization को कॉल किया था, उसे cloud print service के रूप में बुलाया गया था या नहीं। यह यह भी जाँचता है कि क्या binary को --no-sandbox पास किया गया था, जो मूल रूप से binary को बताता है कि sandbox में न चलें। यह जाँचता है कि क्या इनमें से कोई भी सेट था और यदि कोई सत्य है, तो यह sandbox को संबंधित विकल्पों के साथ कॉल करता है। फिर अंत में हम वहाँ पहुँचते हैं
    8
    जो हमारे लिए रुचि का विषय है, यह chrome_main को कॉल करने के लिए wrapper को दर्शाता है।
टूल डाउनलोड करें