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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Cisco-FMC-honeypot — في الأصل مصيدة (Honeypot) لـ CVE-2026-20131 | Kitploit
أدوات/GitHubGitHub/hassan-pouladi/cisco-fmc-honeypot
تحليل الثغرات الأمنيةأمن الشبكاتتحليل البرمجيات الخبيثةاستخبارات التهديداتالاستجابة للحوادث
GitHubhassan-pouladi/cisco-fmc-honeypot

Cisco-FMC-honeypot

في الأصل مصيدة (Honeypot) لـ CVE-2026-20131

عرض المستودع
11منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

FMC-Trap

honeypot منخفض التفاعل يحاكي واجهة الويب الخاصة بـ Cisco Secure Firewall Management Center (FMC) ويلتقط حركة مرور هجوم غير مصادَق عليها بنمط إلغاء تسلسل Java (استكشافات إلغاء تسلسل غير آمن بنمط CVE).

  • آمن بالتصميم: لا يقوم التطبيق بإلغاء تسلسل كائنات Java؛ بل يكتشف \xac\xed\x00\x05 (وBase64 rO0AB…) ويستخرج سلاسل أوامر shell أو عناوين URL باستخدام التعبيرات النمطية والاستدلالات.
  • لا تنفيذ أوامر: تُجلب عناوين URL الخاصة بالمرحلة الثانية فقط باستخدام Python requests إلى وحدة تخزين تنزيلات غير قابلة للتنفيذ.
  • حزمة تقنية موجهة للإنتاج: Docker Compose مع Gunicorn وCaddy اختياري (HTTPS، Let’s Encrypt).

لماذا تشغيله؟

سجلات JSON أحادية السطر (متوافقة مع Splunk وELK)، وتنبيهات Telegram اختيارية، وقطع أثرية مُجزّأة للمرحلة الثانية، ومستخدم حاوية غير جذر. المشروع موجه للباحثين الذين يحتاجون إلى فخ بنمط FMC مركّز دون كود تكامل إضافي.

المتطلبات

العنصرملاحظات
Docker وDocker Compose الإصدار 2ثبّت Docker
VPS أو مضيفيُنصح بقطاع شبكة مخصص أو معزول
نطاق (اختياري)لـ HTTPS: اضبط DNS واسمح بدخول TCP 80 وTCP 443 إلى المضيف

بدء سريع (خمس دقائق تقريباً)

1. الاستنساخ

root@kitploit:~
git clone https://github.com/Hassan-Pouladi/Cisco-FMC-honeypot
cd FMC-Trap

2. إعداد البيئة

root@kitploit:~
cp .env.example .env

عدّل .env حسب الحاجة (انظر متغيرات البيئة). بالنسبة لعمليات النشر خلف Caddy المرفق، اضبط TRUST_X_FORWARDED_FOR=1 بحيث تعكس عناوين IP الخاصة بالعملاء في السجلات هوية العميل الأصلي.

3. توجيه Caddy إلى نطاقك

عدّل Caddyfile: استبدل أسماء المضيفات النائبة بنطاقك الخاص (وwww إذا كان ذلك مناسباً):

root@kitploit:~
example.com, www.example.com {
	reverse_proxy fmc-trap:5000
}

بشكل اختياري، أزل التعليق عن الكتلة العامة email [email protected] في Caddyfile لإشعارات انتهاء صلاحية Let’s Encrypt.

4. DNS وجدار الحماية (HTTPS)

  • أنشئ سجلات A (وAAAA إذا كان ذلك مناسباً): من yourdomain.com إلى عنوان IP العام لخادمك، و**www** إذا كان مستخدَماً.
  • اسمح بدخول TCP 80 وTCP 443 إلى المضيف (مجموعة أمان السحابة وجدار حماية المضيف، على سبيل المثال ufw allow 80,443/tcp).

5. أدلة البيانات (مطلوبة)

يعمل التطبيق بمعرّف المستخدم UID 10001 داخل الحاوية. يجب أن يكون دليل ./data المثبّت عبر bind قابلاً للكتابة:

root@kitploit:~
mkdir -p data/logs data/downloads
sudo chown -R 10001:10001 data/logs data/downloads

بدون الملكية الصحيحة، قد تُرجع طلبات POST الاستغلالية 500 (Permission denied عند كتابة السجلات أو البيانات الخام).

