Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
writehat — Uma ferramenta de relatório de pentest escrita em Python. Liberte-se do Microsoft Word. | Kitploit
Ferramentas/GitHubGitHub/blacklanternsecurity/writehat
Testes de PenetraçãoUtilitários e FrameworksAprendizado e Educação
GitHubblacklanternsecurity/writehat

writehat

Uma ferramenta de relatório de pentest escrita em Python. Liberte-se do Microsoft Word.

Ver Repositório
1.5k25312há 6 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

WriteHat WriteHat é uma ferramenta de relatórios que elimina o Microsoft Word (e muitas horas de sofrimento) do processo de elaboração de relatórios. Markdown --> HTML --> PDF. Criada por testadores de penetração, para testadores de penetração - mas pode ser usada para gerar qualquer tipo de relatório. Escrita em Django (Python 3).

Funcionalidades:

  • Gere relatórios de pentest bonitos sem esforço
  • Construtor de relatórios drag-and-drop em tempo real
  • Suporte a Markdown - incluindo blocos de código, tabelas, etc.
  • Cortar, anotar, legendar e carregar imagens
  • Fundo/rodapé do relatório personalizável
  • Atribuir operadores e rastrear status para seções individuais do relatório
  • Capacidade de clonar e modelar relatórios
  • Banco de dados de descobertas
  • Suporta múltiplos tipos de pontuação (CVSS 3.1, DREAD)
  • Pode gerar facilmente múltiplos relatórios a partir do mesmo conjunto de descobertas
  • Design extensível permite que usuários avançados criem seções de relatório altamente personalizadas
  • Integração LDAP

writehat_report

Pré-requisitos de Instalação:

  • Instale docker e docker-compose
    • Estes podem geralmente ser instalados usando apt, pacman, dnf, etc.
    $ sudo apt install docker.io docker-compose
    

Implantando o WriteHat (A forma rápida e fácil, para testes):

WriteHat pode ser implantado com um único comando:

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

Faça login em https://127.0.0.1 (padrão: admin / PLEASECHANGETHISFORHEAVENSSAKE)

Implantando o WriteHat (Da maneira correta):

  1. Instale o Docker e o Docker Compose

  2. Clone o Repositório WriteHat em /opt

    $ cd /opt
    $ git clone https://github.com/blacklanternsecurity/writehat
    $ cd writehat
    
  3. Crie Senhas Seguras em writehat/config/writehat.conf para:

    • MongoDB (também insira em docker-compose.yml)
    • MySQL (também insira em docker-compose.yml)
    • Django (usado para criptografar cookies, etc.)
    • Usuário admin Nota: Nada mais além das senhas precisa ser modificado se você estiver usando a configuração padrão Nota: Não se esqueça de restringir as permissões em writehat/config/writehat.conf e docker-compose.yml: (chown root:root; chmod 600)
  4. Adicione o Nome de Host Desejado a allowed_hosts em writehat/config/writehat.conf

  5. (Opcional) Substitua os certificados SSL autoassinados em nginx/:

    • writehat.crt
    • writehat.key
  6. Teste se Tudo Está Funcionando:

    $ docker-compose up --build
    

    Nota: Se estiver usando uma VPN, você precisa estar desconectado da VPN na primeira vez que iniciar os serviços com docker-compose. Isso é para que o docker possa criar a rede virtual com sucesso.

  7. Instale e Ative o Serviço Systemd:

    Isso iniciará o WriteHat automaticamente na inicialização

    $ sudo cp writehat/config/writehat.service /etc/systemd/system/
    $ sudo systemctl enable writehat --now
    
  8. Acompanhe os Logs do Serviço:

    $ sudo journalctl -xefu writehat.service
    
  9. Crie Usuários

    Navegue até https://127.0.0.1/admin após fazer login com o usuário admin especificado em writehat/config/writehat.conf Nota: Existem algumas ações que apenas um admin pode realizar (por exemplo, backups do banco de dados). Um usuário admin é criado automaticamente a partir do nome de usuário e senha em writehat/config/writehat.conf, mas você também pode promover um usuário LDAP a admin:

    # Entre no contêiner da aplicação
    $ docker-compose exec writehat bash
    
    # Promova o usuário e saia
    $ ./manage.py ldap_promote <ldap_username>
    $ exit
    

Terminologia

Aqui estão explicações básicas para alguns termos do WriteHat que podem não ser óbvios.

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

Engagement

Um Engagement é onde o conteúdo é criado para o cliente. Aqui é onde o trabalho acontece - criar relatórios e inserir descobertas.

Report

Um Relatório é um arranjo modular e hierárquico de Componentes que pode ser facilmente atualizado através de uma interface de arrastar e soltar, depois renderizado em HTML ou PDF. Um engagement pode ter múltiplos Relatórios. Um Page Template pode ser usado para personalizar o fundo e o rodapé. Um Relatório também pode ser convertido em um Modelo de Relatório (Report Template).

Report Component

Um Componente de relatório é uma seção ou módulo do relatório que pode ser arrastado/soltado no lugar dentro do criador de relatórios. Exemplos incluem "Página de Título", "Markdown", "Descobertas", etc. Existem muitos componentes embutidos, mas você também pode criar os seus próprios. (Eles são apenas HTML/CSS + Python, então é bem fácil. Veja o guia abaixo)

Report Template

Um Modelo de Relatório pode ser usado como ponto de partida para um Relatório (em um Engagement). Relatórios também podem ser convertidos em Modelos de Relatório (Report Template).

Finding Group

Um Grupo de Descobertas é uma coleção de descobertas que são pontuadas da mesma forma (por exemplo, CVSS ou DREAD). Você pode criar múltiplos grupos de descobertas por engagement (por exemplo, "Descobertas Técnicas" e "Descobertas do Tesouro"). Ao inserir as descobertas no Relatório (via o Componente "Descobertas", por exemplo), você precisa selecionar qual Grupo de Descobertas deseja popular naquele Componente.

Page Template

Um Modelo de Página permite personalizar imagens de fundo e rodapés dos relatórios. Você pode definir um Page Template como padrão, e ele será aplicado globalmente a menos que seja sobrescrito no nível do Engagement ou Relatório.

Escrevendo Componentes de Relatório Personalizados

report_creation Cada componente de relatório é composto pelo seguinte:

  1. Um arquivo Python em writehat/components/
  2. Um template HTML em writehat/templates/componentTemplates/
  3. Um arquivo CSS em writehat/static/css/component/ (opcional)

Recomendamos consultar os arquivos existentes nesses diretórios; eles funcionam bem como pontos de partida / exemplos.

Um componente personalizado simples seria assim:

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),
    }

    # make sure to specify the HTML template
    htmlTemplate = 'componentTemplates/CustomComponent.html'

    # Font Awesome icon type + color (HTML/CSS)
    # This is just eye candy in the web app
    iconType = 'fas fa-stream'
    iconColor = 'var(--blue)'

    # the "preprocess" function is executed when the report is rendered
    # use this to perform any last-minute operations on its data
    def preprocess(self, context):
Baixar ferramenta