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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
FFM — وضع الكفاح من أجل الحرية: مجموعة أدوات اختراق مفتوحة المصدر | Kitploit
أدوات/GitHubGitHub/justicerage/ffm
تصعيد الامتيازاتالحركة الجانبيةتسريب البياناتجمع المعلوماتما بعد الاستغلالاختبار الاختراقالقيادة والسيطرةالأدوات والمكوناتالفريق الأحمر
GitHubjusticerage/ffm

FFM

وضع الكفاح من أجل الحرية: مجموعة أدوات اختراق مفتوحة المصدر

34947منذ 4 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

وضع القتال من أجل الحرية (FFM)

FFM هي أداة تسخير اختراق يمكنك استخدامها خلال مرحلة ما بعد الاستغلال في مشاركة فريق الاختراق الأحمر (Red Teaming). تم اشتقاق فكرة الأداة من محاضرة عام 2007 من @thegrugq.

تم تقديمها في SSTIC 2018 (فيديو) وشرائح العرض المصاحبة متاحة على هذا الرابط. إذا لم تكن على دراية بهذا النوع من الأدوات، يُنصح بشدة بإلقاء نظرة عليها لفهم الغرض من أداة التسخير (hacking harness). جميع التعليقات مضمنة في الشرائح.

هذا المشروع موزع بموجب شروط رخصة GPL v3.

التوثيق

التوثيق الأساسي موجود في هذا الملف README ووحدات الأوامر ضمن commands/. روابط محاضرة SSTIC المذكورة أعلاه تظل أفضل خلفية عالية المستوى لكيفية استخدام الأداة. مواد إضافية للشرح متوفرة على:

  • https://ice-wzl.gitbook.io/hacknetics/c2-frameworks/ffm-documentation

المساهمون

  • ice-wzl ساهم بأوامر وتوثيق وإعادة هيكلة خلال تاريخ المشروع.

التثبيت

تثبيت عبر Docker

  • مع تنوع محفّرات الأوامر الحديثة، نوصي بشدة باستخدام docker مع هذه الأداة.
  • استخدام ملف Dockerfile في هذا المستودع سيقلل بشكل كبير من الأخطاء المحتملة.
  • استخدام حاوية للتفاعل مع المضيفين البعيدين هو أيضًا أكثر أمانًا. إذا تم استغلالك أثناء التفاعل مع مضيف بعيد، فسيكونون داخل حاويتك بدلاً من مضيفك الفعلي. لكن دعونا نأمل ألا يحدث هذا.
  • تأكد من تثبيت Docker على نظامك المحلي.
root@kitploit:~
git clone https://github.com/JusticeRage/FFM.git
cd /FFM

docker build Docker_Install/ -t ffm:ffm

docker image list 
REPOSITORY                TAG         IMAGE ID      CREATED        SIZE
localhost/ffm             ffm         fb6dd17e3b91  9 minutes ago  614 MB
docker.io/library/ubuntu  22.04       3b418d7b466a  2 weeks ago    80.3 MB

# لتشغيل الحاوية الجديدة والدخول إلى موجه /bin/bash كمستخدم جذر
docker run -it --entrypoint /bin/bash -u 0 fb6dd17e3b91
  • بمجرد الدخول إلى الحاوية، قم بتعيين passwd لكل من root و neo
  • ثم su neo وستكون جاهزًا.

تثبيت بدون Docker

  • غير موصى به
root@kitploit:~
 git clone https://github.com/JusticeRage/FFM.git
 cd /FFM
 pip install -r requirements.txt

الاستخدام

الهدف من أداة التسخير (hacking harness) هو العمل كمساعد يقوم بأتمتة المهام الشائعة خلال مرحلة ما بعد الاستغلال، وكذلك حماية المستخدم من الأخطاء التي قد يرتكبها.

