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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
writehat — أداة تقارير اختبار الاختراق مكتوبة بلغة Python. حرر نفسك من مايكروسوفت وورد. | Kitploit
أدوات/GitHubGitHub/blacklanternsecurity/writehat
اختبار الاختراقالأدوات والمكوناتالتعلم والتعليم
GitHubblacklanternsecurity/writehat

writehat

أداة تقارير اختبار الاختراق مكتوبة بلغة Python. حرر نفسك من مايكروسوفت وورد.

عرض المستودع
1.5k25312منذ 6 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

WriteHat WriteHat هي أداة إعداد تقارير تزيل Microsoft Word (وساعات طويلة من المعاناة) من عملية إعداد التقارير. ماركداون --> HTML --> PDF. صُممت بواسطة مختبرين اختراق، ومن أجل مختبرين اختراق - ولكن يمكن استخدامها لإنشاء أي نوع من التقارير. كُتبت باستخدام Django (Python 3).

الميزات:

  • إنشاء تقارير اختراق جميلة بسهولة
  • منشئ تقارير بالسحب والإفلات في الوقت الفعلي
  • دعم ماركداون - بما في ذلك كتل الأكواد والجداول إلخ.
  • قص الصور وإضافة التعليقات التوضيحية والتسميات ورفعها
  • خلفية/تذييل قابل للتخصيص للتقارير
  • تعيين مشغلين وتتبع حالة الأقسام الفردية للتقرير
  • إمكانية استنساخ التقارير وتحويلها إلى قوالب
  • قاعدة بيانات النتائج
  • يدعم أنواع تسجيل متعددة (CVSS 3.1, DREAD)
  • يمكن إنشاء تقارير متعددة بسهولة من نفس مجموعة النتائج
  • تصميم قابل للتوسع يمكن المستخدمين المتقدمين من صياغة أقسام تقارير مخصصة للغاية
  • تكامل LDAP

writehat_report

المتطلبات الأساسية للتثبيت:

  • قم بتثبيت docker و docker-compose
    • يمكن تثبيتها عادة باستخدام apt أو pacman أو dnf إلخ.
    $ sudo apt install docker.io docker-compose
    

نشر WriteHat (الطريقة السريعة والسهلة، للاختبار):

يمكن نشر WriteHat بأمر واحد:

$ git clone https://github.com/blacklanternsecurity/writehat && cd writehat && docker-compose up

قم بتسجيل الدخول على https://127.0.0.1 (الافتراضي: admin / PLEASECHANGETHISFORHEAVENSSAKE)

نشر WriteHat (الطريقة الصحيحة):

  1. تثبيت Docker و Docker Compose

  2. استنساخ مستودع WriteHat في /opt

    $ cd /opt
    $ git clone https://github.com/blacklanternsecurity/writehat
    $ cd writehat
    
  3. إنشاء كلمات مرور آمنة في writehat/config/writehat.conf لـ:

    • MongoDB (أدخلها أيضًا في docker-compose.yml)
    • MySQL (أدخلها أيضًا في docker-compose.yml)
    • Django (يستخدم لتشفير ملفات تعريف الارتباط إلخ.)
    • المستخدم المسؤول ملاحظة: لا يلزم تعديل أي شيء آخر بخلاف كلمات المرور إذا كنت تستخدم التكوين الافتراضي ملاحظة: لا تنسَ تقييد صلاحيات writehat/config/writehat.conf و docker-compose.yml: (chown root:root; chmod 600)
  4. إضافة اسم المضيف المطلوب إلى allowed_hosts في writehat/config/writehat.conf

  5. (اختياري) استبدال شهادات SSL ذاتية التوقيع في nginx/:

    • writehat.crt
    • writehat.key
  6. اختبار أن كل شيء يعمل:

    $ docker-compose up --build
    

    ملاحظة: إذا كنت تستخدم VPN، فيجب قطع الاتصال بـ VPN في المرة الأولى التي تشغل فيها الخدمات باستخدام docker-compose. وذلك ليتمكن Docker من إنشاء الشبكة الافتراضية بنجاح.

  7. تثبيت وتفعيل خدمة Systemd:

    سيؤدي هذا إلى بدء تشغيل WriteHat تلقائيًا عند التمهيد

    $ sudo cp writehat/config/writehat.service /etc/systemd/system/
    $ sudo systemctl enable writehat --now
    
  8. متابعة سجلات الخدمة:

    $ sudo journalctl -xefu writehat.service
    
  9. إنشاء المستخدمين

    تصفح إلى https://127.0.0.1/admin بعد تسجيل الدخول باستخدام المستخدم المسؤول المحدد في writehat/config/writehat.conf ملاحظة: هناك بعض الإجراءات التي يمكن للمسؤول فقط تنفيذها (مثل النسخ الاحتياطي لقاعدة البيانات) يتم إنشاء مستخدم مسؤول تلقائيًا من اسم المستخدم وكلمة المرور في writehat/config/writehat.conf، ولكن يمكنك أيضًا ترقية مستخدم LDAP إلى مسؤول:

    # أدخل حاوية التطبيق
    $ docker-compose exec writehat bash
    
    # ترقية المستخدم والخروج
    $ ./manage.py ldap_promote <ldap_username>
    $ exit
    

