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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
anti-jndi — أشياء ممتعة ضد إساءة استخدام الثغرة الأمنية الأخيرة CVE-2021-44228 (Log4Shell) باستخدام خوادم الويب الشائعة. | Kitploit
أدوات/GitHubGitHub/ph0lk3r/anti-jndi
أدوات دفاعيةتحليل الثغرات الأمنيةالتهرب من IDS/IPSتجاوز WAFأمن الويبسوء التكوين
GitHubph0lk3r/anti-jndi

anti-jndi

أشياء ممتعة ضد إساءة استخدام الثغرة الأمنية الأخيرة CVE-2021-44228 (Log4Shell) باستخدام خوادم الويب الشائعة.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

anti-jndi

أدوات ممتعة ضد إساءة استخدام الثغرة الأمنية الحديثة CVE-2021-44228 (Log4Shell) باستخدام خوادم الويب الشائعة.

بناءً على منشور @shipilev (https://gist.github.com/shipilev/92e709a868f3d328b6636e1bfc21cf09) قمت بنقل مثاله إلى Apache2. وقام زميل في العمل بذلك لـ Lighttpd. قررت جعل أمثلتنا عامة للراحة.

الفكرة

هناك أسباب قليلة فقط لوضع السلسلة "jndi:" في رؤوس الطلبات أو وكلاء المستخدم أو في أي مكان آخر. حاليًا، أعرف سببًا واحدًا فقط للقيام بذلك: استغلال CVE-2021-44228. بينما يأمل العالم أن يكون مشغولًا بتصحيح كل تطبيق من إصدارات Log4j الضعيفة، قد يكون من المعقول إبطاء المهاجمين قدر الإمكان. فماذا عن تقديم بعض الجيجابايت من الهراء لهم أثناء محاولتهم استغلال خدماتك؟

إخلاء مسؤولية

مقتطفات الكود التالية لا تحمي أجهزتك وخدماتك من ثغرة Log4Shell 0-Day! يُرجى تحديث البرامج الضعيفة، استخدم log4j2.formatMsgNoLookups=true لتعطيل عمليات بحث jndi أو أوقف تشغيلها حتى يتوفر تصحيح! استخدم هذا فقط على الخوادم التي لا تحتوي على خدمات Log4j! مزيد من المعلومات حول كيفية التخفيف من CVE-2021-44228: https://research.hisolutions.com/log4shell هذا لن يغطي أيضًا الاستدعاءات المبهمة مثل ${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://${hostName}.} أو أي شيء آخر يحاول إخفاء جزء "jndi:". نظرًا لعدم وجود حل بسيط لذلك، لن أغطي تقنيات الكشف المتقدمة في هذا الوقت. ما زلت أعتقد أن أغلب الهجمات لن تستخدم هذه، لذا لا يزال بإمكاننا إزعاج معظم صغار المخترقين. :)

التحضير (مقتبس من @shipilev)

على نظام لينكس، أنشئ ملفًا يحتوي على رسالة HTML عشوائية. يُرجى عدم استخدام LOL من المثال أدناه لأنه يسهل على المهاجم تنفيذ مرشح عام لتجنبنا. نحن نستخدم أداة pv لعرض تقدم إنشاء الملف، قد تحتاج إلى تثبيتها عبر مدير الحزم المفضل لديك أو ببساطة تجاهلها.

root@kitploit:~
$ awk 'BEGIN { for(c=0;c<10000000;c++) printf "<p>LOL</p>" }' > 100M.html
$ (for I in `seq 1 100`; do cat 100M.html; done) | pv | gzip -9 > 10G.boomgz
$ rm 100M.html

بافتراض أن خادم الويب الخاص بك يعمل كمستخدم www-data، لننشئ دليلاً مملوكًا لـ www-data حتى لا نضطر لرفع نسخة في كل جذر ويب قد يخدمه خادم الويب:

root@kitploit:~
mkdir /bombs
mv 10G.boomgz /bombs
chown -R www-data:www-data /bombs

الآن للجزء الممتع...

Nginx

انظر https://gist.github.com/shipilev/92e709a868f3d328b6636e1bfc21cf09

كل الشكر لـ @shipilev

Apache2

تفعيل الوحدات المطلوبة

root@kitploit:~
a2enmod rewrite headers ratelimit

انتقل إلى /etc/apache2/sites-enabled. افتح كل ملف تكوين مضيف باستخدام محررك المفضل وأدرج مقتطف الكود التالي فوق كل سطر يحتوي على (قد يكون هناك أكثر من واحد):

root@kitploit:~
RewriteEngine On

RewriteCond %{THE_REQUEST} "^.*(\${jndi|\${\${).*$" [OR]
RewriteCond %{QUERY_STRING} "^.*(\${jndi|\${\${).*$" [OR]
RewriteCond %{REQUEST_URI} "^.*(\${jndi|\${\${).*$" [OR]
RewriteCond %{HTTP_COOKIE} "^.*(\${jndi|\${\${).*$" [OR]
RewriteCond %{HTTP_HOST} "^.*(\${jndi|\${\${).*$" [OR]
RewriteCond %{REMOTE_HOST} "^.*(\${jndi|\${\${).*$" [OR]
RewriteCond %{REMOTE_USER} "^.*(\${jndi|\${\${).*$" [OR]
RewriteCond %{HTTP_USER_AGENT} "^.*(\${jndi|\${\${).*$" [OR]
RewriteCond %{HTTP_REFERER} "^.*(\${jndi|\${\${).*$"
RewriteRule . /bombs/10G_lol.boomgz [L]

<Files ~ "\.boomgz$">
Header Set Expires "Sat, 1 Jan 2000 00:00:00 GMT"
Header Set Content-Encoding "gzip"
Header Set Content-Type "text/html"
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 100
</Files>

<Directory /bombs>
allow from allow
Require all granted
</Directory>

قد تتساءل لماذا يوجد الكثير من المتغيرات مقارنة بالمثال الأولي لـ @shipilev. لقد قررت محاولة التقاط أكبر عدد ممكن من المواقع. قد يؤدي هذا إلى تعطيل الخدمات في حالات نادرة جدًا، لذا إذا كنت تريد استخدام المجموعة الأصلية من الفحوصات،只需 قم بتعليق أو حذف الأسطر السبعة الأولى بعد عبارة RewriteEngine On وإزالة أجزاء |\${\${ من الأسطر المتبقية.

يمكنك أيضًا وضع الكود في ملف جديد، مثل /etc/apache2/conf-available/anti-jndi.conf وتضمينه كما يلي:

root@kitploit:~
Include /etc/apache2/conf-available/anti-jndi.conf

الآن احفظ الملف (الملفات) وأعد تحميل تكوين Apache2:

root@kitploit:~
systemctl reload apache2

إذا سار كل شيء على ما يرام، يجب ألا تحصل على رسالة خطأ.

Lighttpd

قريبًا

اختبار إذا كان كل شيء يعمل

يمكنك التحقق مما إذا كنت قد نجحت عن طريق الاتصال بموقعك المعدل عبر curl (تذكر استبدال your-hostname باسم المضيف الفعلي لإحدى الخدمات التي قمت بتحريرها للتو:

root@kitploit:~
curl -s -L your-hostname -A "\${jndi:testing}" | pv > /dev/null

يجب أن ترى شريط تقدم يظهر سرعة تنزيل تبلغ حوالي 100 كيلوبايت/ثانية. إذا لم تقم بإلغائه، فسيتم الانتهاء بعد بضع دقائق، اعتمادًا على ما استخدمته كسلسلة في ملف HTML الأولي. بالنسبة لي، استغرق الأمر حوالي 5 دقائق. الآن تحقق مما يحدث على جانب العميل:

root@kitploit:~
curl -s --compressed -L your-hostname -A "\${jndi:testing}" | pv > /dev/null

هل ترى كيف لم تعد 100 كيلوبايت/ثانية؟ الضغط يقوم بسحره، إنه بضع غيغابايت على جانب العميل. لذا بعد تنزيل كومة من الهراء لبضع دقائق، يكون لدى المهاجم بضع غيغابايت مخزنة للتحليل. من يعلم؟ :)

تنزيل الأداة