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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
spd_flasher — CVE-2022-38694 हार्डन्ड एक्सप्लॉइट - Unisoc डिवाइसों के लिए RP2350 USB होस्ट ऑटो फ्लैशर | Kitploit
उपकरण/GitHubGitHub/leochen-coremind/spd_flasher
एम्बेडेड सिस्टम सुरक्षाशोषणरिवर्स इंजीनियरिंगहार्डवेयर हैकिंगमोबाइल सुरक्षालर्निंग और शिक्षा
GitHubleochen-coremind/spd_flasher

spd_flasher

CVE-2022-38694 हार्डन्ड एक्सप्लॉइट - Unisoc डिवाइसों के लिए RP2350 USB होस्ट ऑटो फ्लैशर

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

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

सभी देखें →

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

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

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

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

CVE-2022-38694 हार्डन्ड एक्सप्लॉइट — RP2350 USB होस्ट ऑटो फ्लैशर

中文版 README

ट्यूटोरियल

  • UDX710 बूट चेन रिवर्स इंजीनियरिंग और RP2350 हार्डन्ड बूट ट्यूटोरियल

CVE-2022-38694 Unisoc BootROM भेद्यता का दोहन Raspberry Pi RP2350 USB होस्ट के माध्यम से किया गया है, ताकि बूट के समय स्वचालित रूप से SPL लोडर भेजा जा सके और मनमाना u-boot प्रारंभ किया जा सके।

एक्सप्लॉइट चेन — जिसके लिए मूल रूप से एक PC + spd_dump की आवश्यकता थी — अब RP2350 माइक्रोकंट्रोलर पर स्थानांतरित हो गई है। डिवाइस प्लग इन करें, स्वचालित रूप से फ्लैश करें, निरंतर फ्लैशिंग का समर्थन करता है।

यह कैसे काम करता है

CVE-2022-38694 Unisoc BootROM में एक बार की सिग्नेचर सत्यापन बायपास है। एक विशिष्ट मेमोरी पते पर exec स्टब भेजने से, रिटर्न एड्रेस ओवरराइट हो जाता है, सिग्नेचर जाँचें बायपास हो जाती हैं और BootROM को मनमाना FDL1 स्वीकार करने और निष्पादित करने की अनुमति मिलती है।

मुख्य बिंदु: FDL1 और SPL लोडर एक ही लोड एड्रेस (0x28007000) साझा करते हैं, इसलिए FDL1 के स्थान पर एक पैच्ड SPL लोडर भेजा जा सकता है, जिससे मनमाना u-boot बूट होता है।

हार्डनिंग प्रक्रिया (दो चरण)

चरण 1: प्रारंभिक अनलॉक (PC + spd_dump)

पहली बार सेटअप के लिए spd_dump वाले PC की आवश्यकता होती है:

root@kitploit:~
┌──────────────────────────────────────────────────────────────────────────┐
│                    Stage 1: PC-side Initial Unlock                       │
├──────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  Step 1: Exploit CVE-2022-38694 to boot patched SPL                     │
│  ┌────────────┐    ┌────────────┐    ┌─────────────────┐                │
│  │ Exec Stub  │───►│ spl-unlock │───►│ Device boots    │                │
│  │ @0x3F28    │    │ @0x28007000│    │ into DL mode    │                │
│  └────────────┘    └────────────┘    └────────┬────────┘                │
│                                               │                          │
│  Step 2: Send patched FDL2 via spd_dump, flash u-boot without           │
│          secure boot, erase splloader                                    │
│                                               │                          │
│  ┌─────────────────┐    ┌──────────────────────▼───────────┐            │
│  │ Send fdl2-dl    │───►│ Write u-boot (secure boot removed│            │
│  │ (patched FDL2)  │    │ + Erase splloader partition)     │            │
│  └─────────────────┘    └──────────────────────────────────┘            │
│                                                                          │
│  ★ After erasing splloader, device enters BootROM DL mode on every boot │
└──────────────────────────────────────────────────────────────────────────┘

चरण:

  1. CVE-2022-38694 का उपयोग करके spl-unlock.bin भेजें और डिवाइस को बूट करें
  2. पैच्ड fdl2-dl.bin भेजें (सिक्योर बूट सत्यापन हटाए गए FDL2)
  3. uboot पार्टीशन में सिक्योर बूट रहित u-boot लिखने के लिए FDL2 का उपयोग करें
  4. splloader पार्टीशन मिटाएँ → डिवाइस सामान्य बूट खो देता है, हर पावर-ऑन पर BootROM DL मोड में प्रवेश करता है

चरण 2: हार्डन्ड संचालन (RP2350 ऑटो फ्लैश)

