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

docker और docker-compose इंस्टॉल करें
apt, pacman, dnf आदि का उपयोग करके इंस्टॉल किया जा सकता है।$ sudo apt install docker.io docker-compose
WriteHat को एक ही कमांड में तैनात किया जा सकता है:
$ git clone https://github.com/blacklanternsecurity/writehat && cd writehat && docker-compose up
https://127.0.0.1 पर लॉग इन करें (डिफ़ॉल्ट: admin / PLEASECHANGETHISFORHEAVENSSAKE)
Docker और Docker Compose इंस्टॉल करें
WriteHat रिपॉज़िटरी को क्लोन करें /opt में
$ cd /opt
$ git clone https://github.com/blacklanternsecurity/writehat
$ cd writehat
writehat/config/writehat.conf में सुरक्षित पासवर्ड बनाएं:
docker-compose.yml में भी दर्ज करें)docker-compose.yml में भी दर्ज करें)writehat/config/writehat.conf और docker-compose.yml पर अनुमतियाँ लॉक डाउन करना न भूलें: (chown root:root; chmod 600)अपना वांछित होस्टनाम जोड़ें writehat/config/writehat.conf में allowed_hosts में
(वैकल्पिक) स्व-हस्ताक्षरित SSL प्रमाणपत्र बदलें nginx/ में:
writehat.crtwritehat.keyसब कुछ ठीक से काम कर रहा है इसकी जाँच करें:
$ docker-compose up --build
ध्यान दें: यदि VPN का उपयोग कर रहे हैं, तो सेवाओं को docker-compose के साथ पहली बार लाने के लिए आपको VPN से डिस्कनेक्ट होना होगा। ऐसा इसलिए है ताकि docker सफलतापूर्वक वर्चुअल नेटवर्क बना सके।
Systemd सेवा इंस्टॉल और सक्रिय करें:
इससे बूट पर WriteHat स्वचालित रूप से प्रारंभ हो जाएगा
$ sudo cp writehat/config/writehat.service /etc/systemd/system/
$ sudo systemctl enable writehat --now
सेवा लॉग टेल करें:
$ sudo journalctl -xefu writehat.service
उपयोगकर्ता बनाएं
https://127.0.0.1/admin पर जाएँ, पहले writehat/config/writehat.conf में निर्दिष्ट admin उपयोगकर्ता से लॉग इन करने के बाद
ध्यान दें: कुछ कार्य हैं जो केवल एक admin ही कर सकता है (जैसे डेटाबेस बैकअप) writehat/config/writehat.conf में उपयोगकर्ता नाम और पासवर्ड से एक admin उपयोगकर्ता स्वचालित रूप से बनाया जाता है, लेकिन आप किसी LDAP उपयोगकर्ता को admin में पदोन्नत भी कर सकते हैं:
# ऐप कंटेनर में प्रवेश करें
$ docker-compose exec writehat bash
# उपयोगकर्ता को पदोन्नत करें और बाहर निकलें
$ ./manage.py ldap_promote <ldap_username>
$ exit
यहाँ कुछ WriteHat शब्दों की बुनियादी व्याख्याएँ दी गई हैं जो स्पष्ट नहीं हो सकते हैं।
सहभागिता
├─ ग्राहक
├─ निष्कर्ष समूह 1
│ ├─ निष्कर्ष
│ └─ निष्कर्ष
├─ निष्कर्ष समूह 2
│ ├─ निष्कर्ष
│ └─ निष्कर्ष
├─ रिपोर्ट 1
└─ रिपोर्ट 2
└─ पृष्ठ टेम्पलेट
एक सहभागिता वह जगह है जहाँ ग्राहक के लिए सामग्री बनाई जाती है। यहाँ काम होता है - रिपोर्ट बनाना और निष्कर्ष दर्ज करना।
एक रिपोर्ट घटकों की एक मॉड्यूलर, पदानुक्रमिक व्यवस्था है जिसे ड्रैग-एंड-ड्रॉप इंटरफ़ेस के माध्यम से आसानी से अपडेट किया जा सकता है, फिर HTML या PDF में रेंडर किया जा सकता है। एक सहभागिता में कई रिपोर्ट हो सकती हैं। एक पृष्ठ टेम्पलेट का उपयोग पृष्ठभूमि और फ़ुटर को अनुकूलित करने के लिए किया जा सकता है। एक रिपोर्ट को रिपोर्ट टेम्पलेट में भी परिवर्तित किया जा सकता है।
एक रिपोर्ट घटक रिपोर्ट का एक अनुभाग या मॉड्यूल है जिसे रिपोर्ट निर्माता के अंदर खींचकर/छोड़कर रखा जा सकता है। उदाहरणों में "शीर्षक पृष्ठ", "मार्कडाउन", "निष्कर्ष" आदि शामिल हैं। कई अंतर्निहित घटक हैं, लेकिन आप अपना स्वयं का भी बना सकते हैं। (वे केवल HTML/CSS + Python हैं, इसलिए यह काफी आसान है। नीचे दी गई मार्गदर्शिका देखें)।
एक रिपोर्ट टेम्पलेट का उपयोग रिपोर्ट (एक सहभागिता में) के लिए प्रारंभिक बिंदु के रूप में किया जा सकता है। रिपोर्ट को रिपोर्ट टेम्पलेट में भी परिवर्तित किया जा सकता है।
एक निष्कर्ष समूह निष्कर्षों का एक संग्रह है जो एक ही तरीके से स्कोर किए जाते हैं (जैसे CVSS या DREAD)। आप प्रति सहभागिता कई निष्कर्ष समूह बना सकते हैं (जैसे "तकनीकी निष्कर्ष" और "कोष निष्कर्ष")। रिपोर्ट में निष्कर्ष सम्मिलित करते समय (उदाहरण के लिए, "निष्कर्ष" घटक के माध्यम से), आपको चुनना होगा कि आप उस घटक को किस निष्कर्ष समूह से भरना चाहते हैं।
एक पृष्ठ टेम्पलेट आपको रिपोर्ट पृष्ठभूमि चित्रों और फ़ुटर को अनुकूलित करने की अनुमति देता है। आप एक पृष्ठ टेम्पलेट को डिफ़ॉल्ट के रूप में सेट कर सकते हैं, और इसे वैश्विक रूप से लागू किया जाएगा जब तक कि सहभागिता या रिपोर्ट स्तर पर ओवरराइड न किया जाए।
प्रत्येक रिपोर्ट घटक निम्नलिखित से बना होता है:
writehat/components/ में एक Python फ़ाइलwritehat/templates/componentTemplates/ में एक HTML टेम्पलेटwritehat/static/css/component/ में एक CSS फ़ाइल (वैकल्पिक)हम इन निर्देशिकाओं में मौजूदा फ़ाइलों का संदर्भ लेने की सलाह देते हैं; वे प्रारंभिक बिंदु/उदाहरण के रूप में अच्छी तरह से काम करती हैं।
एक सरल कस्टम घटक इस तरह दिखेगा:
components/CustomComponent.py: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):