Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
reconswarm — وسّع عمليات الاستطلاع لديك بقوة السحابة | Kitploit
أدوات/GitHubGitHub/renatus-cartesius/reconswarm
الاستطلاعاختبار الاختراقأمن السحابةDevSecOpsتعداد النطاقات الفرعية
GitHubrenatus-cartesius/reconswarm

reconswarm

وسّع عمليات الاستطلاع لديك بقوة السحابة

عرض المستودع
925منذ 7 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

ReconSwarm

البنية

ReconSwarm هو إطار عمل نمطي لأتمتة الاستطلاع مصمم للاختبارات الأمنية الموزعة. يقوم بتوفير البنية التحتية السحابية، وتنفيذ خطوط استطلاع متوازية، وجمع النتائج بأقل عبء إعدادات.

يعد ReconSwarm مناسبًا لصيادي برامج مكافآت الثغرات، ومختبري الاختراق، ومهندسي DevSecOps، والباحثين الأمنيين الذين يحتاجون إلى سير عمل استطلاع قابلة للتوسع وآلية دون إدارة يدوية للبنية التحتية.

الميزات

تدفق الأهداف

  • تقسيم الأهداف للتنفيذ المتوازي — يتم تقسيم قائمة الأهداف المجمّعة النهائية بين العمال لتنفيذ مهام الاستطلاع بشكل متوازٍ
  • أنواع أهداف متعددة — تتكون قائمة الأهداف من عدة أنواع من العناصر: نطاقات من استجابة crt.sh، قائمة خارجية (روابط HTTP/HTTPS)، قائمة بسيطة (مصفوفات YAML مضمّنة)، ومخرجات أوامر الصدفة، وهي مرنة جدًا للاستخدام مع أي أدوات (مثل cook وshodan وgau وkatana وغيرها)
  • بنية مستقلة عن مزود السحابة — تسمح بالتكامل السهل مع عدة مزودي خدمات سحابية (تدعم حاليًا AWS وGCP وYandex Cloud وDigital Ocean)
  • مراحل خط أنابيب مرنة — نظام مراحل قابل للتوسع يدعم حاليًا عمليات exec (تنفيذ الأوامر) وsync (مزامنة الملفات والدلائل)
  • سياق القوالب في الخطوات — طريقة مرنة لتمرير البيانات الوصفية من سياق التنفيذ إلى الخطوات

ميزات يجب إنجازها

  • واجهة ويب - واجهة مستخدم بسيطة وسهلة الاستخدام للتفاعل السريع
  • سجلات لحظية من المراحل - التقاط stdout/stderr وإرسالها إلى العميل عبر grpc streaming
  • صدفة عن بُعد للعمال - فتح اتصال ssh من العميل إلى العمال عبر خادم rs
  • مرحلة النتائج - مرحلة لمعالجة البيانات المستلمة من المرحلة السابقة (مثل نتيجة nuclei بصيغة json)، وتخزينها في etcd وإنشاء الإشعارات

البنية المعمارية

يتبع ReconSwarm بنية معمارية نمطية مع فصل واضح للمسؤوليات بين توفير موارد السحابة، والتحكم في الأنظمة البعيدة، وتنفيذ خط الأنابيب، وإدارة الإعدادات.

تجريد مزود السحابة

يستخدم ReconSwarm نمط الاتحاد المُتمايز لمزوّدي الموارد السحابية. يحدد حقل provisioner.type أي إعدادات المزود تكون نشطة:

provisioner:
  type: yandex_cloud  # Discriminator field
  yandex_cloud:       # Active when type: yandex_cloud
    iam_token: "${YC_TOKEN}"
    # key_path: "./sa_auth_key.json"
    folder_id: "${YC_FOLDER_ID}"
    # ... provider-specific settings

يمكن دمج مزودي سحابة إضافيين من خلال تنفيذ واجهة Provisioner وإضافة نوع جديد إلى المصنع (factory).

نظام مراحل خط الأنابيب

المراحل مكونات قابلة للتوسع تنفذ عمليات على الأجهزة الافتراضية للعمال:

  • exec — تنفيذ أوامر الصدفة مع دعم القوالب
  • sync — نسخ الملفات أو الدلائل من الأجهزة الافتراضية البعيدة إلى الجهاز المحلي عبر SFTP (يكتشف تلقائيًا ما إذا كان الملف أو الدليل)

جميع حقول المراحل تدعم عرض القوالب. يمكن إضافة أنواع مراحل جديدة لتوسيع الوظائف.

خادم عديم الحالة وتحمل الأخطاء

خادم ReconSwarm عديم الحالة تمامًا — كل الحالة محفوظة في etcd:

  • حالة خط الأنابيب — الحالة والتقدم والأخطاء لكل خط أنابيب
  • حالة العامل — معلومات الجهاز الافتراضي والمهمة الحالية والحالة
  • مفاتيح SSH — أزواج مفاتيح مولّدة للوصول إلى الأجهزة الافتراضية

تتيح هذه البنية:

الإمكانيةالوصف
التوسع الأفقيتشغيل عدة نسخ من الخادم خلف موازن تحميل
إعادة تشغيل بدون توقفإعادة تشغيل الخادم دون فقدان حالة خط الأنابيب
التعافي من الأعطالتستأنف نسخة الخادم الجديدة من حيث توقفت النسخة السابقة
فحص الحالةالاستعلام عن etcd مباشرة للتصحيح والمراقبة

