
Chromium कमजोरियों को विश्वसनीय, क्रॉस-प्लेटफ़ॉर्म, फुल-चेन एक्सप्लॉइट में बदलने के लिए टूलकिट
क्रोमियम कमज़ोरियों को विश्वसनीय, क्रॉस-प्लेटफ़ॉर्म, फुल-चेन एक्सप्लॉइट्स में बदलने के लिए एक टूलकिट।
यह प्रोजेक्ट शक्तिशाली हेल्पर स्क्रिप्ट्स का एक सेट प्रदान करता है, लेकिन इसके लिए आवश्यक है कि आप अपनी स्वयं की कमज़ोरियाँ लाएँ। न्यूनतम एक्सप्लॉइटेशन प्रिमिटिव्स लागू करने की ज़िम्मेदारी आपकी है, और बाकी सब कुछ टूलकिट संभालता है।
एक कस्टम एक्सप्लॉइट चेन main.js स्क्रिप्ट फ़ाइल पर निर्भर करती है, जो आपको टूलकिट की हेल्पर स्क्रिप्ट्स के साथ अपनी कमज़ोरियों को चुनिंदा रूप से शामिल करने की सुविधा देती है:
// Exploit settings
let loglevel = 5;
let run_in_worker = false;
// Exploit chain
async function main() {
// Common helpers
await include("kit/common/convert.js");
await include("kit/common/dom.js");
await include("kit/common/stability.js");
await include("kit/common/v8-utils.js");
await include("kit/common/versions.js");
await include("kit/common/wasm-module-builder.js");
// Symbols database for your exploit chain
await include("vulns/symbols.js");
// Early fingerprinting
await include("kit/fingerprint/d8.js");
await include("kit/fingerprint/useragent.js");
// Your initial V8 memory corruption
// This should craft addrOf() & fakeObj() primitives
await include("vulns/memcor/your-code.js");
// Bootstrap stage-2 primitives & gain memory read/write inside the V8 SBX
await include("kit/v8/cage.js");
// Your V8 sandbox escape
// This should craft arbRead() & arbWrite() primitives AND leak some pointers
await include("vulns/v8sbx/your-code.js");
// Utils to manipulate the renderer memory
await include("kit/v8/memory.js");
// Achieve code execution (automatically select the best method based on the leaked pointers)
await include("kit/v8/rwx/egghunt.js");
await include("kit/v8/rwx/isolate.js");
await include("kit/v8/rwx/partitionalloc.js");
await include("kit/v8/rwx/wasmrwx.js");
await include("kit/v8/rwx.js");
// Bootstrap stage-3 primitives & provide generic shellcodes
await include("kit/shellcodes/x64.js");
await include("kit/shellcodes/x64-win.js");
await include("kit/shellcodes/x64-linux.js");
// Precise fingerprinting
await include("kit/fingerprint/win.js");
await include("kit/fingerprint/linux.js");
// Enable MojoJS and other protected flags
await include("kit/renderer/mojo.js");
// Your sandbox escape
await include("vulns/sbx/your-code.js");
}
/*
Other customizable features are implemented here
(logging, clean exit handling, exploit reloading, scripts execution context...)
...
*/
उपलब्ध सुविधाओं का व्यापक अवलोकन के लिए दस्तावेज़ीकरण पढ़ें।
index.html में एक परीक्षण वेबपेज प्रदान किया गया है।
यह लॉग प्रिंट करता है, क्रैश संभालता है और मुख्य स्क्रिप्ट को प्रोजेक्ट के सबफ़ोल्डर्स से फ़ाइलें शामिल करने की अनुमति देता है।
आप इसे python3 server.py का उपयोग करके स्थानीय रूप से चला सकते हैं, फिर http://localhost:8000 पर ब्राउज़ करें।
monitor.html वेबपेज एक्सप्लॉइट्स की दूरस्थ रूप से निगरानी और परीक्षण के लिए एक सरल इंटरफ़ेस प्रदान करता है।
यह दूरस्थ होस्ट, एक्सप्लॉइट लॉग और त्रुटि आँकड़े प्रदर्शित करता है।
यह दूरस्थ होस्ट्स को कमांड भेजने की भी अनुमति देता है, जिसमें एक्सप्लॉइट रीलोड और एक स्ट्रेस-टेस्ट मोड शामिल हैं।
प्रारंभिक एक्सप्लॉइट डेवलपमेंट के लिए, आप मुख्य एक्सप्लॉइट स्क्रिप्ट को d8 में भी चला सकते हैं: d8.exe main.js।
एक बार एक्सप्लॉइट चेन तैयार हो जाने पर, विभिन्न कार्यों को स्वचालित करने के लिए टूल्स प्रदान किए जाते हैं:
build.py एक्सप्लॉइट को एक सिंगल स्क्रिप्ट में बनाने के लिएdownload.py विशिष्ट Google Chrome रिलीज़ डाउनलोड करने के लिएsymbols.py स्वचालित PDB पार्सिंग के लिएटूलकिट की विशेषताओं को प्रदर्शित करने के लिए सार्वजनिक कमज़ोरियों के कुछ एक्सप्लॉइट्स प्रदान किए गए हैं:
| Vulnerability | Affected versions (Chrome Stable) | Details |
|---|---|---|
| CVE-2024-11114 | 94 - 130 (Windows only) | Mouse can be controlled using the startDragging() Mojo IPC interface to run downloaded files and escape the sandbox |
एक प्रदर्शन एक्सप्लॉइट चेन डिफ़ॉल्ट main.js में प्रदान की गई है। यह निम्नलिखित कमज़ोरियों पर निर्भर करती है:
यह एक्सप्लॉइट चेन किसी भी Chrome 130 स्टेबल और 130.0.6723.160 तक के विस्तृत रिलीज़ पर आउट-ऑफ़-द-बॉक्स काम करती है। सिम्बल्स जोड़कर इसे आसानी से M128, M129 और M131 (< 131.0.6778.264) तक बढ़ाया जा सकता है।
एक्सप्लॉइट्स का परीक्षण मॉनिटरिंग वेबपेज से दूरस्थ रूप से भी किया जा सकता है:

