> ## Documentation Index
> Fetch the complete documentation index at: https://p-bitm-2269ecee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Plugins

> Create, review, and assign Firefox extension packages to campaigns.

Plugins are Firefox extension packages stored in the admin library and
selected when creating a campaign.

## Library operations

The dashboard supports creating, editing, importing, exporting, and deleting
plugins. A plugin contains:

* a name and description;
* at most 128 files;
* validated relative file names;
* text content for each file.

At minimum, a usable extension normally includes `manifest.json` and the
scripts or assets referenced by that manifest.

<Steps>
  <Step title="Create the library record" icon="plus">
    Open **Browser Extensions**, select **New Plugin**, enter a name and
    description, and choose **Create & Edit**.
  </Step>

  <Step title="Add the extension files" icon="files">
    Create or upload `manifest.json` and every referenced script or text asset
    in the plugin editor. File paths must be relative and use forward slashes.
  </Step>

  <Step title="Review and save" icon="save">
    Review the manifest, permissions, URL matches, scripts, and communication
    paths, then save the complete file set.
  </Step>

  <Step title="Assign it to a campaign" icon="list-checks">
    Select the plugin in the campaign wizard. P-BitM packages and installs it
    when target browser containers are created.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/p-bitm-2269ecee/9BS4YJCQtZV5PBjE/assets/screenshots/user-guide/plugins-editor.png?fit=max&auto=format&n=9BS4YJCQtZV5PBjE&q=85&s=3d25571e9a6550fa049a60ccf5426a6c" alt="Plugin editor showing the extension file list and manifest.json contents" width="2880" height="1852" data-path="assets/screenshots/user-guide/plugins-editor.png" />
</Frame>

Use **Import** instead of **New Plugin** for an existing reviewed P-BitM Firefox extension ZIP archive.

**Export** creates a portable ZIP for review, backup, or another deployment.

## Review checklist

Before enabling a plugin:

* inspect every file;
* request only necessary Firefox permissions;
* use campaign-local communication paths;
* avoid hard-coded credentials, public tokens, and unrelated remote hosts;
* validate all externally supplied data;
* confirm that cleanup occurs when the session ends.

Plugins execute inside assessment browser containers and must be treated as
trusted active code. Use only plugins reviewed for the current engagement.

## Built-in runtime extensions

P-BitM also packages a small set of built-in Firefox extensions into each
session container. Their source remains in
`bitm-images/common/firefox/bad_firefox_extensions`.

* **File interception** records and hijacks files downloaded during the
  session.
* **Session persistence** prevents common logout actions.
* **Site information** keeps the session view aligned with the active page's
  title and favicon.
* **Shortcut control** limits browser keyboard shortcuts.
* **Form collection** records data explicitly submitted through web forms.
* **Cookie collection** records cookies.

## Built-in extension demonstrations

These recordings use synthetic data and an authorized test environment. They
are included to review operator-visible behavior; they do not expand the
approved scope of a campaign.

### File interception demo

<Frame>
  <video alt="Controlled file-interception extension demonstration" controls playsInline preload="metadata" className="w-full rounded-xl" src="https://mintcdn.com/p-bitm-2269ecee/rZ_ctlIxJ7DPKLJt/assets/videos/plugins/file_hijacking.mp4?fit=max&auto=format&n=rZ_ctlIxJ7DPKLJt&q=85&s=e94a66c93f6435d7bde7b6f92669133a" data-path="assets/videos/plugins/file_hijacking.mp4" />
</Frame>

### Session persistence demo

<Frame>
  <video alt="Controlled session-persistence extension demonstration" controls playsInline preload="metadata" className="w-full rounded-xl" src="https://mintcdn.com/p-bitm-2269ecee/rZ_ctlIxJ7DPKLJt/assets/videos/plugins/persistence_logout.mp4?fit=max&auto=format&n=rZ_ctlIxJ7DPKLJt&q=85&s=0241e608e5fa62492ecfea46e7c63cdf" data-path="assets/videos/plugins/persistence_logout.mp4" />
</Frame>

See the [plugin format reference](/reference/plugin-format).

Developers preparing a reusable or built-in extension should also read
[creating and contributing attack vectors](/development/attack-vectors).
