Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
writehat — पेंटेस्ट रिपोर्टिंग टूल जो Python में लिखा गया है। Microsoft Word से खुद को मुक्त करें। | Kitploit
उपकरण/GitHubGitHub/blacklanternsecurity/writehat
पेनिट्रेशन टेस्टिंगउपयोगिताएँ और फ्रेमवर्कलर्निंग और शिक्षा
GitHubblacklanternsecurity/writehat

writehat

पेंटेस्ट रिपोर्टिंग टूल जो Python में लिखा गया है। Microsoft Word से खुद को मुक्त करें।

रिपॉजिटरी देखें
1.5k25335 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

WriteHat WriteHat एक रिपोर्टिंग टूल है जो रिपोर्टिंग प्रक्रिया से Microsoft Word (और कई घंटों की पीड़ा) को हटा देता है। Markdown --> HTML --> PDF। पेनिट्रेशन टेस्टर्स द्वारा, पेनिट्रेशन टेस्टर्स के लिए बनाया गया - लेकिन इसका उपयोग किसी भी प्रकार की रिपोर्ट उत्पन्न करने के लिए किया जा सकता है। Django (Python 3) में लिखा गया।

विशेषताएं:

  • आसानी से सुंदर पेंटेस्ट रिपोर्ट तैयार करें
  • तुरंत ड्रैग-एंड-ड्रॉप रिपोर्ट बिल्डर
  • Markdown समर्थन - कोड ब्लॉक, तालिकाएँ आदि सहित
  • चित्रों को क्रॉप करें, एनोटेट करें, कैप्शन जोड़ें और अपलोड करें
  • अनुकूलन योग्य रिपोर्ट पृष्ठभूमि/फ़ुटर
  • व्यक्तिगत रिपोर्ट अनुभागों के लिए ऑपरेटर असाइन करें और स्थिति ट्रैक करें
  • रिपोर्ट को क्लोन और टेम्पलेट करने की क्षमता
  • निष्कर्ष डेटाबेस
  • एकाधिक स्कोरिंग प्रकारों का समर्थन (CVSS 3.1, DREAD)
  • निष्कर्षों के एक ही सेट से आसानी से कई रिपोर्ट उत्पन्न कर सकते हैं
  • विस्तार योग्य डिज़ाइन पावर यूज़र्स को अत्यधिक अनुकूलित रिपोर्ट अनुभाग तैयार करने में सक्षम बनाता है
  • LDAP एकीकरण

writehat_report

स्थापना पूर्वापेक्षाएँ:

  • docker और इंस्टॉल करें
docker-compose
  • इन्हें आमतौर पर apt, pacman, dnf आदि का उपयोग करके इंस्टॉल किया जा सकता है।
root@kitploit:~
$ sudo apt install docker.io docker-compose

WriteHat तैनात करना (त्वरित और आसान तरीका, परीक्षण के लिए):

WriteHat को एक ही कमांड में तैनात किया जा सकता है:

root@kitploit:~
$ 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 में

    root@kitploit:~
    $ 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 (कुकीज़ एन्क्रिप्ट करने आदि के लिए उपयोग किया जाता है)
    • Admin उपयोगकर्ता ध्यान दें: यदि आप डिफ़ॉल्ट कॉन्फ़िगरेशन का उपयोग कर रहे हैं तो पासवर्ड के अलावा कुछ भी संशोधित करने की आवश्यकता नहीं है ध्यान दें: writehat/config/writehat.conf और docker-compose.yml पर अनुमतियाँ लॉक डाउन करना न भूलें: (chown root:root; chmod 600)
  4. अपना वांछित होस्टनाम जोड़ें writehat/config/writehat.conf में allowed_hosts में

  5. (वैकल्पिक) स्व-हस्ताक्षरित SSL प्रमाणपत्र बदलें nginx/ में:

    • writehat.crt
    • writehat.key
  6. सब कुछ ठीक से काम कर रहा है इसकी जाँच करें:

    root@kitploit:~
    $ docker-compose up --build
    

    ध्यान दें: यदि VPN का उपयोग कर रहे हैं, तो सेवाओं को docker-compose के साथ पहली बार लाने के लिए आपको VPN से डिस्कनेक्ट होना होगा। ऐसा इसलिए है ताकि docker सफलतापूर्वक वर्चुअल नेटवर्क बना सके।

  7. Systemd सेवा इंस्टॉल और सक्रिय करें:

    इससे बूट पर WriteHat स्वचालित रूप से प्रारंभ हो जाएगा

    root@kitploit:~
    $ sudo cp writehat/config/writehat.service /etc/systemd/system/
    $ sudo systemctl enable writehat --now
    
  8. सेवा लॉग टेल करें:

    root@kitploit:~
    $ sudo journalctl -xefu writehat.service
    
  9. उपयोगकर्ता बनाएं

    https://127.0.0.1/admin पर जाएँ, पहले writehat/config/writehat.conf में निर्दिष्ट admin उपयोगकर्ता से लॉग इन करने के बाद ध्यान दें: कुछ कार्य हैं जो केवल एक admin ही कर सकता है (जैसे डेटाबेस बैकअप) writehat/config/writehat.conf में उपयोगकर्ता नाम और पासवर्ड से एक admin उपयोगकर्ता स्वचालित रूप से बनाया जाता है, लेकिन आप किसी LDAP उपयोगकर्ता को admin में पदोन्नत भी कर सकते हैं:

    root@kitploit:~
    # ऐप कंटेनर में प्रवेश करें
    $ docker-compose exec writehat bash
    
    # उपयोगकर्ता को पदोन्नत करें और बाहर निकलें
    $ ./manage.py ldap_promote <ldap_username>
    $ exit
    

शब्दावली

यहाँ कुछ WriteHat शब्दों की बुनियादी व्याख्याएँ दी गई हैं जो स्पष्ट नहीं हो सकते हैं।

root@kitploit:~
सहभागिता
 ├─ ग्राहक
 ├─ निष्कर्ष समूह 1
 │   ├─ निष्कर्ष
 │   └─ निष्कर्ष
 ├─ निष्कर्ष समूह 2
 │   ├─ निष्कर्ष
 │   └─ निष्कर्ष
 ├─ रिपोर्ट 1
 └─ रिपोर्ट 2
     └─ पृष्ठ टेम्पलेट

सहभागिता (Engagement)

एक सहभागिता वह जगह है जहाँ ग्राहक के लिए सामग्री बनाई जाती है। यहाँ काम होता है - रिपोर्ट बनाना और निष्कर्ष दर्ज करना।

रिपोर्ट (Report)

एक रिपोर्ट घटकों की एक मॉड्यूलर, पदानुक्रमिक व्यवस्था है जिसे ड्रैग-एंड-ड्रॉप इंटरफ़ेस के माध्यम से आसानी से अपडेट किया जा सकता है, फिर HTML या PDF में रेंडर किया जा सकता है। एक सहभागिता में कई रिपोर्ट हो सकती हैं। एक पृष्ठ टेम्पलेट का उपयोग पृष्ठभूमि और फ़ुटर को अनुकूलित करने के लिए किया जा सकता है। एक रिपोर्ट को रिपोर्ट टेम्पलेट में भी परिवर्तित किया जा सकता है।

रिपोर्ट घटक (Report Component)

एक रिपोर्ट घटक रिपोर्ट का एक अनुभाग या मॉड्यूल है जिसे रिपोर्ट निर्माता के अंदर खींचकर/छोड़कर रखा जा सकता है। उदाहरणों में "शीर्षक पृष्ठ", "मार्कडाउन", "निष्कर्ष" आदि शामिल हैं। कई अंतर्निहित घटक हैं, लेकिन आप अपना स्वयं का भी बना सकते हैं। (वे केवल HTML/CSS + Python हैं, इसलिए यह काफी आसान है। नीचे दी गई मार्गदर्शिका देखें)।

रिपोर्ट टेम्पलेट (Report Template)

एक रिपोर्ट टेम्पलेट का उपयोग रिपोर्ट (एक सहभागिता में) के लिए प्रारंभिक बिंदु के रूप में किया जा सकता है। रिपोर्ट को रिपोर्ट टेम्पलेट में भी परिवर्तित किया जा सकता है।

निष्कर्ष समूह (Finding Group)

एक निष्कर्ष समूह निष्कर्षों का एक संग्रह है जो एक ही तरीके से स्कोर किए जाते हैं (जैसे CVSS या DREAD)। आप प्रति सहभागिता कई निष्कर्ष समूह बना सकते हैं (जैसे "तकनीकी निष्कर्ष" और "कोष निष्कर्ष")। रिपोर्ट में निष्कर्ष सम्मिलित करते समय (उदाहरण के लिए, "निष्कर्ष" घटक के माध्यम से), आपको चुनना होगा कि आप उस घटक को किस निष्कर्ष समूह से भरना चाहते हैं।

पृष्ठ टेम्पलेट (Page Template)

एक पृष्ठ टेम्पलेट आपको रिपोर्ट पृष्ठभूमि चित्रों और फ़ुटर को अनुकूलित करने की अनुमति देता है। आप एक पृष्ठ टेम्पलेट को डिफ़ॉल्ट के रूप में सेट कर सकते हैं, और इसे वैश्विक रूप से लागू किया जाएगा जब तक कि सहभागिता या रिपोर्ट स्तर पर ओवरराइड न किया जाए।

कस्टम रिपोर्ट घटक लिखना

report_creation प्रत्येक रिपोर्ट घटक निम्नलिखित से बना होता है:

  1. writehat/components/ में एक Python फ़ाइल
  2. writehat/templates/componentTemplates/ में एक HTML टेम्पलेट
  3. writehat/static/css/component/ में एक CSS फ़ाइल (वैकल्पिक)

हम इन निर्देशिकाओं में मौजूदा फ़ाइलों का संदर्भ लेने की सलाह देते हैं; वे प्रारंभिक बिंदु/उदाहरण के रूप में अच्छी तरह से काम करती हैं।

एक सरल कस्टम घटक इस तरह दिखेगा:

components/CustomComponent.py:

root@kitploit:~
from .base import *

class CustomComponentForm(ComponentForm):

    summary = forms.CharField(label='Component Text', widget=forms.Textarea, max_length=50000, required=False)
    field_order = ['name', 'summary', 'pageBreakBefore', 'showTitle']


class Component(BaseComponent):

    default_name = 'Custom Report Component'
    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 आदि।

