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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/whereisxuezugi/cplhf
أدوات دفاعيةتحليل الثغرات الأمنيةالبرمجة النصية والأتمتةتدقيق التكوينالتحقيق الجنائي الرقميCTFاختبار الاختراقالتعلم والتعليمالاستجابة للحوادث
GitHubwhereisxuezugi/cplhf

CPLHF

مجموعة أدوات Bash معيارية تُحصّن أنظمة Debian/Ubuntu لمسابقات CyberPatriot، مع أتمتة تحصين الحسابات وجدار الحماية وSSH وPAM والخدمات مع التسجيل والنسخ الاحتياطي.

عرض المستودع
5121منذ 23 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

مجموعة أدوات تقوية Linux الخاصة بـ CyberPatriot

مجموعة أدوات Bash معيارية لتقوية أنظمة عائلة Debian/Ubuntu تحت ضغط الوقت في المسابقات. بُنيت وصُقلت عبر عدة مواسم من مسابقة CyberPatriot الوطنية للدفاع السيبراني للشباب، وحققت مؤخرًا المستوى البلاتيني في قسم Linux في الجولة نصف النهائية لعام 2025.

هذا ليس إطار عمل عامًا للامتثال. إنه أداة أتمتة لقائمة تحقق لتمرين مؤقت مدته ست ساعات: ينفذ الأغلبية القابلة للبرمجة النصية من عملية تقوية Linux بشكل صحيح وسريع وقابل للتكرار، ويسجل كل ما لمسه، ويترك القرارات التقديرية للشخص الذي يشغله.

المحتويات

  • لماذا يوجد هذا
  • البنية
  • البدء السريع
  • ما الذي يفعله فعليًا
  • ملاحظات السلامة في المسابقات
  • الإعدادات
  • تخطيط المستودع
  • الاختبار
  • ضوابط الأمان والمراجع
  • ما لا يفعله هذا المشروع عمدًا
  • الترخيص

لماذا يوجد هذا

تُقيّم جولات Linux في CyberPatriot صورة حية وفق معيار يكافئ مجموعة متوقعة إلى حد كبير من خطوات التقوية -- نظافة الحسابات، سياسة كلمات المرور، إعداد جدار الحماية، تعرض الخدمات، أذونات الملفات، مستوى التحديثات -- ضمن حد زمني صارم، عادةً دون إشعار مسبق بالثغرات المزروعة بالضبط. تنفيذ قائمة التحقق هذه يدويًا وبشكل صحيح تحت العد التنازلي هو حيث تخسر الفرق نقاطًا سهلة بسبب الأخطاء المطبعية والخطوات المنسية، لا بسبب مواد غير معروفة.

بدأت مجموعة الأدوات هذه كنص برمجي واحد متكامل كُتب تحت هذا الضغط بالضبط. هذا المستودع هو إعادة كتابة لذلك النص: نفس تغطية قائمة التحقق، معاد هيكلتها إلى وحدات صغيرة أحادية الغرض يسهل قراءتها واختبارها والتفكير فيها بشكل مستقل، مع ربط كل قرار غير بديهي بقسم محدد من معيار CIS Benchmark أو ضابط من NIST SP 800-53 (انظر ضوابط الأمان والمراجع).

البنية

flowchart TD
    A[bin/harden.sh] --> B[lib/common.sh<br/>logging, backups, run wrapper]
    A --> C[Service-role prompts<br/>or --config file]
    A --> D[lib/packages.sh<br/>updates, attack-tool removal]
    A --> E[lib/firewall.sh<br/>default-deny + ufw]
    A --> F[lib/ssh.sh]
    A --> G[lib/services.sh<br/>samba/ftp/mail/http/mysql/dns]
    A --> H[lib/users.sh<br/>account review, hidden UID 0]
    A --> I[lib/kernel.sh<br/>sysctl hardening]
    A --> J[lib/pam.sh<br/>password policy, lockout]
    A --> K[lib/filesystem.sh<br/>permissions, cron, banners]
    A --> L[lib/monitoring.sh<br/>fail2ban, auditd, rkhunter]
    A --> M[lib/forensics.sh<br/>baseline snapshot]
    D & E & F & G & H & I & J & K & L & M --> N[(~/hardening-run/<br/>log + backups + baseline)]

يتم استدعاء كل وحدة بواسطة bin/harden.sh، الذي يتولى تحليل الوسائط، واستبيان دور الخدمة، وترتيب التنفيذ. لا تستدعي الوحدات بعضها البعض مباشرة، وكل أمر يغيّر الحالة في كل وحدة يمر عبر غلاف run() في lib/common.sh، مما يمنح المشروع بأكمله مكانًا واحدًا لتنفيذ دعم التشغيل التجريبي، وتسجيل متسق، ومعالجة أخطاء غير قاتلة.

البدء السريع

git clone <this-repo>
cd cyberpatriot-linux-hardening
sudo ./bin/harden.sh

سيُطرح عليك سلسلة قصيرة من أسئلة نعم/لا حول دور الجهاز (هل يحتاج Samba، FTP، SSH، خادم ويب، وهكذا)، ثم يعمل دون تدخل عبر الوحدات المذكورة أعلاه. يُكتب سجل، ومجموعة كاملة من النسخ الاحتياطية للإعدادات بطوابع زمنية، ولقطة أساسية للنظام إلى ~/hardening-run/.

في جولة فعلية، تجاوز مطالبات التأكيد لكل حزمة وأجب على أسئلة الدور من ملف إجابات مُعد مسبقًا بدلًا من كتابتها مباشرة:

cp examples/config.env.example my-machine.env
# edit my-machine.env for this box's actual role
sudo ./bin/harden.sh --config my-machine.env --auto-approve

تريد رؤية ما سيفعله بالضبط قبل أن يلمس أي شيء؟

sudo ./bin/harden.sh --dry-run --config my-machine.env

ما الذي يفعله فعليًا

الوحدةتفعل
lib/packages.shتحديث كامل للنظام؛ يزيل كاسرات كلمات المرور وأدوات الاستغلال تلقائيًا؛ يراجع الأدوات مزدوجة الاستخدام (nmap، Wireshark، netcat) والخدمات القديمة (VNC، NFS، telnet) قبل إزالتها
lib/firewall.shرفض افتراضي للوارد / سماح افتراضي للصادر عبر ufw، بالإضافة إلى حظر صريح لمنفذ باب خلفي شائع معروف
lib/ssh.shتشفيرات/KEX/MACs حديثة، لا تسجيل دخول للجذر، حدود الاتصال والجلسة -- أو إزالة SSH بالكامل إذا لم يكن الدور بحاجة إليه
lib/services.shSamba، FTP، البريد، الطباعة، MySQL، HTTP، DNS: كل منها يُثبّت ويُقوّى بأدنى حد إذا كان الدور بحاجة إليه، أو يُزال ويُحظر بجدار الحماية إذا لم يكن كذلك
lib/users.shمراجعة تفاعلية للحسابات الموجودة (حقوق المسؤول، الحذف، إعادة تعيين كلمة المرور)، واكتشاف حسابات UID-0 المخفية وكلمات المرور الفارغة
lib/kernel.shإعدادات sysctl لحزمة الشبكة والحماية الذاتية للنواة (توجيه المصدر، إعادة توجيه ICMP، ASLR، نطاق ptrace، تقييد dmesg/kptr)
lib/pam.shتعقيد كلمة المرور وسجلها عبر pam_pwquality/pam_pwhistory، وقفل الحساب عبر pam_faillock، وتقادم كلمة المرور في login.defs
lib/filesystem.shأذونات الملفات الأساسية، تقييد cron/at، rc.local بأدنى حد، لافتات دخول قانونية، فحص للقراءة فقط لـ SUID/الملفات القابلة للكتابة من الجميع/الملفات بلا مالك
lib/monitoring.shfail2ban وauditd افتراضيًا؛ ClamAV ومسح كامل بـ rkhunter/chkrootkit اختياريان (انظر ملاحظات السلامة في المسابقات)
lib/forensics.shلقطة للقراءة فقط للمستخدمين والعمليات والمنافذ المستمعة والحزم المثبتة للمقارنة لاحقًا

