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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
SteppingStones — أداة قائمة على الويب لتسجيل أنشطة الفريق الأحمر وإعداد التقارير والوعي الظرفي، مع تكامل مع Cobalt Strike وBloodHound. | Kitploit
أدوات/GitHubGitHub/nccgroup/steppingstones
البرمجة النصية والأتمتةجمع المعلوماتاختبار الاختراقالقيادة والسيطرةالأدوات والمكوناتالفريق الأحمر
GitHubnccgroup/steppingstones

SteppingStones

أداة قائمة على الويب لتسجيل أنشطة الفريق الأحمر وإعداد التقارير والوعي الظرفي، مع تكامل مع Cobalt Strike وBloodHound.

عرض المستودع
24334منذ 0 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Stepping Stones

الغرض

مركز لأنشطة الفريق الأحمر للمساعدة في حفظ السجلات والوعي بالموقف وإعداد التقارير. توفر Stepping Stones واجهة مستخدم ويب للفريق لتسجيل الأنشطة وإنشاء مقتطفات تقارير. تهدف الواجهة إلى أن تكون سريعة بما يكفي لاستخدامها طوال فترة التمرين، وليس فقط في مرحلة إعداد التقارير.

منشور مدونة الإصدار

التثبيت

Stepping Stones هي تطبيق Python Django، لذا لتشغيل نسخة محلية:

  1. ثبّت أحدث إصدار من Python 3 (تم اختباره مع 3.12.2 على Windows وLinux)
  2. انتقل إلى الدليل الجذر لنسخة من هذا المستودع
  3. أنشئ بيئة افتراضية لفصل التبعيات عن التطبيقات الأخرى: python -m venv .venv
  4. فعّل البيئة الافتراضية: .venv\Scripts\activate أو source .venv/bin/activate على *nix
  5. ثبّت التبعيات: pip install -r requirements.txt
  6. تأكد من أن وحدة مهام الخلفية الخارجية تحتوي على جميع الترحيلات المطلوبة: python manage.py makemigrations background_task
  7. حدّث مخطط قاعدة البيانات: python manage.py migrate
  8. شغّل التطبيق:
    • إذا كنت تعمل على نظام Linux مع systemd، راجع دليل systemd
    • للإصدارات التطويرية:
      • شغّل python manage.py runserver و python manage.py process_tasks بشكل متزامن
    • للإصدارات الإنتاجية:
      • شغّل python manage.py check --deploy للحصول على نصائح التشديد، ثم اتبع دليلًا مثل: https://docs.djangoproject.com/en/6.0/howto/deployment/
  9. قم بزيارة التطبيق لتكوين مهمة ومستخدم إداري: على سبيل المثال الوصول إلى http://127.0.0.1:8000 إذا كان يعمل محليًا
    • ملاحظة: سيُستخدم المستخدم الذي تم إنشاؤه أيضًا للتطبيق الرئيسي وسيظهر باسم "مشغّل الفريق الأحمر" مقابل الأحداث المسجلة، لذا اختر اسم مستخدم مناسبًا، مثل "ST" أو "stephen"، بدلًا من "admin". إذا كنت تستخدم تكامل Cobalt Strike، فإن استخدام نفس أسماء المستخدمين في كلتا الأداتين سيساعد في التكامل.

تكامل Cobalt Strike

  • ضع نسخة مرخّصة من Cobalt Strike في /opt/cobaltstrike أو c:\tools\cobaltstrike-dist\cobaltstrike

على خادم الفريق - افتح ثغرة في جدار الحماية للسماح لـ Stepping Stones بالاتصال، على سبيل المثال:

  • على AWS، اجعل مجموعة أمان Stepping Stones مسموحًا لها بالوصول إلى المنفذ 50050 على خادم الفريق
  • على المضيف، تأكد من أن جدار الحماية يسمح أيضًا بحركة المرور الواردة، على سبيل المثال sudo ufw allow proto tcp from 172.31.16.0/20 to any port 50050

تحديث التطبيق