المصطلحات

فيما يلي شروحات أساسية لبعض مصطلحات WriteHat التي قد لا تكون واضحة.

مهمة
 ├─ العميل
 ├─ مجموعة نتائج 1
 │   ├─ نتيجة
 │   └─ نتيجة
 ├─ مجموعة نتائج 2
 │   ├─ نتيجة
 │   └─ نتيجة
 ├─ تقرير 1
 └─ تقرير 2
     └─ قالب صفحة

المهمة

المهمة هي المكان الذي يتم فيه إنشاء المحتوى للعميل. هذا هو مكان العمل - إنشاء التقارير وإدخال النتائج.

التقرير

التقرير هو ترتيب هرمي معياري من المكونات يمكن تحديثه بسهولة عبر واجهة السحب والإفلات، ثم تحويله إلى HTML أو PDF. يمكن أن تحتوي المهمة على تقارير متعددة. يمكن استخدام قالب الصفحة لتخصيص الخلفية والتذييل. يمكن أيضًا تحويل التقرير إلى قالب تقرير.

مكون التقرير

مكون التقرير هو قسم أو وحدة من التقرير يمكن سحبها/إفلاتها في مكانها داخل منشئ التقارير. تشمل الأمثلة "صفحة العنوان" و"ماركداون" و"النتائج" إلخ. هناك العديد من المكونات المدمجة، ولكن يمكنك أيضًا إنشاء مكوناتك الخاصة. (هي مجرد HTML/CSS + Python، لذا فهي سهلة جدًا. انظر الدليل أدناه)

قالب التقرير

يمكن استخدام قالب التقرير كنقطة بداية لـ تقرير (في المهمة). يمكن أيضًا تحويل التقارير إلى قوالب تقارير.

مجموعة النتائج

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

قالب الصفحة

يتيح لك قالب الصفحة تخصيص صور الخلفية والتذييلات للتقارير. يمكنك تعيين قالب صفحة واحد كافتراضي، وسيتم تطبيقه بشكل عام ما لم يتم تجاوزه على مستوى المهمة أو التقرير.

كتابة مكونات تقارير مخصصة

report_creation يتكون كل مكون تقرير من العناصر التالية:

  1. ملف Python في writehat/components/
  2. قالب HTML في writehat/templates/componentTemplates/
  3. ملف CSS في writehat/static/css/component/ (اختياري)

نوصي بالرجوع إلى الملفات الموجودة في هذه الدلائل؛ فهي تعمل كنقاط بداية / أمثلة جيدة.

سيبدو المكون المخصص البسيط كما يلي:

components/CustomComponent.py:

from .base import *

class CustomComponentForm(ComponentForm):

    summary = forms.CharField(label='نص المكون', widget=forms.Textarea, max_length=50000, required=False)
    field_order = ['name', 'summary', 'pageBreakBefore', 'showTitle']


class Component(BaseComponent):

    default_name = 'مكون تقرير مخصص'
    formClass = CustomComponentForm

    # السمة "templatable" تحدد ما إذا كان سيتم حفظ ذلك الحقل
    # إذا تم تحويل التقرير إلى قالب
    fieldList = {
        'summary': StringField(markdown=True, templatable=True),
    }

    # تأكد من تحديد قالب HTML
    htmlTemplate = 'componentTemplates/CustomComponent.html'

    # نوع أيقونة Font Awesome + اللون (HTML/CSS)
    # هذا مجرد زينة في تطبيق الويب
    iconType = 'fas fa-stream'
    iconColor = 'var(--blue)'

    # دالة "preprocess" يتم تنفيذها عند عرض التقرير
    # استخدم هذا لإجراء أي عمليات في اللحظة الأخيرة على بياناته
    def preprocess(self, context):

        # على سبيل المثال، لتحويل حقل "summary" بأكمله إلى أحرف كبيرة:
        #   context['summary'] = context['summary'].upper()
        return context

ملاحظة: يجب أن تشترك الحقول في نفس الاسم في كل من فئة المكون ونموذجه. يجب أن ترث جميع المكونات إما من BaseComponent أو من مكون آخر. بالإضافة إلى ذلك، يحتوي كل مكون على حقول مدمجة لـ name و pageBreakBefore (ما إذا كان سيبدأ في صفحة جديدة) و showTitle (ما إذا كان سيتم عرض حقل name كعنوان). لذلك ليس من الضروري إضافتها.

componentTemplates/CustomComponent.html:

تتم إضافة الحقول من وحدة Python تلقائيًا إلى سياق القالب. في هذا المثال، نريد عرض حقل summary كماركداون، لذلك نضيف علامة markdown أمامه. لاحظ أنه يمكنك أيضًا الوصول إلى المتغيرات على مستوى التقرير والمهمة، مثل report.name و report.findings و engagement.customer.name إلخ.

{% load custom_tags %}
<section class="l{{ level }} component{% if pageBreakBefore %} page-break{% endif %}" id="container_{{ id }}">
  {% include 'componentTemplates/Heading.html' %}
  <div class='markdown-align-justify custom-component-summary'>
    <p>
      {% markdown summary %}
    </p>
  </div>
</section>

componentTemplates/CustomComponent.css (اختياري):

تنزيل الأداة