View Issue Details

IDProjectCategoryView StatusLast Update
0009813Kali LinuxNew Tool Requestspublic2026-08-02 22:33
Reporterb3rt1ng Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status newResolutionopen 
Summary0009813: Koi multi-session reverse shell handler with PTY upgrade, payload obfuscator, post-exploitation modules and session replay
Description

[Name]
koi

[Version]
0.10.3 (released 2026-08-01)

[Homepage]
https://github.com/b3rt1ng/Koi

[Documentation]
https://b3rt1ng.github.io/koi-wiki/

[Download]
https://github.com/b3rt1ng/Koi/releases/tag/v0.10.3
Tarball: https://github.com/b3rt1ng/Koi/archive/refs/tags/v0.10.3.tar.gz
Releases are tagged as vX.Y.Z. Also published on PyPI as "koi-handler":
https://pypi.org/project/koi-handler/

[Author]
b3rt1ng

[License]
GPL-3.0-or-later (full text in LICENSE)

[Description]
koi is a reverse shell listener built around handling several shells at once
rather than one at a time. It listens on a single port, registers every
incoming shell as a session, and lets the operator tag, list, background and
switch between them without dropping any. It also has an embedded payload obfuscator,
makes modules easy to implement with a ready to use syntax, while being optimized for local
and remote testings.

Main features:

  • Multi-session handling with tags, autocompletion and clean signal routing
    (Ctrl+Z backgrounds a session, Ctrl+C is forwarded to the remote instead of
    killing the listener).
  • PTY upgrade: raw shells are upgraded to a full PTY or PTY-like while being
    hidden from static based AV.
  • Post-exploitation modules, written in Python and reloadable at runtime:
    file transfer (upload/download), enumeration (sysinfo, network, users,
    processes, wifi, env), credential dumping, AD collection (SharpHound),
    privilege escalation checks (PEAS, Windows escalation checker), pivoting
    (Ligolo agent deployment), and session duplication / redirection.
  • Payload obfuscator with chainable techniques (XOR, hex, format strings,
    char arrays), exposed both inside the handler and as a standalone
    "koifuscator" command.
  • Session logging: every session is recorded and replayable with "koireview".
  • Screenable mode, masking IPs and MAC addresses in output for demos, CTFs
    and screenshots.
  • Optional MCP server exposing sessions, modules and logs to an MCP client,
    read-only by default.

[Dependencies]
Python 3.10 or newer. The core has no third-party dependencies and is from standard
library only.

MCP support is an optional extra and is not required to run the tool. Its
dependencies (mcp >= 2.0, uvicorn >= 0.30, starlette >= 0.40) are already
packaged in Debian as python3-mcp, python3-uvicorn and python3-starlette, so
they could be a Suggests/Recommends rather than a hard dependency.

Some modules fetch third-party tooling (SharpHound, PEAS, Ligolo) at runtime
and cache it locally for offline reuse. Nothing third-party is vendored in
the source tree.

[Similar tools already in Kali]
The closest existing package is villain, described as a high level C2
framework. koi is deliberately narrower: it is a shell handler, not a C2. It
does not generate implants, does not run a team server, and does not manage
its own beacon protocol. It accepts plain reverse shells from whatever
payload the operator chose, and focuses on what happens after the shell lands.
Operators wanting a C2 will still want villain or sliver; koi targets the very
common case where you already have a callback and want to work with several
of them comfortably.

pwncat and powercat are netcat replacements and do not handle
sessions, PTY upgrades or post-exploitation. hoaxshell is a Windows-only HTTP
reverse shell payload generator and handler with a much narrower scope.
sliver is an implant-based C2 in a different category entirely.

Features I have not found combined in the existing packages: session recording
with a dedicated replay command, an IP/MAC masking mode for safe screen
sharing, a standalone chainable payload obfuscator sharing the handler's
codebase, and the MCP server.

[Project activity]
First commit 2026-03-13, 125 commits and 63 published versions since, latest
release 2026-08-01. Development has been continuous over the last five months.
Documentation is maintained in a separate wiki.

[Installation]
Standard PEP 517 project (setuptools backend, src layout, pyproject.toml).
No compilation step.

pipx install koi-handler

or

pip install koi-handler

It installs three entry points: koi, koifuscator and koireview.

For packaging, it builds with pybuild without any special handling:

export PYBUILD_NAME = koi
%:
dh $@ --with python3 --buildsystem=pybuild

Full command reference: https://b3rt1ng.github.io/koi-wiki/cli-reference/

[Debian packaging status]
Not currently packaged for Debian, and there is no debian/ directory upstream.
I am happy to provide one or to help with packaging if that is useful.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2026-08-02 22:33 b3rt1ng New Issue