Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
writehat — Un outil de rapport de test d'intrusion écrit en Python. Libérez-vous de Microsoft Word. | Kitploit
Outils/GitHubGitHub/blacklanternsecurity/writehat
Tests d'IntrusionUtilitaires et FrameworksApprentissage et Éducation
GitHubblacklanternsecurity/writehat

writehat

Un outil de rapport de test d'intrusion écrit en Python. Libérez-vous de Microsoft Word.

Voir le dépôt
1.5k25312il y a 6 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

WriteHat WriteHat est un outil de génération de rapports qui élimine Microsoft Word (et de nombreuses heures de souffrance) du processus de création de rapports. Markdown --> HTML --> PDF. Créé par des testeurs d'intrusion, pour les testeurs d'intrusion - mais peut être utilisé pour générer tout type de rapport. Écrit en Django (Python 3).

Fonctionnalités :

  • Générez facilement de magnifiques rapports de test d'intrusion
  • Constructeur de rapports par glisser-déposer à la volée
  • Prise en charge du Markdown - incluant les blocs de code, les tableaux, etc.
  • Recadrer, annoter, légender et télécharger des images
  • Arrière-plan / pied de page de rapport personnalisable
  • Attribuer des opérateurs et suivre l'état des sections individuelles du rapport
  • Possibilité de cloner et de modéliser des rapports
  • Base de données des constatations
  • Prend en charge plusieurs types de notation (CVSS 3.1, DREAD)
  • Peut facilement générer plusieurs rapports à partir du même ensemble de constatations
  • Conception extensible permettant aux utilisateurs avancés de créer des sections de rapport hautement personnalisées
  • Intégration LDAP

writehat_report

Prérequis d'installation :

  • Installez docker et docker-compose
    • Ceux-ci peuvent généralement être installés avec apt, pacman, dnf, etc.
    $ sudo apt install docker.io docker-compose
    

Déployer WriteHat (La manière rapide et facile, pour les tests) :

WriteHat peut être déployé en une seule commande :

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

Connectez-vous à https://127.0.0.1 (par défaut : admin / PLEASECHANGETHISFORHEAVENSSAKE)

Déployer WriteHat (La bonne manière) :

  1. Installez Docker et Docker Compose

  2. Clonez le dépôt WriteHat dans /opt

    $ cd /opt
    $ git clone https://github.com/blacklanternsecurity/writehat
    $ cd writehat
    
  3. Créez des mots de passe sécurisés dans writehat/config/writehat.conf pour :

    • MongoDB (également renseigné dans docker-compose.yml)
    • MySQL (également renseigné dans docker-compose.yml)
    • Django (utilisé pour chiffrer les cookies, etc.)
    • Utilisateur admin Remarque : Rien d'autre que les mots de passe ne doit être modifié si vous utilisez la configuration par défaut Remarque : N'oubliez pas de verrouiller les permissions sur writehat/config/writehat.conf et docker-compose.yml : (chown root:root; chmod 600)
  4. Ajoutez votre nom d'hôte souhaité à allowed_hosts dans writehat/config/writehat.conf

  5. (Optionnel) Remplacez les certificats SSL auto-signés dans nginx/ :

    • writehat.crt
    • writehat.key
  6. Testez que tout fonctionne :

    $ docker-compose up --build
    

    Remarque : Si vous utilisez un VPN, vous devez vous déconnecter du VPN la première fois que vous démarrez les services avec docker-compose. Ceci permet à Docker de créer avec succès le réseau virtuel.

  7. Installez et activez le service Systemd :

    Cela démarrera WriteHat automatiquement au démarrage

    $ sudo cp writehat/config/writehat.service /etc/systemd/system/
    $ sudo systemctl enable writehat --now
    
  8. Suivez les logs du service :

    $ sudo journalctl -xefu writehat.service
    
  9. Créez des utilisateurs

    Accédez à https://127.0.0.1/admin après vous être connecté avec l'utilisateur admin spécifié dans writehat/config/writehat.conf Remarque : Certaines actions ne peuvent être effectuées que par un administrateur (par exemple, les sauvegardes de base de données). Un utilisateur admin est automatiquement créé à partir du nom d'utilisateur et du mot de passe dans writehat/config/writehat.conf, mais vous pouvez également promouvoir un utilisateur LDAP en administrateur :

    # Enter the app container
    $ docker-compose exec writehat bash
    
    # Promote the user and exit
    $ ./manage.py ldap_promote <ldap_username>
    $ exit
    

Terminologie

Voici des explications de base pour certains termes WriteHat qui peuvent ne pas être évidents.

Engagement
 ├─ Customer
 ├─ Finding Group 1
 │   ├─ Finding
 │   └─ Finding
 ├─ Finding Group 2
 │   ├─ Finding
 │   └─ Finding
 ├─ Report 1
 └─ Report 2
     └─ Page Template

Engagement

Un Engagement est l'endroit où le contenu est créé pour le client. C'est là que le travail se fait - créer des rapports et saisir des constatations.

Rapport

Un Rapport est un agencement modulaire et hiérarchique de Composants qui peut être facilement mis à jour via une interface glisser-déposer, puis rendu en HTML ou PDF. Un engagement peut avoir plusieurs Rapports. Un Modèle de Page peut être utilisé pour personnaliser l'arrière-plan et le pied de page. Un Rapport peut également être converti en Modèle de Rapport.

Composant de rapport

Un Composant de rapport est une section ou un module du rapport qui peut être glissé/déposé à sa place dans le créateur de rapport. Les exemples incluent "Page de titre", "Markdown", "Constatations", etc. Il existe de nombreux composants intégrés, mais vous pouvez aussi créer les vôtres. (Ce ne sont que du HTML/CSS + Python, c'est donc assez simple. Voir le guide ci-dessous).

Modèle de Rapport

Un Modèle de Rapport peut être utilisé comme point de départ pour un Rapport (dans un Engagement). Les Rapports peuvent également être convertis en Modèles de Rapport.

Groupe de Constatations

Un Groupe de Constatations est une collection de constatations qui sont notées de la même manière (par exemple CVSS ou DREAD). Vous pouvez créer plusieurs groupes de constatations par engagement (par exemple "Constatations Techniques" et "Constatations du Trésor"). Lors de l'insertion des constatations dans le Rapport (via le Composant "Constatations", par exemple), vous devez sélectionner quel Groupe de Constatations vous souhaitez remplir ce Composant.

Modèle de Page

Un Modèle de Page vous permet de personnaliser les images d'arrière-plan et les pieds de page du rapport. Vous pouvez définir un Modèle de Page par défaut, et il sera appliqué globalement sauf s'il est remplacé au niveau de l'Engagement ou du Rapport.

Rédaction de composants de rapport personnalisés

report_creation Chaque composant de rapport est constitué des éléments suivants :

  1. Un fichier Python dans writehat/components/
  2. Un modèle HTML dans writehat/templates/componentTemplates/
  3. Un fichier CSS dans writehat/static/css/component/ (optionnel)

Nous recommandons de consulter les fichiers existants dans ces répertoires ; ils constituent de bons points de départ / exemples.

Un composant personnalisé simple ressemblerait à ceci :

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

    # the "templatable" attribute decides whether or not that field
    # gets saved if the report is ever converted into a template
    fieldList = {
        'summary': StringField(markdown=True, templatable=True),
    }
Télécharger l’outil