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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2021-40154 — LPC55S69 और K82 सीरीज़ में पाई गई BootROM भेद्यता का परीक्षण करने के लिए POC | Kitploit
उपकरण/GitHubGitHub/jeromeyoung/cve-2021-40154
एम्बेडेड सिस्टम सुरक्षाभेद्यता विश्लेषणशोषणफज़िंगहार्डवेयर सुरक्षाबाइनरी शोषण
GitHubjeromeyoung/cve-2021-40154

CVE-2021-40154

LPC55S69 और K82 सीरीज़ में पाई गई BootROM भेद्यता का परीक्षण करने के लिए POC

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

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

सभी देखें →

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

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

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

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

CVE-2021-40154

LPC55S69 और K82 USB इन-सिस्टम प्रोग्रामिंग (ISP) बफर ओवर-रीड भेद्यताएँ

LPC55S69 और K82 सीरीज़ Revision A2 में पाई गई BootROM भेद्यता का परीक्षण करने के लिए POC। यह भेद्यता LPC55S69 के लिए नई Revision A3 वाले नए उपकरणों में ठीक कर दी गई है।

असुरक्षित डिवाइस:

पुष्टि: LPC55S69 और K82 सीरीज़ के MCU

संदिग्ध: समान USB ISP स्टैक वाले अन्य NXP सीरीज़ के MCU - Kinetis K सीरीज़ और RT सीरीज़

भेद्यता सारांश:

NXP LPC55s69 और Kinetis K82 माइक्रोकंट्रोलर सीरीज़ के USB इन-सिस्टम प्रोग्रामिंग (ISP) मोड में एक बफर ओवर-रीड भेद्यता देखी गई। शोषण किए जाने पर, यह भेद्यता हमलावर को संरक्षित फ्लैश मेमोरी से 16KB (LPC55S69) और 64KB (K82) डेटा पढ़ने की अनुमति देती है।

तकनीकी विवरण:

NXP LPC55S69 और K82 MCU, USB, SPI, UART और I2C जैसे परिधीय उपकरणों का उपयोग करके MCU के फर्मवेयर के फ़ील्ड अपडेट के लिए इन-सिस्टम प्रोग्रामिंग (ISP) मोड प्रदान करते हैं। USB ISP मोड NXP के प्रलेखित अपडेट कमांड के माध्यम से फर्मवेयर को अपडेट करने के लिए एक एम्बेडेड होस्ट प्रदान करता है।

ISP, LPC55S69 और K82 BootROM का हिस्सा है, और कुछ रजिस्टर बिट्स, ISP पिन और इमेज हेडर परिभाषा के मानों के आधार पर ट्रिगर होता है। LPC55S69 के लिए, USB HID क्लास का उपयोग USB0/1 पोर्ट की इमेज डाउनलोड करने के लिए किया जाता है, और इसी तरह, K82 के लिए ROM में Kinetis Bootloader, USB HID क्लास के रूप में USB परिधीय के माध्यम से फ्लैश में डेटा लोड करने का समर्थन करता है।

LPC55S69 और K82 सीरीज़ दोनों IC के USB ISP तीन (3) एंडपॉइंट्स का उपयोग करते हैं, जो नीचे सूचीबद्ध हैं:

  • Control (0)
  • Interrupt IN (1)
  • Interrupt OUT (2)

बफर ओवर-रीड भेद्यता USB Control endpoint 0 के लिए देखी गई थी, जिसका उपयोग USB होस्ट एन्यूमरेशन के लिए किया जाता है।

प्रूफ ऑफ कॉन्सेप्ट

लक्ष्य 1: LPC55S69

बफर ओवर-रीड भेद्यता एम्बेडेड USB होस्ट से GET Descriptor Configuration अनुरोध पर देखी जाती है। एक हमलावर, "wlength" मान को 65535 बाइट्स में संशोधित करके GET Descriptor Configuration भेजने के लिए USB अनुरोध तैयार करते समय, अधिकतम 16KB प्रतिक्रिया डेटा का अनुरोध कर सकता है। जब 16KB डेटा USB TX बफर में कॉपी होकर होस्ट को सफलतापूर्वक प्रेषित हो जाता है, तो LPC556S9 सीमित करता है और रीसेट करता है।

डिवाइस विवरण:

लक्ष्य डेव बोर्ड: LPC55S69 – EVK RevA2 USB होस्ट: Ubuntu 20.04 या Raspberry-pi 4 Model B

भेद्यता को पुनः उत्पन्न करने के चरण:

  1. LPC55S69 – EVK RevA2 डेवलपमेंट बोर्ड में, ISP बटन और रीसेट बटन दबाकर USB ISP ट्रिगर किया जाता है।
  2. USB 1 हाई-स्पीड पोर्ट को Ubuntu लैपटॉप या Raspberry-pi से कनेक्ट करें।
  3. जैसा कि चित्र 1 में प्रलेखित है, LPC बोर्ड USB कम्पोजिट डिवाइस के रूप में डिटेक्ट होता है।

चित्र 1: Ubuntu dmesg उपयोगिता USB डिवाइस विवरण दिखा रही है