6. التشغيل

root@kitploit:~
docker compose up -d --build

7. التحقق

root@kitploit:~
docker compose ps
curl -sI https://yourdomain.com/

توقّع HTTP/2 200 (أو 301 أو 302) و**Via: Caddy**. في المتصفح، يجب أن تعرض https://yourdomain.com/ صفحة تسجيل دخول FMC المحاكاة.

لمعرفة أين تقرأ الأحداث والحمولات ومخرجات Docker، راجع العثور على السجلات والتنزيلات ومخرجات الخدمة والعمليات الشائعة.

العثور على السجلات والتنزيلات ومخرجات الخدمة

كل ما يلي مرتبط بدليل مشروعك (المجلد الذي يحتوي على docker-compose.yml، وعادةً FMC-Trap بعد الاستنساخ). المسارات على المضيف؛ يقوم Docker بتثبيتها عبر bind داخل الحاوية.

عندما يظهر شيء ما في ملف السجل: يتلقى fmc-trap.json كائن JSON واحداً لكل سطر عندما يطابق الطلب سلوك استكشاف إلغاء التسلسل (بايتات سحرية في POST). طلبات GET العادية إلى صفحة تسجيل الدخول المزيفة لا تُكتب في هذا الملف افتراضياً.

عندما يحتوي مجلد التنزيلات على ملفات: تظهر الإدخالات فقط إذا استخرج خط المعالجة عنوان URL من استكشاف ونجح الحاصد في جلب محتوى بعيد مسموح به ضمن MAX_DOWNLOAD_MB. إذا بقي الدليل فارغاً، فقد لا توجد عناوين URL مؤهلة بعد، أو قد تكون عمليات الجلب محجوبة بسياسة في التطبيق.

طباعة JSON بتنسيق مقروء (اختياري): لسطر واحد، مرّره عبر python -m json.tool أو استخدم jq إذا كان مثبتاً.

العمليات الشائعة

البنية

root@kitploit:~
Internet :443/:80 → Caddy (TLS, Let’s Encrypt) → fmc-trap:5000 (Gunicorn/Flask)
                              ↓
                    ./data/logs, ./data/downloads (bind mounts)
  • Caddy فقط هو من ينشر 80 و443 إلى المضيف؛ حاوية التطبيق غير مكشوفة مباشرة (انظر expose: "5000" في Compose).
  • يستخدم Caddy محللات DNS عامة (1.1.1.1، 8.8.8.8) داخل الحاوية بحيث ينجح Let’s Encrypt على المضيفات التي يتعذر فيها الوصول إلى محلل VPS من Docker (قيد شائع لدى بعض مزودي السحابة).

متغيرات البيئة

يمرر Compose هذه المتغيرات إلى خدمة fmc-trap؛ راجع docker-compose.yml للتفاصيل.

حقول سجل JSON (مرجع)

كل سطر في data/logs/fmc-trap.json هو كائن JSON واحد. تشمل المفاتيح الشائعة timestamp وevent_type وsrc_ip وheaders وraw_payload_hash وextracted_commands وdownloaded_file_hash عند تخزين ملف. تستخدم البيانات المحفوظة تحت data/downloads/ الوضع 0400 (للقراءة فقط للمالك).

استكشاف الأخطاء وإصلاحها

اختياري: كشف التطبيق على localhost (تصحيح الأخطاء)

للوصول إلى Gunicorn مباشرة دون Caddy، أضف ما يلي تحت fmc-trap في docker-compose.yml:

root@kitploit:~
ports:
  - "127.0.0.1:5000:5000"

لا تربط التطبيق بـ0.0.0.0 في الإنتاج عندما ينهي Caddy بروتوكول TLS.

الأمان

  • انشر على VPS مخصص أو شبكة معزولة. تتعامل الخدمة مع حركة مرور خبيثة وقد تُنزّل برمجيات خبيثة للتحليل.
  • خزّن رموز Telegram والأسرار الأخرى فقط في .env على المضيف (لا ترفع .env أبداً إلى المستودع).
  • قيّد جدار الحماية على الحد الأدنى من المنافذ المطلوبة (80 و443 لـ HTTPS).

الاستخدام القانوني والأخلاقي