यह टूलकिट पूरी तरह से सुरक्षा अनुसंधान के लिए है। अपने आप में, यह क्रोमियम प्रोजेक्ट में अघोषित कमज़ोरियों का शोषण करने के लिए कोई सामग्री प्रदान नहीं करता है। दुर्भावनापूर्ण उद्देश्यों के लिए इस टूलकिट का उपयोग पूरी तरह से आपकी ज़िम्मेदारी है।
सार्वजनिक रिलीज़ GNU AGPLv3 की शर्तों के तहत लाइसेंस प्राप्त हैं। विशेष रूप से, इन शर्तों के तहत इस टूलकिट पर आधारित निजी एक्सप्लॉइट्स का व्यापार करने की अनुमति नहीं है। पहली सार्वजनिक रिलीज़ से पहले किए गए पिछले कमिट बिना लाइसेंस के हो सकते हैं और डिफ़ॉल्ट कॉपीराइट कानूनों द्वारा संरक्षित हैं।
इस प्रोजेक्ट में तृतीय-पक्ष लाइसेंस प्राप्त घटक शामिल हैं: विवरण के लिए यहाँ देखें।
| Vulnerability | Affected versions (Chrome Stable) | Details |
|---|
| CVE-2024-7971 | <= 127 | WASM type confusion during ParallelMove in Liftoff |
| CVE-2025-0291 | 128 - 131 (< 131.0.6778.264, vulnerable component shipped via Finch) | Type confusion in Turboshaft's WasmGCTypeAnalyzer on single-block loops |
| CVE-2025-2135 | 133 - 134 (< 134.0.6998.88) | Type confusion on aliasing objects in TransitionElementsKindOrCheckMap |
| CVE-2025-5419 | <= 136 (Finch kill-switch from 133) | Out-of-bounds memory access because of invalid store-store elimination on dynamic indexes |
| Vulnerability | Affected versions (Chrome Stable) | Details |
|---|
| 352689356 | <= 131 | WASM function signature confusion in non-inlined TurboFan call_ref |
| 379140430 | <= 132 | Signature type confusion in WasmToJsWrapper tier-up with in-sandbox Tuple2 corruption |
| 395659804 | <= 134 | Arbitrary code execution via OSR DeoptimizationData confusion |
| 421403261 | 134 - 137 (< 137.0.7151.119, x64 only) | Signature hash i32/i64 collision in Liftoff |