إنها أدوات للقشرة (shell). قم بتشغيل ./ffm.py لتفعيلها، ويمكنك البدء في العمل فورًا. الأوامر موزعة عبر وحدات صغيرة ضمن commands/، مع commands/command_manager.py المسؤول عن اكتشافها وتسجيلها. المجموعات الرئيسية هي: التعداد (enumeration)، المساعدة (help)، التخفي (stealth)، النقل (transfer)، والتنفيذ (execution).

هناك أمران يجب أن تعرفهما:

  • اكتب !list لعرض جميع الأوامر التي توفرها الأداة.
  • اكتب !list tags لرؤية العلامات المختلفة التي يمكن تصنيف الأوامر تحتها.
root@kitploit:~
!list tags
قائمة الأوامر المتاحة:
	 enumeration
	 execution
	 help
	 stealth
	 transfer
  • يمكنك الآن كتابة !list enumeration (أو أي علامة أخرى) لرؤية الأوامر التي تندرج تحت هذه الفئة.
root@kitploit:~
!list enumeration
قائمة الأوامر المتاحة:
	!backup-hunter: يبحث عن ملفات النسخ الاحتياطي
	!info: يعرض معلومات وحدة المعالجة المركزية (CPU)، والبنية (Architecture)، والذاكرة (Memory)، وإصدار النواة (Kernel Version) للجهاز الحالي.
	!log: يفعّل أو يعطّل تسجيل مدخلات ومخرجات الأداة في ملف.
	!mtime: يعرض الملفات التي تم تعديلها في آخر X دقيقة
	!os: يعرض توزيعة نظام التشغيل للجهاز الحالي.
	!db-hunter: يبحث عن ملفات .sqlite و .sqlite3 و .db
	!sshkeys: يبحث عن مفاتيح SSH الخاصة والعامة على الجهاز الحالي.
	!suid: يبحث عن الملفات الثنائية ذات بتات SUID و SGID على الجهاز الحالي.
	--snip--
  • اضغط SHIFT+TAB لإتمام الأوامر على الجهاز المحلي. قد يكون هذا مفيدًا إذا كنت متصلاً عبر SSH بجهاز بعيد ولكنك تحتاج إلى الإشارة إلى ملف موجود على جهازك.

قائمة الميزات

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

الأوامر

