MCPcopy Index your code
hub / github.com/GhostManager/Ghostwriter

github.com/GhostManager/Ghostwriter @v7.2.0 sqlite

repository ↗ · DeepWiki ↗ · release v7.2.0 ↗
11,665 symbols 44,794 edges 732 files 1,439 documented · 12%
README

Ghostwriter

Sponsored by SpecterOps

Python Version Django Version License GitHub Release (Latest by Date) GitHub Release Date

CodeFactor Code Coverage CII Best Practices Build and Run Unit Test Workflow

Black Hat USA Arsenal 2019 & 2022 Black Hat Asia Arsenal 2022

ghostwriter

Ghostwriter is an open-source platform designed to enhance offensive security operations by simplifying report writing, asset tracking, and assessment management. It offers tools for managing clients, creating a reusable findings library, and organizing the infrastructure and domains utilized during assessments. With its powerful reporting engine, Ghostwriter includes comprehensive collaborative writing features and customizable report templates, allowing teams to produce polished deliverables with minimal manual effort.

Ghostwriter comes equipped with "enterprise-level" features, such as role-based access controls, single sign-on authentication, and multi-factor authentication. Additionally, it integrates with tools like Mythic C2 and Cobalt Strike to enable automatic activity logging. These capabilities make Ghostwriter an ideal centralized and collaborative environment for red teams and consultants to efficiently plan, execute, and document their assessments.

The platform effectively tracks and manages client and project information, covert infrastructure assets (such as servers and domain names), finding templates, report templates, evidence files, and more.

This data is accessible to Ghostwriter's reporting engine, which generates comprehensive Word (DOCX) reports using Jinja2 templating and your customized report templates. Ghostwriter can also produce reports in XLSX, PPTX, and JSON formats.

Furthermore, you can leverage Ghostwriter's GraphQL API to integrate custom project management, reporting workflows, and external tools into the platform.

Details

Check out the introductory blogpost: Introducing Ghostwriter

This blogpost discusses the design and intent behind Ghostwriter: Introducing Ghostwriter: Part 2

Documentation

The Ghostwriter Wiki contains everything you need to know to use or customize Ghostwriter.

The wiki covers everything from installation and setup information for first time users to database schemas, the project's code style guide, and how to expand or customize parts of the project to fit your needs.

Getting Help

Slack Status

The quickest way to get help is Slack. The BloodHound Slack Team has a #ghostwriter channel for discussing this project and requesting assistance. There is also a #reporting channel for discussing various topics related to writing and managing reports and findings.

You can submit an issue. If you do, please use the issue template and provide as much information as possible.

Before submitting an issue, review the Ghostwriter Wiki. Many of the common issues new users encounter stem from missing an installation step or an issue with Docker on their host system.

Contributing to the Project

The project team welcomes feedback, new ideas, and external contributions. Please open issues or submit a pull requests! Before submitting a PR, please check open and closed issues for any previous related discussion. Also, the proposed code must follow the Code Style Guide to be accepted.

We only ask you to limit PR submissions to those that fix a bug, enhance an existing feature, or add something new.

Contributions

The following people at SpecterOps have contributed much to this project:

These folks kindly submitted feedback and PRs to fix bugs and enhance existing features. Thank you!

Supporters

Ghostwriter's continuous development would not be possible without SpecterOps's commitment to transparency and support for open-source development.

Extension points exported contracts — how you extend this code

DOMUtils (Interface)
(no doc) [14 implementers]
ghostwriter/static/js/tinymce/tinymce.d.ts
PassiveVoiceDecoSpec (Interface)
* Spec object for passive voice decorations. * Uses the documented ProseMirror spec API (4th arg to Decoration.inline)
javascript/src/tiptap_gw/passive_voice_decoration.ts
AstNodeConstructor (Interface)
(no doc) [1 implementers]
ghostwriter/static/js/tinymce/tinymce.d.ts
PassiveVoiceButtonProps (Interface)
(no doc)
javascript/src/frontend/collab_forms/rich_text_editor/passive_voice.tsx
EditorObservable (Interface)
(no doc) [1 implementers]
ghostwriter/static/js/tinymce/tinymce.d.ts
Window (Interface)
(no doc)
javascript/src/frontend/collab_forms/rich_text_editor/oplog_outline.tsx
StringPathBookmark (Interface)
(no doc)
ghostwriter/static/js/tinymce/tinymce.d.ts
PassiveVoiceRange (Interface)
(no doc)
javascript/src/services/passive_voice_api.ts

Core symbols most depended-on inside this repo

get
called by 1932
ghostwriter/static/js/tinymce/tinymce.d.ts
each
called by 890
ghostwriter/static/js/tinymce/tinymce.d.ts
push
called by 700
ghostwriter/static/js/tinymce/tinymce.d.ts
filter
called by 596
ghostwriter/static/js/tinymce/tinymce.d.ts
on
called by 530
ghostwriter/static/js/tinymce/tinymce.d.ts
bind
called by 505
ghostwriter/modules/custom_serializers.py
attr
called by 469
ghostwriter/static/js/tinymce/tinymce.d.ts
append
called by 391
ghostwriter/static/js/tinymce/tinymce.d.ts

Shape

Function 5,465
Method 3,970
Class 1,631
Interface 303
Enum 271
Route 25

Languages

TypeScript50%
Python50%

Modules by API surface

ghostwriter/static/js/tinymce/themes/silver/theme.min.js1,077 symbols
ghostwriter/static/js/tinymce/tinymce.min.js932 symbols
ghostwriter/static/js/tinymce/plugins/table/plugin.min.js556 symbols
ghostwriter/static/js/tinymce/themes/mobile/theme.min.js536 symbols
ghostwriter/reporting/tests/test_views.py464 symbols
ghostwriter/static/js/tinymce/tinymce.d.ts396 symbols
ghostwriter/api/tests/test_views.py356 symbols
ghostwriter/static/js/fullcalendar-main.min.js351 symbols
javascript/src/__generated__/graphql.ts270 symbols
ghostwriter/shepherd/tests/test_views.py269 symbols
ghostwriter/static/js/sugar.min.js229 symbols
ghostwriter/rolodex/views.py214 symbols

Dependencies from manifests, versioned

@apollo/client3.13.1 · 1×
@fortawesome/fontawesome-svg-core6.7.2 · 1×
@fortawesome/free-regular-svg-icons6.7.2 · 1×
@fortawesome/free-solid-svg-icons6.7.2 · 1×
@graphql-codegen/cli6.0.0 · 1×
@graphql-codegen/client-preset5.0.0 · 1×
@graphql-typed-document-node/core3.2.0 · 1×
@hocuspocus/provider3.4.0 · 1×
@hocuspocus/server3.4.0 · 1×
@hocuspocus/transformer3.4.0 · 1×
@playwright/test1.61.0 · 1×

For agents

$ claude mcp add Ghostwriter \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact