mirror of
https://github.com/Astatin3/unshell.git
synced 2026-06-08 22:38:01 -06:00
fcb3b2be17
- Write PROTOCOL.md with full wire format spec and 8 real-world scenario
analyses (reconnect, multi-operator, large files, AV evasion, router crash,
malformed packets, future pivoting)
- Rewrite workspace structure:
- unshell lib: protocol types (PacketHeader, TreeRequest/Response,
HandshakeMessage/Ack), Transport trait, TcpTransport, Tree routing
- ush-router: router binary with per-node threads, NodeRegistry with
longest-prefix path matching, packet relay
- ush-payload: implant binary with reconnect loop, module tree, InfoModule
- ush-cli: operator REPL with rustyline, session management, command parser
- Protocol design: two-part rkyv frame [header][payload]; router reads only
header for routing, payload bytes forwarded opaque
- All code documented with doc comments and examples
- Zero warnings, zero errors across entire workspace
- 32 tests pass (unit tests for tree routing, TCP transport, framing,
command parsing, node registry)
36 lines
1020 B
TOML
36 lines
1020 B
TOML
cargo-features = ["trim-paths"]
|
|
|
|
# =============================================================================
|
|
# ush-payload — The UnShell Implant Binary
|
|
# =============================================================================
|
|
#
|
|
# This binary runs on the target machine. It:
|
|
# 1. Connects to the router over TCP (reverse connection).
|
|
# 2. Completes the handshake, registering its modules.
|
|
# 3. Runs a recv loop, routing incoming TreeRequests to local Endpoints.
|
|
#
|
|
# Build with:
|
|
# cargo build --profile minimize -p ush-payload
|
|
#
|
|
# The minimize profile strips symbols and optimises for binary size.
|
|
|
|
[package]
|
|
name = "ush-payload"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
description = "UnShell implant binary"
|
|
|
|
[features]
|
|
default = ["log", "tcp"]
|
|
log = ["unshell/log"]
|
|
log_debug = ["unshell/log_debug"]
|
|
tcp = ["unshell/tcp"]
|
|
obfuscate = ["unshell/obfuscate_ref"]
|
|
|
|
[dependencies]
|
|
unshell = { workspace = true }
|
|
rkyv = { workspace = true }
|
|
|
|
[lints]
|
|
workspace = true
|