أوامر التعداد (Enumeration)

  • !os أمر بسيط للغاية يقوم فقط بتشغيل cat /etc/*release* لعرض نظام التشغيل الذي يعمل عليه الجهاز الحالي. ربما يكون أكثر قيمة كدليل على أنه في سياق أداة التسخير، يمكنك تعريف اختصارات (aliases) تعمل عبر حدود الأجهزة. اتصل بـ SSH بأي جهاز واكتب !os وسيتم تنفيذ الأمر. أوامر التعداد موجودة في commands/enumeration_commands.py، وأوامر المساعدة في commands/help_commands.py، والأوامر المتعلقة بالتخفي موزعة عبر commands/stealth_commands.py و commands/notty_sudo.py و commands/log_control.py.
  • !backup-hunter يبحث عن ملفات النسخ الاحتياطي
  • !info يعرض معلومات وحدة المعالجة المركزية (CPU)، والبنية (Architecture)، والذاكرة (Memory)، وإصدار النواة (Kernel Version) للجهاز الحالي.
  • !log يفعّل أو يعطّل تسجيل مدخلات ومخرجات الأداة في ملف. مطبق في commands/log_control.py.

أوامر النقل (Transfer)

  • أوامر تساعدك في سحب (pull) ودفع (push) الملفات، وهي واضحة جدًا.
  • !download [ملف بعيد] [مسار محلي] يحصل على ملف من الجهاز البعيد وينسخه محليًا عبر الطرفية. هذا الأمر أكثر تعقيدًا بعض الشيء لأن التحقق من الأخطاء الأكثر دقة مطلوب، لكنه أمر آخر يمكنك قراءته بسهولة للبدء. موجود في commands/download_file.py. لاحظ أنه يتطلب xxd أو od على الجهاز البعيد ليعمل بشكل صحيح.
  • !download-dir [دليل بعيد] [وجهة محلية] يقوم ببث أرشيف tar لدليل بعيد عبر الطرفية ويستخرجه محليًا دون لمس نظام الملفات البعيد. موجود في commands/download_directory.py. يتطلب tar و base64 على الجهاز البعيد، ويستخدم gzip أيضًا عندما يكون متاحًا.
  • !upload [ملف محلي] [مسار بعيد] يعمل تمامًا مثل الأمر السابق، باستثناء أنه يتم وضع ملف محلي على الجهاز البعيد. موجود في commands/upload_file.py.

أوامر التنفيذ (Execution)

  • !sh [سكريبت محلي] يقوم بتشغيل سكريبت شل من الجهاز المحلي في الذاكرة. موجود في commands/remote_script.py.
  • !py [سكريبت محلي] يقوم بتنفيذ سكريبت Python محلي على الجهاز البعيد، ويفعل ذلك بالكامل في الذاكرة. موجود في commands/remote_script.py. اطّلع على مستودعي الآخر للحصول على سكريبتات قد ترغب في استخدامها. يستخدم هذا الأمر بناء جملة متعدد الأسطر مع <<، مما يعني أن القشرة الزائفة (pseudo-shells) التي لا تدعم ذلك (Weevely مثال جيد) ستكسر هذا الأمر بشكل كبير.
  • !py3 [سكريبت محلي] يفعل نفس الشيء تمامًا للأنظمة التي تحتوي على Python3. يستخدم نفس الوحدة commands/remote_script.py.
  • !elf [ملف محلي] يقوم بتشغيل ملف تنفيذي من الجهاز المحلي في الذاكرة باستخدام أي مترجم Python متوافق متاح على الجهاز البعيد. موجود في commands/remote_elf.py.

أوامر التخفي (Stealth)

  • أنا مدرك تمامًا أن هاتين الوحدتين هما عكس "التخفي" تمامًا، ولكن هذا هو المكان الذي توضع فيه حاليًا حتى يتم إيجاد موقع بديل. من المحتمل أن تحتوي فئة التخفي هذه على أوامر تساعدك على الاندماج بشكل أفضل بالإضافة إلى الأوامر التي قد تجعلك بارزًا.
  • !pty يقوم بإنشاء TTY، وهو شيء لا تريده في معظم الحالات لأنه يميل إلى ترك أدلة جنائية. ومع ذلك، فإن بعض الأوامر (sudo) أو ثغرات الاستغلال تتطلب TTY للتشغيل، لذلك يتم توفير هذا للراحة. يتم تمرير UNSET HISTFILE HISTFILESIZE HISTSIZE PROMPT_COMMAND إليه بمجرد إنشائه، بالإضافة إلى export TERM=xterm
  • !sudo يستدعي sudo بدون TTY. موجود في commands/notty_sudo.py.

يمكن تكوين الإضافات (plugins) بشكل أكبر عن طريق تحرير ffm.conf.

المعالجات (Processors)

من الناحية النظرية، تُستخدم الأوامر (كما هو موضح أعلاه) لإنشاء بعض أوامر bash التي يتم إعادة توجيهها إلى القشرة. يمكنها إجراء عمليات أكثر تعقيدًا من خلال التقاط مخرجات القشرة وإنشاء تعليمات إضافية بناءً على ما يتم إرجاعه. تختلف المعالجات قليلاً حيث يتم استخدامها بدلاً من ذلك لإعادة كتابة البيانات المتداولة بين المستخدم وعملية bash الأساسية. بينما قد يكون من الصحيح أن أي معالج يمكن إعادة كتابته كأمر، إلا أنه يبدو أكثر نظافة لفصل الاثنين. تعمل معالجات الإدخال (input processors) على أي شيء يكتبه المستخدم بمجرد الضغط على مفتاح ENTER، ويمكن لمعالجات الإخراج (output processors) تعديل أي شيء يتم إرجاعه بواسطة القشرة.

  • مثال جيد على المعالجات موجود في processors/ssh_command_line.py. كل ما يفعله هو إضافة خيار -T إلى أي أمر SSH يراه إذا كان مفقودًا. تأكد من الاطلاع على الكود البسيط الخاص به إذا كنت مهتمًا بكتابة معالج.
  • معالج إدخال آخر موجود في الإطار (framework)، processors/assert_torify.py، يحتوي على قائمة سوداء لأوامر الشبكات (ssh, nc) ويحظرها إذا لم تكن تبدو وكأنها موجهة عبر أداة مثل torify. تبذل الأداة قصارى جهدها لإزعاج المستخدم فقط إذا بدا أن الأمر يتم تشغيله على الجهاز المحلي. من الواضح أن هذا لا ينبغي أن يكون الحماية الوحيدة ضد تسريب عنوان IP المنزلي.
  • أخيرًا، processors/sample_output_processor.py هو معالج إخراج بسيط جدًا يقوم بتمييز أي ظهور لكلمة "password" باللون الأحمر. نظرًا لأنه عديم الفائدة تمامًا، فهو غير مفعل في الإطار ولكن لا يزال بإمكانك استخدامه كنقطة بداية إذا كنت ترغب في القيام بشيء أكثر تطورًا.

المشكلات المعروفة

CTRL+R لم يتم تنفيذه بعد وكلنا نفتقده بشدة.

الأكثر إشكالية هو حقيقة أن الإطار (framework) يتعطل من وقت لآخر. في 99% من الحالات، يحدث هذا عندما يفشل في اكتشاف أن الأمر الذي أطلقه قد انتهى من التشغيل. عادةً، هذا يعني أن موجه الأوامر (command prompt) للجهاز الذي قمت بتسجيل الدخول إليه لم يتم التعرف عليه على هذا النحو. في هذه الحالة، يمكنك محاولة تحسين التعبير النمطي (regular expression) الموجود في بداية ملف ffm.py، أو تسجيل الدخول إلى نفس الجهاز باستخدام ssh -T لأنه لن يكون هناك موجه إشكالي بعد ذلك. بشكل افتراضي، سيتخلى FFM عن محاولة قراءة مخرجات الأمر بعد 5 دقائق (قد تنفذ بعض الإضافات مهلات زمنية مختلفة)؛ لذلك إذا تعطل الإطار، ستحتاج إلى الانتظار حتى ترى رسالة خطأ (على الرغم من أنه إذا كانت العملية الأساسية لا تزال قيد التشغيل، فقد لا تزال غير قادر على كتابة الأوامر).

بيان ختامي

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

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

المهام المتبقية

  • وحدة تشفير ملف واحد

الاتصال

تنزيل الأداة
  • !mtime يعرض الملفات التي تم تعديلها في آخر X دقيقة. على سبيل المثال !mtime 5 سيجلب جميع الملفات على الجهاز المحلي (التي لديك صلاحية رؤيتها) التي تم تعديلها في آخر 5 دقائق.
  • !db-hunter يبحث عن ملفات .sqlite و .sqlite3 و .db وملفات قواعد بيانات أخرى
  • !sshkeys يبحث عن مفاتيح SSH الخاصة والعامة على الجهاز الحالي.
  • !suid يبحث عن الملفات الثنائية ذات بتات SUID و SGID على الجهاز الحالي.
  • !strange-dirs يتحقق من الجهاز بدءًا من المسار الذي يحدده المستخدم بحثًا عن أدلة غريبة على المضيف
  • !sudo-version يتحقق من وجود إصدار ضعيف من sudo
  • !vm يتحقق مما إذا كان الجهاز جهازًا افتراضيًا (Virtual Machine)