added readme

for download and upload through the gontrol server
This commit is contained in:
Stefan Etringer 2025-10-06 10:35:11 +00:00
parent 319ae00eb5
commit bc09faf7cb
1 changed files with 77 additions and 1 deletions

View File

@ -1,3 +1,79 @@
# gommand
A standalone shell with remote access through the browser
A standalone shell including remote access through your browser.
The shell has multiple features:
* Fully interactive shell in your browser
* Upload and download through to the browser
* Bash/emacs like controls
* Persistent color themes
* Resize rows and columns in interactive and non interactive shell by resizing
the browser window
* Connect to a control server like [gontrol](https://git.stefan.works/whx/gontrol)
## Execute gommand
Just start the binary, the TCP the shell is running on port will be chosen randomly.
If not sufficient, the port to connect directly to the shell can be chosen via
`-interactive-port` followed by your preferred TCP port. Furthermore, you can
chose the network interface `gommand` is using.
To connect `gommand` as an agent to a
[gontrol](https://git.stefan.works/whx/gontrol) C2 server, you can setup the IP
address and port. By default VPN interfaces like IPSec and wireguard will be
prioritized higher by `gommand`. That means if the network interface has not
been chosen manually, The first VPN interfaces will be used.
```sh
$ gommand --help
Usage of gommand:
-interactive-port string
Port to connect directly to the agent's webapp. Port will be random if not set.
-network-interface string
Network interface to bind to. Will bind to the first non loopback interface if not set. VPN interfaces will be preferred.
-server-address string
IP Address of the C2 server. (default "127.0.0.1")
-server-port string
Websocket port of the C2 server. (default "5555")
```
## Usage
Once the binary of the shell has been executed on the target you can open the
shell via browser connection. The TCP port will be chosen randomly if not set
as a parameter at startup.
Connect to the shell by putting IP address and port into the address input bar
of your browser.
Once you have opened the shell in your browser use it like any other command
line interface. You are greeted by the non interactive shell mode. This
includes uploading, downloading and setting the color theme of the shell. You
can switch to a completely interactive shell from here.
Type help inside the shell to get more information:
```sh
$ help
This is a shell in the browser, a web shell.
It includes a non-interactive shell with an optional interactive mode.
Furthermore, additional commands to ease communications between server
and client.
Available Commands:
upload Upload files to the server through the file selector of the browser.
download <file> Download files from the server to your local download directory.
theme <theme> Change the colorscheme of the shell. Type theme to get an overview of all colorschemes.
start-interactive Opens a shell in an interactive terminal. Type ctrl+d to go back to non-interactive mode.
```
### Interactive Mode
Use the command `start-interactive` to switch to an interactive shell. Once
activated you can use binaries and shell-builtins which need interaction. For
example `less`, `vim`, your favorite package manager or initial connection to a
server using `ssh`.