root@kitploit:~
{% 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 (वैकल्पिक):

फ़ाइल का नाम Python फ़ाइल के नाम से मेल खाना चाहिए (लेकिन .py के बजाय .css एक्सटेंशन के साथ)। रिपोर्ट रेंडर होने पर यह स्वचालित रूप से लोड हो जाती है।

root@kitploit:~
div.custom-component-summary {
    font-weight: bold;
}

एक बार उपरोक्त फ़ाइलें बन जाने के बाद, बस वेब ऐप को पुनरारंभ करें और नया घटक स्वचालित रूप से जनसंख्या में आ जाएगा।

root@kitploit:~
$ docker-compose restart writehat

मैन्युअल DB अपडेट/माइग्रेशन

यदि कोई अपडेट पुश किया जाता है जो डेटाबेस स्कीमा को बदलता है, तो कंटेनर के पुनरारंभ होने पर Django डेटाबेस माइग्रेशन स्वचालित रूप से निष्पादित होते हैं। हालांकि, कभी-कभी उपयोगकर्ता इंटरेक्शन की आवश्यकता हो सकती है। Django माइग्रेशन मैन्युअल रूप से लागू करने के लिए:

  1. WriteHat बंद करें (systemctl stop writehat)
  2. WriteHat निर्देशिका में cd करें (/opt/writehat)
  3. डॉकर कंटेनर प्रारंभ करें
root@kitploit:~
$ docker-compose run writehat bash
  1. एक बार कंटेनर में, माइग्रेशन हमेशा की तरह लागू करें:
root@kitploit:~
$ ./manage.py makemigrations
$ ./manage.py migrate
$ exit
  1. डॉकर कंटेनर नीचे लाएँ और सेवा पुनरारंभ करें
root@kitploit:~
$ docker-compose down
$ systemctl start writehat

मैन्युअल DB बैकअप/पुनर्स्थापना

ध्यान दें कि वेब ऐप के /admin पेज पर इसके लिए पहले से ही ऐप-इन-ऐप कार्यक्षमता मौजूद है। यदि आप cron आदि के माध्यम से फ़ाइल-स्तरीय बैकअप जॉब बनाना चाहते हैं तो आप इस विधि का उपयोग कर सकते हैं।

  1. गंतव्य सिस्टम पर:
    • सामान्य स्थापना चरणों का पालन करें
    • WriteHat बंद करें (systemctl stop writehat)
  2. स्रोत सिस्टम पर:
    • WriteHat बंद करें (systemctl stop writehat)
  3. mysql, mongo, और writehat/migrations निर्देशिकाओं को TAR करें और संग्रह को गंतव्य सिस्टम पर कॉपी करें (उसी स्थान पर):
root@kitploit:~
# रूट के रूप में चलाना अनिवार्य है
$ sudo tar --same-owner -cvzpf db_backup.tar.gz mongo mysql writehat/migrations
  1. गंतव्य सिस्टम पर, migrations निर्देशिका का बैकअप लें
root@kitploit:~
$ mv writehat/migrations writehat/migrations.bak
  1. गंतव्य पर TAR संग्रह निकालें
root@kitploit:~
$ sudo tar --same-owner -xvpzf db_backup.tar.gz
  1. नए सिस्टम पर WriteHat प्रारंभ करें
root@kitploit:~
$ systemctl start writehat

रोडमैप / संभावित भविष्य के विकास:

  • परिवर्तन ट्रैकिंग और संशोधन
  • अधिक गहन समीक्षा/प्रतिक्रिया कार्यक्षमता
  • Google डॉक्स के समान सहयोगात्मक बहु-उपयोगकर्ता संपादन
  • JSON निर्यात सुविधा
  • प्रस्तुति स्लाइड निर्माण
  • CSV अपलोड सुविधा के साथ अधिक उन्नत तालिका निर्माता
  • अधिक दानेदार अनुमतियाँ / ACL (केवल उपयोगकर्ता + व्यवस्थापक भूमिकाओं से परे)

ज्ञात बग / सीमाएँ:

  • Chrome या Chromium अनुशंसित ब्राउज़र है। अन्य का परीक्षण नहीं किया गया है और उनमें बग हो सकते हैं।
  • रिपोर्ट घटकों पर "असाइनी" फ़ील्ड केवल LDAP उपयोगकर्ताओं के साथ काम करता है, स्थानीय उपयोगकर्ताओं के साथ नहीं।
  • छवियों पर एनोटेशन लागू होने पर कभी-कभी थोड़ा उछल जाते हैं। यह एक ज्ञात बग है जिसे हम JS लाइब्रेरी के साथ ट्रैक कर रहे हैं: https://github.com/ailon/markerjs/issues/40
  • पृष्ठ विराम पर कभी-कभी दृश्य बग दिखाई देते हैं। प्रभावित मार्कडाउन में मैन्युअल रूप से पृष्ठ विराम सम्मिलित करके इन्हें ठीक किया जा सकता है (इसके लिए संपादक में एक बटन है)।
टूल डाउनलोड करें