tools/find-port-owner.sh وtools/list-nonstandard-users.sh أدوات مساعدة صغيرة مستقلة لنفس نوع عمل الفرز، قابلة للاستخدام بشكل مستقل عن النص الرئيسي -- انظر ترويستهما للاستخدام.

ملاحظات السلامة في المسابقات

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

  • مصادقة كلمة مرور SSH مفعّلة افتراضيًا. توصية CIS الأكثر صرامة، القائمة على المفاتيح فقط، تبعد قيمة إعداد واحدة (SSH_PASSWORD_AUTH=no)، لكن الافتراضي هنا يفضّل عدم إغلاق الفريق خارج جهازه عندما لم يقم أحد بتوفير المفاتيح بعد.
  • الأدوات مزدوجة الاستخدام تُراجع، ولا تُزال تلقائيًا. nmap، Wireshark، tcpdump، ومتغيرات netcat أدوات مهاجمين شائعة، لكنها أيضًا أدوات مسؤولين شائعة، وبعض صور المسابقات تتطلب تحديدًا إحداها لدور الجهاز المعلن. تُزال بعد التأكيد، لا بصمت.
  • ClamAV ومسح rkhunter/chkrootkit اختياريان (INSTALL_CLAMAV، RUN_BASELINE_SCAN)، لأنهما أبطأ شيئين يمكن لهذا النص فعله ولا يغيّر أي منهما حالة النظام بمفرده. شغّلهما إذا كانت قائمة التحقق لديك تتطلبهما أو لديك وقت فائض.
  • لا شيء هنا يتحقق من اتصال محرك التقييم لديك. وحدة جدار الحماية تسمح افتراضيًا بكل الصادر وتغلق فقط منافذ الوارد للخدمات التي لا يحتاجها الدور، لكن إذا كانت صورتك المحددة تُبلّغ لخادم تقييم أو وكيل محلي عبر منفذ غير قياسي، فعليك التحقق من ذلك -- انظر ~/hardening-run/baseline/listening_ports.txt من تشغيل سابق إذا لم تكن متأكدًا مما يستمع فعليًا قبل تقوية جهاز لأول مرة.
  • كلمات مرور GRUB غير مؤتمتة، لنفس السبب: كلمة مرور GRUB سيئة يمكن أن تحوّل عملية تقوية إلى جهاز غير قابل للإقلاع دون مسار استرداد سريع في منتصف الجولة. انظر docs/security-controls.md للإجراء اليدوي.
  • كل وحدة قابلة للتكرار. إعادة تشغيل النص على جهاز مُقوّى بالفعل (مثلًا، بعد مقاطعة تشغيل جزئي) لن تكرر كتل الإعدادات أو تفشل.

الإعدادات

سيسأل bin/harden.sh تفاعليًا عن دور خدمة الجهاز إذا لم تجب مسبقًا. لتخطي المطالبات، انسخ examples/config.env.example، واملأ الدور الفعلي، ومرّره عبر --config. أي متغير تتركه خارج الملف يعود إلى مطالبة تفاعلية، لذا ملف إعدادات مملوء جزئيًا لا بأس به.

sudo ./bin/harden.sh --config my-machine.env

الوسائط:

الوسيطالتأثير
--config FILEتحميل إجابات الدور/السياسة من ملف env
--dry-runتسجيل كل إجراء سيُتخذ؛ دون تغيير أي شيء
--auto-approveتخطي مطالبات تأكيد الإزالة لكل حزمة

تخطيط المستودع

تنزيل الأداة