splloader मिटाए जाने के बाद, डिवाइस हर पावर-ऑन पर BootROM डाउनलोड मोड में प्रवेश करता है। RP2350 USB होस्ट स्वचालित रूप से एक्सप्लॉइट चेन को संभालता है:

root@kitploit:~
┌──────────────────────────────────────────────────────────────────────────┐
│                   Stage 2: RP2350 Automated Boot                        │
├──────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  Power on → no splloader → BootROM download mode                        │
│                                                                          │
│  ┌─────────┐    ┌────────────┐    ┌─────────────┐    ┌──────────────┐  │
│  │ BootROM │───►│ Exec Stub  │───►│ spl-unlock  │───►│ U-Boot       │  │
│  │ Handshk │    │ Bypass sig │    │ as FDL1     │    │ (no secboot) │  │
│  └─────────┘    └────────────┘    └─────────────┘    │ Boot OK ✓    │  │
│                                                       └──────────────┘  │
│                                                                          │
│  ★ Fully automatic. Unplug → auto-reset → ready for next device.       │
└──────────────────────────────────────────────────────────────────────────┘

splloader क्यों मिटाएँ?

  • सामान्य बूट चेन: BootROM → SPL Loader → u-boot → System
  • SPL लोडर u-boot के सिग्नेचर की जाँच करता है — यह संशोधित u-boot को अस्वीकार कर देगा
  • splloader मिटाए जाने पर, BootROM को SPL नहीं मिल पाता → यह डाउनलोड मोड में चला जाता है
  • CVE-2022-38694 spl-unlock भेजता है (सिग्नेचर जाँच को स्किप करता है) → सिक्योर बूट के बिना सफलतापूर्वक u-boot बूट करता है

एक्सप्लॉइट चेन (RP2350 निष्पादन)

root@kitploit:~
┌─────────────┐     ┌──────────────────┐     ┌───────────────────┐     ┌──────────────┐
│  BootROM    │     │  Exec Stub       │     │  SPL Loader       │     │  U-Boot      │
│  Handshake  │ ──► │  @0x3F28 (136B)  │ ──► │  @0x28007000      │ ──► │  Boot OK     │
│  CHECK_BAUD │     │  Bypass sig chk  │     │  Replaces FDL1    │     │              │
└─────────────┘     └──────────────────┘     └───────────────────┘     └──────────────┘
  1. BootROM हैंडशेक — CHECK_BAUD + CONNECT, BSL संचार स्थापित करें
  2. Exec स्टब भेजें — 0x3F28 पर 136 बाइट्स लोड करें, रिटर्न एड्रेस ओवरराइट करने के लिए CVE-2022-38694 का दोहन करें, सिग्नेचर सत्यापन बायपास करें
  3. SPL लोडर भेजें — FDL1 और SPL लोडर लोड एड्रेस 0x28007000 साझा करते हैं, सिग्नेचर पहले ही बायपास हो चुका है
  4. U-Boot बूट करें — spl-unlock सिग्नेचर जाँचों को स्किप करता है, सिक्योर बूट रहित u-boot बूट करता है

पूर्वापेक्षाएँ: फर्मवेयर पैच करें

इस प्रोजेक्ट में सार्वभौमिक पैच्ड फर्मवेयर शामिल नहीं है। आपको अपने डिवाइस के फर्मवेयर को स्वयं पैच करना होगा।

पैच ट्यूटोरियल

TomKing062 की Wiki देखें:

  • 🇬🇧 patch_do_cboot — SPL (अंग्रेज़ी)
  • 🇨🇳 patch_do_cboot — SPL (中文)

पैच किए जाने वाले फर्मवेयर

spl-unlock.bin को हेडर में बदलें

root@kitploit:~
xxd -i spl-unlock.bin > fdl1_data.h

कोड संदर्भों से मेल खाने के लिए fdl1_data.h में ऐरे नाम और मैक्रोज़ अपडेट करें।

समर्थित प्लेटफ़ॉर्म

यह प्रोजेक्ट वर्तमान में UDX710 exec स्टब (custom_exec_3f28.bin) का उपयोग करता है।

अन्य चिप्स के लिए अनुकूलित करने हेतु, custom_exec_data.h में exec स्टब और लोड एड्रेस बदलें:

पूर्ण समर्थन सूची: SupportList

हार्डवेयर आवश्यकताएँ

घटकविवरण
RP2350 बोर्डजैसे Raspberry Pi Pico 2
USB होस्ट केबलRP2350 USB होस्ट के लिए OTG या हार्डवेयर मॉड
टार्गेट SPD डिवाइसsplloader मिटा हुआ, पावर-ऑन पर स्वतः BootROM DL मोड में प्रवेश करता है