root@kitploit:~
[43295.318228] usb 1-1.4: USB disconnect, device number 95
[43296.175536] usb 1-1.4: new full-speed USB device number 96 using xhci_hcd
[43296.397315] usb 1-1.4: New USB device found, idVendor=1fc9, idProduct=0021, bcdDevice= 3.00
[43296.397331] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[43296.397337] usb 1-1.4: Product: USB COMPOSITE DEVICE
[43296.397342] usb 1-1.4: Manufacturer: NXP SEMICONDUCTOR INC.
[43296.400768] hid-generic 0003:1FC9:0021.0055: hiddev0,hidraw4: USB HID v1.00 Device [NXP SEMICONDUCTOR INC. USB COMPOSITE DEVICE] on usb-0000:00:14.0-1.4/input0
  1. लक्ष्य बोर्ड और पीसी के बीच एक USB विश्लेषक कनेक्ट करें, या USB पैकेट कैप्चर करने के लिए Linux कर्नेल मॉड्यूल "usbmon" का उपयोग करें:
  • यदि Ubuntu में USBmon का उपयोग कर रहे हैं, तो यह कमांड चलाएँ "sudo modprobe usbmon"।
  • "lsusb" का उपयोग करते समय, बस और डिवाइस का पता नोट करें।
  • "sudo wireshark" चलाएँ, और "lsusb" से बस नंबर के संदर्भ में USBMON1/2 इंटरफ़ेस से कनेक्ट करें।
  1. Wireshark में, "lsusb" से बस नंबर के संदर्भ में USB डिवाइस पते को फ़िल्टर करें।
  2. Ubuntu में प्रूफ ऑफ कॉन्सेप्ट (PoC) "sudo python3 LPC_USB.py" चलाएँ। Python स्क्रिप्ट को सफलतापूर्वक चलाने के लिए, USB होस्ट PC में निम्नलिखित आवश्यकताएँ होनी चाहिए: a. Python 3+ स्थापित करें b. "pyusb" मॉड्यूल स्थापित करें
root@kitploit:~
sudo python3 LPC_USB.py 
  1. जैसा कि चित्र 2 में प्रलेखित है, USB ट्रेसेस से अनुरोध और प्रतिक्रिया की जाँच करके बफर ओवरफ्लो की पुष्टि करें; चित्र 3, इसके बजाय, USB विश्लेषक ट्रेस दिखाता है। USB प्रतिक्रिया 4KB होगी।

चित्र 2

चित्र 3

नोट 1: Ubuntu सिस्टम में Libusb की सीमा "MAX_CTRL_BUFFER_LENGTH" के कारण 4KB का बफर ओवर-रीड अनुरोध किया जा सकता है। इसे Raspberry-pi सिस्टम में संशोधित किया जा सकता है और 16KB का अनुरोध किया जा सकता है। रास्पबेरी-पाई 4 मॉडल बी का उपयोग करके LPC55s69-EVK बोर्ड से प्राप्त संलग्न फर्मवेयर "LPC.bin"।

यदि आप 4KB से अधिक के अनुरोध जारी करना चाहते हैं, तो Raspi पर Horac द्वारा बनाई गई इस शानदार स्क्रिप्ट का उपयोग करें और wlength को 65535(0xffff) में बदलकर POC चलाएँ।

लक्ष्य 2: Kinetis K82

बफर ओवर-रीड भेद्यता एम्बेडेड USB होस्ट से GET Status-Other अनुरोध पर देखी जाती है। एक हमलावर, "wlength" मान को 65535 बाइट्स में संशोधित करके GET status-Other भेजने के लिए USB अनुरोध तैयार करते समय, अधिकतम 64KB प्रतिक्रिया डेटा का अनुरोध कर सकता है। K82 USB डिवाइस सफलतापूर्वक 64KB डेटा भेजता है।

डिवाइस विवरण:

लक्ष्य डेव बोर्ड: FRDM-K82F USB होस्ट: Ubuntu लैपटॉप या Raspberry-pi

root@kitploit:~
sudo python3 K82_USB.py 

नोट 1: Ubuntu सिस्टम में Libusb की सीमा "MAX_CTRL_BUFFER_LENGTH" के कारण 4KB का बफर ओवर-रीड अनुरोध किया जा सकता है। इसे Raspberry-pi में संशोधित किया जा सकता है और 64KB का अनुरोध किया जा सकता है।

नोट 2: K82 में भेद्यता केवल तभी पुनः उत्पन्न होती है जब USB अनुरोध GET status-Device, Interface, Endpoint और अन्य के लिए भेद्यता को ट्रिगर करने हेतु क्रमिक रूप से हों। यह कई ISP रीसेट के बाद विकसित PoC स्क्रिप्ट चलाकर प्राप्त किया जा सकता है।

यदि आप 4KB से अधिक के अनुरोध जारी करना चाहते हैं, तो Raspi पर Horac द्वारा बनाई गई इस शानदार स्क्रिप्ट का उपयोग करें और wlength को 65535(0xffff) में बदलकर POC चलाएँ।

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