
مستودع عام للتحسينات على ثغرة EXTRABACON
مستودع عام لتحسينات ثغرة EXTRABACON، وهي تنفيذ كود عن بعد لـ Cisco ASA كتبتها مجموعة Equation (NSA) وسربها Shadow Brokers.
يوجد شيلكود محسّن، وسكريبت إيجاد إزاحات LINA، ووحدة Metasploit، و extrabacon-2.0.
سنضيف التصحيحات لمعظم إصدارات 8.x و 9.x في المستقبل القريب بعد اختبار جميع الإصدارات على أجهزة حقيقية.
يستخدم هذا شيلكود محسّنًا، ومراحله أقل من نسخة مجموعة Equation مما يجعله أكثر موثوقية. وهذا يقلل حجم حزمة حمولة SNMP بمقدار 150 بايت تقريبًا. كما أن النسخة المسربة تدعم فقط 8.x، بينما لدينا نسخة تعمل على إصدارات 9.x.
باستخدام سكريبت إيجاد إزاحات Lina، يجب أن يكون من السهل دعم جميع إصدارات x86 الضعيفة. نحن نعمل على تحقيق ذلك. ملاحظة: x64 (9.6+؟) يقدم DEP و ASLR. لن يعمل سكريبت الإزاحة والحمولة العامة. ولكن لا يزال من الممكن تعطيل هذه الإصدارات بسهولة.
افتح مشكلة (issue) إذا كنت ترغب في دعم إصدار معين. سيتم تقديم أولويته.
8.x
****** ********9.x
******** دعم الإصدارات الجديدة ليس جزءًا من تسريب Shadow Brokers الأصلي
** لا يمكننا حاليًا التمييز بين الإصدارات العادية و NPE من سلاسل SNMP. لقد علقنا على إزاحات NPE، لأن NPE نادر جدًا (للاستخدام في التصدير إلى أماكن يكون فيها التشفير ضعيفًا)، لكن في المستقبل، نود تضمين هذه الإصدارات. ربما كخيار منطقي؟
use auxiliary/admin/cisco/cisco_asa_extrabacon
https://github.com/rapid7/metasploit-framework/pull/7359
تم دمج طلب السحب الأولي (pull request) في فرع master لـ Metasploit. سنستمر في المساهمة بمزيد من الإزاحات، والتي قد تكون متاحة هنا في وقت أقرب اعتمادًا على سرعة طلبات السحب المستقبلية.
إذا كان بإمكانك اختبار إصدارات ASA، فكر في عمل fork لهذا المشروع وتوليد الحمولات. يمكننا توليد الحمولات بشكل جماعي، لكننا نريد الاختبار للتأكد من أن كل حمولة تخرج بشكل نظيف.
يمكنك إضافة حمولات جديدة إلى مجلد extrabacon-2.0/improved/ بعد استخدام lina-offsets.py لتوليد الملف. يتم تسمية الوحدات shellcode_verstring.py، حيث verstring هي سلسلة الإصدار التي يُرجعها ASA، مع استبدال النقاط . بشرطات سفلية _
كما يمكنك تقديم طلبات سحب (pull requests) لإزالة أي Python غير ضروري من كود ExtraBacon 2.0.
python2 ./lina-offsets.py asa_lina_XXX.elf
ستقوم تلقائيًا بتوليد الإزاحات اللازمة لنقل الثغرة إلى إصدارات أخرى من ASA.
حاليًا، يستغرق تحميل إصدار من برامج ASA الثابتة واختباره وقتًا أطول من توليد الإزاحات لإصدار معين.
الشيء الوحيد الذي لا يحسبه السكريبت هو FIX_EBP، والذي يكون عادة 0x48 (72) أو 0x58 (88). يبدو أن الإصدارات 8.4(1) وما فوق تستخدم 0x48.
يمكنك استخراج Lina بهذه الطريقة:
binwalk -e asaXXX-k8.bin
cd _asaXXX-extracted
cpio -idv < rootfs.img
cp asa/bin/lina /tmp/linaXXX