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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2024-56426 — CVE-2024-56426 Exynos9830 Bootrom एक्सप्लॉइट - SM-G985F | Kitploit
उपकरण/GitHubGitHub/xcracker000/cve-2024-56426
एंड्रॉइड सुरक्षाएम्बेडेड सिस्टम सुरक्षाशोषणरिवर्स इंजीनियरिंगहार्डवेयर हैकिंगमोबाइल सुरक्षाहार्डवेयर सुरक्षापेलोड डेवलपमेंटफर्मवेयर विश्लेषणबाइनरी शोषण
GitHubxcracker000/cve-2024-56426

CVE-2024-56426

3826 दिन पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

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

CVE-2024-56426 Exynos9830 Bootrom एक्सप्लॉइट - SM-G985F

रिपॉजिटरी देखें

SM-G985F / Exynos9830 बूटरोम एक्सप्लॉइट

[!CAUTION] मौजूदा कुंजी बंडल और जनरेट की गई फ़ाइलें फ़्यूज़िंग-सक्षम हैं। एक बार डिवाइस फ़्यूज़ हो जाने पर, eFuse परिवर्तन अपरिवर्तनीय है और डिवाइस को फ़्यूज़ की गई कुंजी से मेल खाने वाले बूट इमेज और कुंजी सामग्री का उपयोग जारी रखना चाहिए। फ़्यूज़िंग व्यवहार के कारण इन फ़ाइलों या फ़्लो का उपयोग आपके अपने जोखिम पर है; सभी परिणामों की ज़िम्मेदारी उन्हें चलाने वाले उपयोगकर्ता की रहती है। eFuse फ़ाइल, निजी कुंजियाँ, हस्ताक्षरित FWBL1, LK / sboot.bin इमेज और लक्षित डिवाइस की पुष्टि करें, इससे पहले कि कोई फ़्यूज़िंग फ़्लो चलाया जाए।

सामग्री

  • रिपॉज़िटरी लेआउट
  • आवश्यकताएँ
  • इमेज तैयारी
  • पेलोड निर्माण
  • हस्ताक्षरित SBoot इमेज निर्माण
  • एक्सप्लॉइट मोड
  • Exynos 9830 बूट श्रृंखला
  • Exynos 9830 इमेज लेआउट
  • लोड पते
  • बूट स्रोत ID
  • /mem पेलोड डंप करें
  • अपस्ट्रीम श्रेय
  • क्रेडिट

रिपॉज़िटरी लेआउट

पथउद्देश्य
bootLoaderFiles/बूटलोडर बाइनरी, विभाजित बूटलोडर भाग, मूल इमेज, डिक्रिप्टेड इमेज और डंप आर्टिफ़ैक्ट।
bootromNotes/बूट ROM नोट्स, फ़्लोचार्ट और USB कॉन्टेक्स्ट ऑफ़सेट।
exploit/Python टूलिंग, एक्सप्लॉइट रनर, स्प्लिट/मर्ज स्क्रिप्ट, पेलोड निर्माण सहायक और SoC डेटा।
exploit/extra/images/एक्सप्लॉइट फ़्लो द्वारा उपयोग की जाने वाली कार्यशील बूटलोडर इमेज।
exploit/extra/payloads/external/payloads/ से कॉपी की गई निर्मित पेलोड बाइनरी।
external/पेलोड स्रोत, निर्माण Makefile, डीकंपाइल नोट्स, साझा कुंजी सामग्री और सहायक उपकरण।
external/keys/exynos9830_crecker/हस्ताक्षरित-लोडर फ़्लो द्वारा उपयोग किया जाने वाला साझा Exynos9830 / Exynos990 कस्टम-कुंजी बंडल।
exynos990reverseEng/Exynos 990 रिवर्स इंजीनियरिंग प्रोजेक्ट फ़ाइलें।

आवश्यकताएँ

Linux टूलचेन

root@kitploit:~
sudo apt-get update
sudo apt-get install -y gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu

macOS टूलचेन

root@kitploit:~
brew tap messense/macos-cross-toolchains
brew install aarch64-unknown-linux-gnu

Python निर्भरताएँ