إعداد التوافر العالي:

                    ┌─────────────┐
                    │   Client    │
                    └──────┬──────┘
                           │
                    ┌──────▼──────┐
                    │Load Balancer│
                    └──────┬──────┘
              ┌────────────┼────────────┐
              │            │            │
       ┌──────▼──────┐ ┌───▼───┐ ┌──────▼──────┐
       │  Server 1   │ │Server2│ │  Server 3   │
       └──────┬──────┘ └───┬───┘ └──────┬──────┘
              │            │            │
              └────────────┼────────────┘
                           │
                    ┌──────▼──────┐
                    │ etcd cluster│
                    └─────────────┘

تتشارك جميع الخوادم نفس مجموعة etcd ويمكنها التعامل مع أي طلب. إذا تعطل خادم أثناء تنفيذ خط الأنابيب، يمكن لخادم آخر مواصلة التنفيذ بعد قراءة الحالة من etcd.

ملاحظة: التنفيذ الحالي يشغّل خطوط الأنابيب في الذاكرة بعد التحميل من etcd. التعافي الكامل من الأعطال مع استئناف خط الأنابيب مخطط له في الإصدارات المستقبلية.

التثبيت

git clone <repository>
cd reconswarm
go mod download
task build

الإعدادات

يفصل ReconSwarm بين إعدادات الخادم و إعدادات خط الأنابيب:

نوع الإعدادالملفالوصف
الخادمreconswarm.yamlإعدادات مزود السحابة وetcd ومجموعة العمال
خط الأنابيبملف YAML منفصلالأهداف والمراحل، يُمرَّر عبر الخيار -f

إعدادات الخادم

يتم تخزين إعدادات الخادم في reconswarm.yaml (يمكن ضبطها عبر متغير البيئة CONFIG_PATH). جميع القيم النصية تدعم توسيع متغيرات البيئة باستخدام صيغة ${VAR} أو $VAR.

# Server settings
server:
  port: 50051

# Etcd connection for state management
etcd:
  endpoints:
    - "localhost:2379"
  dial_timeout: 5  # seconds
  username: ""     # optional, supports ${ETCD_USER}
  password: ""     # optional, supports ${ETCD_PASSWORD}

# Cloud provisioner (discriminated union)
provisioner:
  type: yandex_cloud  # Provider selector

  # Yandex Cloud configuration (active when type: yandex_cloud)
  yandex_cloud:
    iam_token: "${YC_TOKEN}"
    # key_path: "./sa_auth_key.json"
    folder_id: "${YC_FOLDER_ID}"
    default_zone: "ru-central1-b"
    default_image: "fd8b1cmhmncn7lt4tqn4"
    default_username: "root"
    default_cores: 2
    default_memory: 2      # GB
    default_disk_size: 20  # GB

# Worker pool settings
workers:
  max_workers: 5
  setup_commands:
    - "apt update"
    - "apt install -y docker.io"

إعدادات خط الأنابيب

يتم تخزين إعدادات خط الأنابيب في ملف YAML منفصل ويُمرَّر عبر الخيار -f. كلا الصيغتين المغلّفة وغير المغلّفة مدعومتان:

الصيغة المغلّفة (موصى بها):

# pipeline.yaml
pipeline:
  targets:
    - value: "example.com"
      type: crtsh
    - value: ["sub1.example.com", "sub2.example.com"]
      type: list
  stages:
    - name: "Run scanner"
      type: exec
      steps:
        - "nmap -sC -sV -iL {{.Targets.filepath}} -oN /opt/recon/scan.txt"
    - name: "Collect results"
      type: sync
      src: "/opt/recon/scan.txt"
      dest: "./results/{{.Worker.Name}}.txt"

الصيغة غير المغلّفة (مدعومة أيضًا):

# pipeline.yaml
targets:
  - value: "example.com"
    type: crtsh
stages:
  - name: "Run scanner"
    type: exec
    steps:
      - "nmap -iL {{.Targets.filepath}} -oN /opt/recon/scan.txt"

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

تدعم قيم الإعدادات استبدال متغيرات البيئة بصيغتين:

  • ${VAR} — اسم المتغير الكامل بين أقواس
  • $VAR — اسم المتغير البسيط

إذا لم يتم تعيين متغير بيئة، سيُستخدم النص الحرفي (بما في ذلك ${VAR} أو $VAR).

إعداد Yandex Cloud

للتكامل مع Yandex Cloud، استخدم سكربت الإعداد المرفق:

  1. تثبيت Yandex Cloud CLI (إذا لم يكن مثبتًا بالفعل):

    # Follow official Yandex Cloud documentation for CLI installation
    
  2. إعداد Yandex Cloud CLI:

    yc config profile create <profile-name>
    yc config set cloud-id <your-cloud-id>
    yc config set folder-id <your-folder-id>
    
  3. تصدير بيانات الاعتماد:

    source ./secrets-setup.sh
    

    يقوم هذا السكربت بتصدير:

    • YC_TOKEN — رمز IAM للمصادقة
    • YC_FOLDER_ID — معرف المجلد لإدارة الموارد
    • YC_CLOUD_ID — معرف السحابة (إذا لزم الأمر)
  4. المرجع في الإعدادات:

    provisioner:
      type: yandex_cloud
      yandex_cloud:
        iam_token: "${YC_TOKEN}"
        # key_path: "./sa_auth_key.json"
        folder_id: "${YC_FOLDER_ID}"
    
تنزيل الأداة