पिन कॉन्फ़िगरेशन

पिनकार्य
USB D+/D-टार्गेट SPD डिवाइस से कनेक्ट करें
GP4 (TX)UART डीबग आउटपुट
GP5 (RX)UART डीबग इनपुट

USB पोर्ट होस्ट संचार के लिए उपयोग किया जाता है। डीबग लॉग UART1 (GP4/GP5, 115200bps) के माध्यम से।

बिल्डिंग

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

  • Pico SDK v2.2.0+
  • CMake 3.13+
  • ARM GCC टूलचेन

बिल्ड

root@kitploit:~
cd spd_flasher
mkdir build && cd build
cmake .. -DTARGET_CHIP=rp2350
make -j$(nproc)

आउटपुट: spd_flasher.uf2 (BOOTSEL के माध्यम से ड्रैग-एंड-ड्रॉप) / spd_flasher.bin (प्रोग्रामर)

उपयोग

  1. PC पर चरण 1 पूरा करें (प्रारंभिक अनलॉक + splloader मिटाना)
  2. spd_flasher.uf2 को RP2350 पर फ्लैश करें
  3. USB होस्ट केबल के माध्यम से RP2350 को टार्गेट डिवाइस से कनेक्ट करें
  4. डिवाइस को पावर-ऑन करें → स्वचालित BootROM DL मोड → RP2350 एक्सप्लॉइट चेन चलाता है
  5. पूरा होने पर ऑटो-रीसेट, तुरंत अगला डिवाइस प्लग इन करें

RP2350 क्यों?

प्रोजेक्ट संरचना

root@kitploit:~
spd_flasher/
├── main.c               # Main program, USB Host init & device management
├── spd_protocol.c        # SPD BSL protocol (HDLC framing, state machine)
├── spd_protocol.h        # Protocol definitions
├── tusb_config.h         # TinyUSB Host configuration
├── custom_exec_data.h    # Exec Stub data (136B @0x3F28)
├── fdl1_data.h           # SPL Loader data (spl-unlock.bin @0x28007000)
├── spl-unlock.bin        # SPL Loader raw binary
├── CMakeLists.txt        # CMake build configuration
└── signing_key.pem / aes_key.bin / iv_salt.bin  # RP2350 secure boot keys

आभार

  • CVE-2022-38694 Unlock Bootloader — TomKing062
  • NCC Group Research — भेद्यता की खोज
  • Raspberry Pi Pico SDK
  • TinyUSB

अस्वीकरण

यह प्रोजेक्ट केवल सुरक्षा अनुसंधान और शैक्षिक उद्देश्यों के लिए है। उपयोगकर्ताओं को सभी लागू कानूनों और विनियमों का पालन करना होगा। लेखक इस टूल के उपयोग से होने वाली किसी भी प्रत्यक्ष या अप्रत्यक्ष क्षति के लिए कोई ज़िम्मेदारी नहीं लेता है।

लाइसेंस

यह प्रोजेक्ट GNU General Public License v3.0 के अंतर्गत लाइसेंस प्राप्त है।

टूल डाउनलोड करें
फर्मवेयरपैचआउटपुटउद्देश्य
FDL2 (u-boot/lk)सिक्योर पार्टीशन राइट जाँचों को NOP करेंfdl2-dl.binचरण 1: पार्टीशन राइट के लिए spd_dump के माध्यम से भेजा जाता है
U-Bootसिक्योर बूट हटाने के लिए do_cboot() को पैच करेंसंशोधित ubootचरण 1: डिवाइस पर लिखा जाता है, स्टॉक uboot की जगह लेता है
SPL लोडरsigncheck() और रिज़ल्ट जाँचों को NOP करेंspl-unlock.binचरण 1 और 2: CVE-2022-38694 के माध्यम से भेजा जाता है
प्लेटफ़ॉर्मexec एड्रेससंदर्भ
UDX7100x3F28यह प्रोजेक्ट (डिफ़ॉल्ट)
UMS312 / UMS5120x3EE8exec_addr_v2
UMS92300x65017F08exec_addr_v2
SC9820E / SC9832E0x4F18 / 0x4EE8CVE-2022-38694
PC + spd_dumpRP2350 हार्डन्ड
आकारPC की आवश्यकताएकल MCU
संचालनमैन्युअल कमांडपावर ऑन = चालू
निरंतरताप्रति डिवाइस मैन्युअलऑटो-रीसेट
तैनातीअसुविधाजनकप्रोडक्शन-रेडी
लागत—~$3