root@kitploit:~
python3 -m pip install -r requirements.txt

requirements.txt में coloredlogs, cryptography, hexdump, libusb, pyusb और pycryptodome शामिल हैं।

Windows USB ड्राइवर

Windows पर, BootROM USB डिवाइस 04e8:1234 को PyUSB द्वारा खोले जाने से पहले WinUSB/libusb-संगत ड्राइवर का उपयोग करना चाहिए। exploit/windows/README.md देखें।

रिपॉज़िटरी में exploit/windows/Exynos_USB_Device.inf पर एक WinUSB ड्राइवर पैकेज शामिल है, जिसके साथ उसी निर्देशिका में मेल खाता कैटलॉग और प्रमाणपत्र आयात फ़ाइल भी है।

इमेज तैयारी

sboot.bin विभाजित करें

root@kitploit:~
python3 exploit/split.py bootLoaderFiles/originalSboot_K/sboot.bin -o exploit/extra/images

स्प्लिट स्क्रिप्ट इमेज भागों और एक split_manifest.json फ़ाइल को आउटपुट निर्देशिका में लिखती है।

LK कस्टम कुंजी पैच करें

LK इमेज को कस्टम-कुंजी फ़्लो के लिए ROM सिक्योर बूट कुंजी 2 कमांड ID का उपयोग करना चाहिए:

Ghidra प्रोजेक्ट के अंदर LK पैच TSV लागू करते समय, सहायक को Ghidra हेडलेस के माध्यम से इस प्रकार कॉल किया गया था:

root@kitploit:~
GHIDRA=/path/to/ghidra_12.0.4_PUBLIC
REPO=$(pwd)
"$GHIDRA/support/analyzeHeadless" "$REPO/exynos990reverseEng" exynos990 \
  -process lk.bin \
  -noanalysis \
  -scriptPath "$REPO/external/ghidra" \
  -postScript ApplyLkPatches.java "$REPO/external/ghidra/lk_985_selected_patches.tsv"

स्टॉक कुंजी को प्रतिस्थापित करते हुए, 32-बाइट eFuse कुंजी को ऑफ़सेट 0x205008 पर lk.bin में एम्बेड करें:

root@kitploit:~
dd if=external/keys/exynos9830_crecker/crecker.efuse of=exploit/extra/images/lk.bin bs=1 seek=$((0x205008)) count=32 conv=notrunc
xxd -g1 -s $((0x205008)) -l 32 exploit/extra/images/lk.bin

विभाजित भागों को मर्ज करें

root@kitploit:~
python3 exploit/merge.py exploit/extra/images Exynos9830

मर्ज स्क्रिप्ट वर्तमान कार्यशील निर्देशिका में sboot.bin लिखती है।

पेलोड निर्माण

external/payloads/ के अंतर्गत पेलोड प्रोजेक्ट बनाएं और परिणामी बाइनरी को exploit/extra/payloads/ में कॉपी करें:

root@kitploit:~
./exploit/build_payloads.sh

UFS लोडर और कस्टम-कुंजी पेलोड निर्माण समय पर एक 32-बाइट efuse फ़ाइल एम्बेड करते हैं। डिफ़ॉल्ट रूप से Makefile external/keys/exynos9830_crecker/crecker.efuse पढ़ता है; ज़रूरत पड़ने पर इसे CUSTOM_KEY_EFUSE=/path/to/crecker.efuse से ओवरराइड करें।

हस्ताक्षरित SBoot इमेज निर्माण

exploit/exploit.py द्वारा चलाया जाने वाला प्रीफ़्लाइट चरण प्रत्येक हस्ताक्षरित रन से पहले exploit/extra/images/ में मौजूद SBoot इमेज सेट को उसी स्थान पर पुनः-हस्ताक्षरित करता है। कोई अलग हस्ताक्षरित आउटपुट नहीं रखा जाता। हस्ताक्षर चरण जानबूझकर ट्रैक किए गए साझा कुंजी बंडल external/keys/exynos9830_crecker/ का उपयोग करता है।

संपूर्ण इमेज सेट के लिए समकक्ष रिपॉज़िटरी-रूट कमांड:

root@kitploit:~
python3 external/tools/sign_sboot_images.py \
  --images-dir exploit/extra/images \
  --keys-dir external/keys/exynos9830_crecker

यह इन पर हस्ताक्षर करता है:

बैच साइनर प्रत्येक इमेज के लिए दशमलव 23 पास करता है और किसी मौजूदा फ़ुटर में पहले से मौजूद पुराने रोलबैक मान का पुनः उपयोग नहीं करता।

ज़रूरत पड़ने पर epbl.img को पहले पुनः-एन्क्रिप्ट किया जाता है, फिर अंतिम बाइट्स पर हस्ताक्षर किए जाते हैं। यदि ldfw.img और tzsw.img की AVB सामग्री को ताज़ा करना है, तो उन्हें अभी भी बाहरी AVB फ़्लो की आवश्यकता होती है।

केवल-FWBL1 कमांड है:

root@kitploit:~
python3 external/tools/sign_tool.py \
  -i exploit/extra/images/fwbl1.img \
  -o exploit/extra/images/fwbl1.img \
  -k external/keys/exynos9830_crecker/crecker_private.pem \
  -H external/keys/exynos9830_crecker/crecker.hmac \
  -s 0x3000 \
  -r 23 \
  -ma 0x9830 \
  -m 0x142 \
  -e 11 \
  -t external/keys/exynos9830_crecker/crecker_stage2_tee_pubkey.bin \
  -re external/keys/exynos9830_crecker/crecker_stage2_ree_pubkey.bin

लघु रूप, जब sign_tool.py, fwbl1.img और crecker_* फ़ाइलें वर्तमान निर्देशिका में हों:

root@kitploit:~
python3 sign_tool.py -i fwbl1.img -o fwbl1.img -k crecker_private.pem -H crecker.hmac -s 0x3000 -r 23 -ma 0x9830 -m 0x142 -e 11 -t crecker_stage2_tee_pubkey.bin -re crecker_stage2_ree_pubkey.bin

एक्सप्लॉइट मोड

जब तक अन्यथा नोट न किया गया हो, कमांड रिपॉज़िटरी रूट से चलाएं।

डिवाइस फ़्लो नोट्स

Exynos 9830 बूट श्रृंखला

देखी गई Exynos 9830 बूट प्रक्रिया है:

Exynos 9830 इमेज लेआउट

लोड पते

बूट स्रोत ID

रॉ बूट स्रोत ID

बूट स्रोत मान

/mem पेलोड डंप करें

नोट: mem.bin डंप पेलोड का उपयोग केवल तभी किया जा सकता है जब कोई कार्यशील sboot इंस्टॉल न हो।

  1. uh.bin को Heimdall के माध्यम से बूटलोडर पर भेजें:

    root@kitploit:~
    heimdall flash --BOOTLOADER uh.bin
    
  2. डंप फ़्लो चलाएं:

    root@kitploit:~
    python3 exploit/exploit.py --dump
    
  3. जनरेट की गई exynos990.bootrom.bin डंप की समीक्षा करें।

अपस्ट्रीम श्रेय

इस रिपॉज़िटरी में Python रिकवरी टूलिंग के कुछ हिस्सों को halal-beef/hubble से अनुकूलित किया गया था।

वह अपस्ट्रीम प्रोजेक्ट GNU GPL v2.0 के अंतर्गत प्रकाशित है, और यह रिपॉज़िटरी संगतता के लिए GPL-2.0 लाइसेंस रखती है। LICENSE और NOTICE.md देखें।

external/payloads/exynos990_boot_custom_key/ के अंतर्गत Exynos990 कस्टम-कुंजी पेलोड, VDavid003/exynos-usbdl के boot-custom-key पेलोड स्केलेटन और नियंत्रण-प्रवाह विचार पर आधारित है, जो frederic/exynos-usbdl का एक फ़ोर्क है। इसे Exynos9830 / Exynos990 GET_CONFIGURATION श्रृंखला के लिए काफी हद तक पुनः लिखा और अनुकूलित किया गया है, और यह अपस्ट्रीम पेलोड की शब्दशः प्रति नहीं है। चूंकि संदर्भित अपस्ट्रीम प्रोजेक्ट GNU GPL v3.0 के अंतर्गत लाइसेंस प्राप्त है, इसलिए यह पेलोड केवल-GPL-3.0 के अंतर्गत रखा गया है; external/payloads/exynos990_boot_custom_key/LICENSE देखें।

क्रेडिट

टूल डाउनलोड करें
कुंजी 1 कमांडमानकुंजी 2 कमांडमान
CMD_W_ROM_SEC_BOOT_KEY10x001CMD_W_ROM_SEC_BOOT_KEY20x016
CMD_W_USE_ROM_SEC_BOOT_KEY10x002CMD_W_USE_ROM_SEC_BOOT_KEY20x017
CMD_C_ROM_SEC_BOOT_KEY10x100CMD_C_ROM_SEC_BOOT_KEY20x114
CMD_R_USE_ROM_SEC_BOOT_KEY10x101CMD_R_USE_ROM_SEC_BOOT_KEY20x115
पेलोडआउटपुट पथउद्देश्य
mem.binexploit/extra/payloads/mem.binBoot ROM मेमोरी डंप पेलोड।
loader.binexploit/extra/payloads/loader.bin--ufs द्वारा उपयोग किया जाने वाला UFS पथ पेलोड।
Exynos990_boot_custom_key.binexploit/extra/payloads/Exynos990_boot_custom_key.bin--signed द्वारा उपयोग किया जाने वाला कस्टम-कुंजी हस्ताक्षरित-लोडर पेलोड।
इमेजउपयोग की गई कुंजी सामग्रीरोलबैक रिवीज़न
fwbl1.imgBL1 निजी कुंजी + Stage2 TEE/REE सार्वजनिक कुंजियाँ23
epbl.imgStage2 TEE निजी कुंजी23
bl2.imgStage2 REE निजी कुंजी23
lk.binStage2 REE निजी कुंजी23
el3_mon.imgStage2 TEE निजी कुंजी23
ldfw.imgStage2 TEE निजी कुंजी, आंतरिक + बाहरी23
tzsw.imgStage2 TEE निजी कुंजी, आंतरिक + बाहरी23
कमांडमोडडिफ़ॉल्ट पेलोडनोट्स
python3 exploit/exploit.py --ufsUFS पथloader.binUFS पेलोड फ़्लो शुरू करता है।
python3 exploit/exploit.py --signedहस्ताक्षरित बूट श्रृंखलाExynos990_boot_custom_key.binSBoot इमेज सेट को पुनः-हस्ताक्षरित करता है, इमेज भेजता है।
python3 exploit/exploit.py --dumpबूट ROM डंपmem.binexynos990.bootrom.bin में 0x20000 बाइट्स प्राप्त करता है।
चरणनोट
1डाउनलोड मोड में प्रवेश करें।
2ज़रूरत पड़ने पर exploit/merge.py से sboot.bin बनाएं या अपडेट करें।
3लक्षित इमेज फ़्लो स्वीकार करने वाले ODIN-शैली मोड Crecker मोड तक पहुंचने के लिए हस्ताक्षरित कस्टम-कुंजी फ़्लो का उपयोग करें।
4नए sboot.bin को ODIN, Heimdall या किसी अन्य संगत भेजने वाले माध्यम से भेजें।
5UFS पेलोड चलाएं।
6वैकल्पिक: One UI 7 और Strong Integrity वर्कफ़्लो के लिए CreckerRom इंस्टॉल करें।
7वैकल्पिक: लक्षित सेटअप पूरा होने के बाद बूटलोडर लॉक करें।
चरणस्टेजनोट्स
1BootROMप्रारंभिक ROM निष्पादन।
2BL1BootROM से पूर्ण हैंडऑफ़।
3EPBLBL1 से पूर्ण हैंडऑफ़।
4EPBLएक न्यूनतम SMC हैंडलर स्थापित करता है।
5BL2EPBL, BL2 लोड करता है।
6BL2BL2 को आंशिक हैंडऑफ़।
7LKBL2, LK लोड करने के लिए EPBL का उपयोग करता है, लेकिन LK तुरंत निष्पादित नहीं होता।
8EL3 MonitorBL2, EL3 Monitor लोड करने के लिए EPBL का उपयोग करता है।
9EL3 MonitorEPBL, EL3 Monitor को डिक्रिप्ट करता है।
10EL3 MonitorEL3 Monitor को पूर्ण हैंडऑफ़।
11EL3 Monitorविस्तारित SMC हैंडलर को आरंभ और स्थापित करता है।
12LKनिष्पादन LK पर कूदता है।
13LK / EL3 MonitorLK, TrustZone भागों को लोड करने के लिए EL3 Monitor SMC हैंडलर में कॉल करता है।
14ODIN / कस्टम लक्ष्यबूट ODIN या कॉन्फ़िगर किए गए लक्ष्य पर जारी रहता है।
भागप्रारंभअंत
fwbl1.img0x00x3000
epbl.img0x30000x16000
bl2.img0x160000x82000
lk.bin0xDB0000x35B000
el3_mon.img0x35B0000x39B000
स्टेजलोड पता
BL10x02022000
EPBL0x02026000
BL20x15600000
LK0xE8000000
EL3_MONITOR0xBFE80000
_boot_device स्रोत IDबूट स्रोत पथ
1UFS पथ, साझा UFS लोड फ़्लो।
2eMMC/SDMMC init पथ, mmc_card_detect_and_init फ़्लो।
3SDMMC/MMC डिवाइस 0, mmc_read_blocks(0, ...)।
4USB लोड पथ।
5SDMMC/MMC डिवाइस 1, mmc_read_blocks(1, ...)।
6UFS वैकल्पिक मोड, 1 के समान कोर UFS फ़्लो, भिन्न मोड फ़्लैग के साथ।
7गैर-MMC/UFS/USB रॉ कंट्रोलर रीड पथ।
0xB / 11USB फ़ॉलबैक पथ, फिर 4 के समान USB हैंडलर।
स्रोत IDमानअर्थ
10x20UFS
20x14eMMC
30x00SDMMC_CH2
4 / 0xB0x40USB
क्रेडिटयोगदान
Chimera Toolलगभग 2021-2022 में एक्सप्लॉइट की पहली खोज। Chimera कई डिवाइसों पर उन्नत Exynos सर्विसिंग क्षमताएं प्रदान करता है, जिसमें इस एक्सप्लॉइट पर आधारित क्षमताएं भी शामिल हैं।
CVE-2024-56426वह CVE जिस पर यह प्रोजेक्ट आधारित है।
Christopher WadeCVE-2024-56426 को Samsung को रिपोर्ट किया।
kethily-danielUSB पैकेट ट्रेसिंग और सैंपल निष्कर्षण के लिए उपयोग किए जाने वाले टूल तक पहुंच प्रदान की।
BotchedRPRप्रारंभिक शोध और carte2 के निर्माण में सहायता की।
VDavid003पैकेट डंप के माध्यम से PoC को रिवर्स इंजीनियर करने में सहायता की और व्यक्तिगत रूप से डिवाइसों पर परीक्षण किया।
halal-beef / hubbleशोध जीवनचक्र के दौरान PoC के प्रारंभिक USB पैकेट डंप और विश्लेषण, एक्सप्लॉइट स्क्रिप्ट द्वारा उपयोग किया जाने वाला बैकएंड कोड, और स्प्लिट और मर्ज स्क्रिप्ट द्वारा उपयोग किए जाने वाले SoC लेआउट प्रदान किए।
VDavid003 / exynos-usbdlExynos990 कस्टम-कुंजी पेलोड के आधार के रूप में उपयोग किए जाने वाले GPLv3 कस्टम-कुंजी पेलोड स्केलेटन और Exynos USB डाउनलोड संदर्भ फ़्लो प्रदान किए।
R0rt1z2पेलोड निर्माण में सहायता की; कुछ कार्य उनके प्रोजेक्ट kaeru पर आधारित था।
AntiEngineerARM ज्ञान, संकेत और शोध सहायता साझा की।
AAभेद्यता प्रेरणा और Chimera के बाहर पहला उपयोग।