انشر فقط على أنظمة تملكها أو مُصرّح لك صراحةً بنشر أدوات المراقبة عليها. قد تجمع honeypots حركة الهجوم والبرمجيات الخبيثة؛ التزم بالقانون المعمول به وبسياسة المؤسسة. هذا البرنامج مخصص لأبحاث الأمن.

تنزيل الأداة
ماذامسار المضيفكيف تفتحه أو تتابعه
سجل الأحداث (سطور JSON)data/logs/fmc-trap.jsontail -f data/logs/fmc-trap.json (بث مباشر)، أو افتحه في محرر، أو أدخله إلى Splunk أو ELK
حمولات المرحلة الثانية المُنجزةdata/downloads/تظهر الملفات فقط عندما يحفظ الحاصد استجابة بعيدة؛ يُسمّى كل ملف بمجمّع SHA256 الخاص به (64 حرفاً سداسياً عشرياً)، بدون امتداد. ادرجها باستخدام ls -la data/downloads (Linux أو macOS) أو Get-ChildItem data\downloads (Windows PowerShell)
مخرجات عملية التطبيقليس ملفاً؛ Dockerdocker compose logs -f fmc-trap
Caddy (TLS، وكيل، ACME)ليس ملفاً؛ Dockerdocker compose logs -f caddy
تنبيهات Telegram (اختيارية)غير مخزنة في data/اضبط TELEGRAM_BOT_TOKEN وTELEGRAM_CHAT_ID في .env؛ تُطلق التنبيهات عند تسجيل الأحداث
الهدفالأمر أو الإجراء
معرفة ما إذا كانت الحاويات تعملdocker compose ps
إعادة التشغيل بعد تعديل .env أو Caddyfiledocker compose up -d --build (أو docker compose up -d --force-recreate إذا تغيّرت البيئة فقط)
إيقاف الحزمةdocker compose down
متابعة أحداث JSON الجديدة باستمرارtail -f data/logs/fmc-trap.json
فحص آخر الأحداثtail -n 50 data/logs/fmc-trap.json
عدّ القطع الأثرية المُنجزةافتح data/downloads في مدير الملفات، أو استخدم عدّ الملفات عبر القشرة على ذلك الدليل (تُسمّى الملفات حسب SHA256)
تأكيد تحميل صفحة honeypotافتح https://yourdomain.com/ في متصفح أو استخدم curl -sI كما في خطوة التحقق
المتغيرالغرضالافتراضي / ملاحظة
TRUST_X_FORWARDED_FORاستخدام أول قفزة من X-Forwarded-For كـsrc_ipيُنصح بـ**1** مع Caddy
DECEPTION_STATUS200 يُرجع نص HTML؛ 302 يُرجع إعادة توجيه200
DECEPTION_REDIRECT_URLالمسار الهدف عندما تكون الحالة 302/
MAX_DOWNLOAD_MBحد الحاصد لكل عنوان URL16
TELEGRAM_BOT_TOKEN / TELEGRAM_CHAT_IDتنبيهات اختياريةفارغ يعطّل التنبيهات
FMC_SERVER_HEADERترويسة استجابة Servernginx
VT_API_KEYمحجوزاختياري
العَرَضالحل
Permission denied عند الكتابة تحت data/شغّل sudo chown -R 10001:10001 data/logs data/downloads
Bind for 0.0.0.0:80 failed: port is already allocatedخدمة أو حاوية أخرى مرتبطة بالمنفذ 80. أوقف تلك الخدمة أو حرّر 80؛ يمكن لعملية واحدة فقط الاستماع على 80 لكل مضيف.
أخطاء Let’s Encrypt أو ACME في سجلات Caddyتأكد من أن DNS يحل إلى هذا الخادم وأن 80 و443 قابلان للوصول من الإنترنت. يهيئ Compose DNS 1.1.1.1 و8.8.8.8 لـCaddy عندما يفشل محلل المضيف داخل Docker.
curl إلى HTTPS يُرجع إخراجاً فارغاً أو يفشل في المحاولة الأولىانتظر حتى تظهر عبارة تم الحصول على الشهادة بنجاح في docker compose logs caddy.
عنوان IP الخاص بالعميل في السجلات هو 172.x.x.xاضبط TRUST_X_FORWARDED_FOR=1 عند استخدام Caddy، ثم أعد إنشاء الحاويات: docker compose up -d --force-recreate.