إذا كنت تشغل نسخة محلية، وعندما يتم تحديث الكود في git وتريد الميزات الجديدة:

  1. أوقف كلتا الخدمتين، على سبيل المثال باستخدام systemd:
    • sudo service ssbot stop
    • sudo service steppingstones stop
  2. احصل على أحدث إصدار، على سبيل المثال من https://github.com/nccgroup/SteppingStones/archive/refs/heads/main.zip
  3. فك ضغط الملف وانسخ الملفات فوق النشر الحالي، على سبيل المثال rm -rf /tmp/stepping-stones-main; unzip /tmp/stepping-stones-main.zip && cp -R /tmp/stepping-stones-main/* /opt/steppingstones
  4. فعّل البيئة الافتراضية (إذا لم تكن مفعّلة بالفعل) من دليل steppingstones: .venv\Scripts\activate أو source .venv/bin/activate على *nix
  5. اجلب أي تبعيات جديدة باستخدام: pip install -r requirements.txt
  6. تأكد من أن وحدة مهام الخلفية الخارجية تحتوي على جميع الترحيلات المطلوبة: python manage.py makemigrations background_task
  7. شغّل أي سكربتات ترحيل لتحويل قاعدة البيانات المحلية إلى المخطط الجديد: python manage.py migrate.
    • إذا طلب منك Django تشغيل python manage.py makemigrations فتوقف فورًا وتواصل مع مطوري Stepping Stones - من المهم أن يعمل جميع المستخدمين من نفس مجموعة سكربتات الترحيل ويجب تنسيق ذلك عبر المطورين.

البدء من جديد بقاعدة بيانات نظيفة

إذا كنت تستخدم نفس المثيل لمهام مختلفة وترغب في أرشفة البيانات القديمة ثم البدء من جديد، يمكنك:

  • تنفيذ الخطوة 1 من تحديث التطبيق أعلاه لإيقاف التطبيق
  • إعادة تسمية قاعدة بيانات SQLite:
    • mv db.sqlite3 db.sqlite.OLD_CLIENT_NAME
  • نفّذ الخطوات 2 و4 و7-9 من التثبيت أعلاه لإنشاء بنية قاعدة البيانات الصحيحة والوصول إلى التطبيق المُعد حديثًا.

النسخ الاحتياطي

يستخدم النظام SQLite. قم بعمل نسخة احتياطية من ملف db.sqlite3 في جذر الخادم أو عبر واجهة الويب بشكل دوري لحماية بياناتك القيمة.

خطافات الويب (Web Hooks)

سيتم إرسال مستند JSON صغير إلى كل عنوان URL لخطاف الويب المُعد عند الأحداث الرئيسية. يتبع مستند JSON دائمًا البنية التالية:

root@kitploit:~
{
    "type": "notification type",
    "message": "Human readable message"
}

يمكن أن يكون حقل type واحدًا مما يلي:

  • new beacon (منارة غير مسبوقة اتصلت بخادم فريق مراقَب)
  • respawned beacon (منارة شوهدت سابقًا اتصلت بخادم فريق مراقَب)
  • returned beacon (منارة تمت مراقبتها صراحةً لإعادة الاتصال وقد أعادت الاتصال للتو)

لاستهلاك ذلك، يمكنك استخدام سيناريو https://make.com، استنادًا إلى المخطط التالي:

root@kitploit:~
{"name":"Webhook to iOS","flow":[{"id":1,"module":"gateway:CustomWebHook","version":1,"parameters":{"hook":129792,"maxResults":1},"mapper":{},"metadata":{"designer":{"x":-386,"y":-129},"restore":{"parameters":{"hook":{"data":{"editable":"true"},"label":"My webhook"}}},"parameters":[{"name":"hook","type":"hook:gateway-webhook","label":"Webhook","required":true},{"name":"maxResults","type":"number","label":"Maximum number of results"}],"interface":[{"name":"type","type":"text"},{"name":"message","type":"text"}]}},{"id":8,"module":"ios:SendNotification","version":1,"parameters":{"device":171760},"mapper":{"body":"{{1.message}}","title":"{{1.type}}","action":"","priority":10,"collapsible":false},"metadata":{"designer":{"x":-31,"y":-128},"restore":{"expect":{"action":{"label":"Default"},"priority":{"label":"Deliver immediately"}},"parameters":{"device":{"data":{"editable":"undefined"},"label":"Personal Phone"}}},"parameters":[{"name":"device","type":"device:apn","label":"Device","required":true}],"expect":[{"name":"title","type":"text","label":"Title","required":true},{"name":"body","type":"text","label":"Body"},{"name":"action","type":"select","label":"Action","validate":{"enum":["open_url"]}},{"name":"priority","type":"select","label":"Priority","required":true,"validate":{"enum":[10,5]}},{"name":"collapsible","type":"boolean","label":"Collapse push notifications","required":true}}],"metadata":{"instant":true,"version":1,"scenario":{"roundtrips":1,"maxErrors":3,"autoCommit":true,"autoCommitTriggerLast":true,"sequential":false,"confidential":false,"dataloss":false,"dlq":false},"designer":{"orphans":[]},"zone":"eu1.make.com"}}

استورد المخطط أعلاه عن طريق إنشاء سيناريو فارغ واستخدام ميزة "Import Blueprint" تحت قائمة "..." (المزيد) الموجودة في أسفل منتصف واجهة الويب.

ثم يلزم خطوتان إضافيتان:

  • انقر على دائرة خطاف الويب وأضف خطاف ويب جديدًا باسم محدد لتوليد عنوان URL
  • انقر على شعار Apple لتسجيل iPhone في make.com باستخدام تطبيق integromat الخاص بهم.

يمكن اختبار خطافات الويب عبر زر في صفحة خطافات الويب في Stepping Stones.

نموذج الأمان

تستخدم Stepping Stones نظام أذونات Django على مستوى النموذج، مما يسمح بتقييد المستخدمين من إنشاء وتحرير وعرض وحذف كل نوع من نماذج البيانات. يمكن العثور على المجموعات في وحدة التحكم /admin التي تمنح مجموعة من الأذونات، على سبيل المثال مناسبة للفريق الأزرق للعميل، لأي عضو في تلك المجموعة.

المجموعات الحالية هي:

الدورالوصف
الفريق الأزرق للعميل - قراءة فقطيمكنه قراءة صفحتي الأحداث والملفات
الفريق الأزرق للعميل - كتابة محدودةكما في الفريق الأزرق للعميل - قراءة فقط مع صلاحية الكتابة في حقلي النتيجة والاكتشاف للحدث

يُمنح المستخدمون الذين يتم إنشاؤهم أثناء عملية التثبيت حالة "superuser" وبالتالي لديهم ضمنيًا جميع الأذونات الممكنة. ومع ذلك، عند إنشاء المستخدمين يدويًا عبر وحدة التحكم الإدارية، تأكد من عدم تمييزهم كـ "staff" ولا "superuser" بحيث يبدأون بدون أذونات ضمنية وبالتالي لن يحصلوا على أذونات إلا من خلال إضافتهم إلى مجموعات.

الترجمة المحلية (Localisation)

يمكن تعديل المناطق الزمنية للمستخدمين عبر بوابة /admin. يتم إخراج الأوقات في التقارير بتوقيت UTC عمدًا لتسهيل الربط من قبل الفرق الزرقاء.

يجب أن تتطابق تنسيقات التواريخ المعروضة في Stepping Stones مع إعدادات المتصفح المحلية. أي أن المستخدمين الذين يكون متصفحهم مضبوطًا على إعدادات محلية أمريكية سيشاهدون التواريخ بصيغة MM/DD/YYYY في واجهة الويب ومقتطفات التقارير.

EventStream

يمكن لـ Stepping Stones استيعاب السجلات من الأدوات الأخرى إذا تم تنسيقها بتنسيق EventStream المخصص القائم على JSON. التنسيق موضح داخل الواجهة الرسومية لـ SteppingStones، بما في ذلك المخططات وبيانات الأمثلة.

بمجرد استيعاب سجل EventStream بواسطة Stepping Stones، يمكن نسخ الإدخالات ذات الصلة المحددة إلى أحداث للتقرير.

تفاصيل تكامل Cobalt Strike

الطريقة المفضلة لتكامل Cobalt Strike هي عبر SSBot. يتطلب ذلك نسخة مرخّصة من Cobalt Strike في /opt/cobaltstrike أو c:\tools\cobaltstrike والتي ستُستخدم للاتصال بأي خوادم فريق (مفعّلة) تم تكوينها في الواجهة الرسومية.

بمجرد التكامل:

  • ستحتوي القوائم المنسدلة للمصدر/الهدف على المنارات
  • ستحتوي القوائم المنسدلة للملفات على الملفات المرفوعة/المحمّلة عبر CS
  • سيتم ملء تبويب بيانات الاعتماد بناءً على مخرجات الأدوات وأي بيانات اعتماد مضافة إلى CS.
  • يمكن تحويل إجراءات CS الفردية إلى أحداث - يرجى التحلي بالانتقائية وإضافة سياق لكل حدث بدلاً من تكرار الإجراءات بشكل جماعي للحفاظ على جودة التقرير.

هناك أوامر إضافية لسطر الأوامر يمكن استخدامها إذا لم يعمل SSBot كما هو مقصود:

  • .\manage.py reset_cs_data [-s SERVER] - سيعيد تعيين أي بيانات تم تحليلها من خادم الفريق المحدد، أو الكل إذا لم يتم إعطاء اسم. لن يؤثر ذلك على البيانات المشتقة من سجلات CS، مثل الأحداث أو بيانات الاعتماد المستنسخة يدويًا.
  • .\manage.py parse_log_tar <file name> - سيحلل محتويات دليل سجلات، مضغوطًا كملف tar ومأخوذًا من خادم فريق. ملاحظة: لا يتضمن هذا جميع البيانات التي يمكن الوصول إليها عبر SSBot، وبالتالي فهي ليست تقنية الاستيعاب المفضلة

تكامل BloodHound

سيتم استخدام خوادم Neo4j المكوّنة عبر واجهة الويب من أجل:

  • تحديث حالة owned في BloodHound عند إضافة بيانات اعتماد مع كلمة مرور، أو عند تشغيل منارة على مضيف معين كمسؤول النظام (system).
  • ملء القوائم المنسدلة للمصدر/الهدف بالمستخدمين وأجهزة الكمبيوتر
  • توفير تقارير إضافية حول الحسابات في قسم بيانات الاعتماد في Stepping Stones

إضافات إعداد التقارير

من الممكن توسيع وظائف Stepping Stones عبر الإضافات. توجد وثائق إضافية هنا

تنزيل الأداة
  • أعد تشغيل كلتا الخدمتين، على سبيل المثال باستخدام systemd:
    • sudo service ssbot restart
    • sudo service steppingstones restart
  • تأكد من عدم وجود أخطاء، على سبيل المثال باستخدام systemd journalctl -u steppingstones