From 20e78c828e3995371a5ed29f3f53514370b7c152 Mon Sep 17 00:00:00 2001 From: Carson Fleming Date: Fri, 24 Jan 2025 20:57:54 -0500 Subject: host docs here now --- live/commands.html | 213 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 live/commands.html (limited to 'live/commands.html') diff --git a/live/commands.html b/live/commands.html new file mode 100644 index 0000000..1cc28e1 --- /dev/null +++ b/live/commands.html @@ -0,0 +1,213 @@ + + + + + + + + + + Command Reference | Docs | Penguin's Kiss + + + + +
+ +
+

The following commands can be executed while attached to the daemon via + pkctl attach.

+
+

beacon

+

Creates a DNS beacon that this host will respond to as if it were a legitimate + DNS server. If a beacon already exists at this hostname, record type, and + record class, it will be overwritten.

+

Arguments: DNS data (hex string), hostname (string), record type (string), + record class (string, optional).

+

DNS data must be a string representing the hex-encoded binary data to be + returned as the answer to a DNS query for this record.

+

Hostname is the DNS hostname for which to answer queries.

+

Record type must be one of A, AAAA, CNAME, MX, or TXT. Data must be formatted + correctly per record type or else malformed responses will be returned.

+

Record class must be one of IN, CH, or HS, or else omitted. Defaults to IN + (the internet).

+

Usage:

+
pk> beacon 01020304 x.z.pkctl.org A IN
+
+
+

delbeacon

+

Deletes one or more beacons according to arguments supplied. If only hostname + is supplied, all beacons matching hostname will be deleted. If more arguments + are supplied, the search will be narrowed accordingly.

+

Arguments: hostname (string), record type (string, optional), record class + (string, optional).

+

See beacon reference for the meanings of these arguments.

+

Usage:

+
pk> delbeacon x.z.pkctl.org A IN
+
+
+

nbeacons

+

Prints the number of currently active DNS beacons.

+

Usage:

+
pk> nbeacons
+[pk] Active beacons: 224
+
+
+

lbeacons

+

Lists all currently active DNS beacons and their data.

+

Usage:

+
pk> lbeacons
+[pk] Active beacons:
+- x.z.pkctl.org A IN: 01020304
+- ...
+[pk] 224 total.
+
+
+

nscreen

+

Prints the number of currently attached controller screens.

+

Usage:

+
pk> nscreen
+[pk] Active screens: 2
+
+
+

ncli

+

Prints the number of currently connected TCP clients.

+

Usage:

+
$ ncli
+[pk] Active TCP clients: 27
+
+
+

lcli

+

Lists the currently connected TCP clients and their descriptive information.

+
$ lcli
+[pk] Active TCP clients:
+- 0: {'ip': '127.0.0.1', 'rport': 47874, 'rdns': 'localhost'}
+- ...
+[pk] 27 total.
+
+
+

lq

+

Lists the queue of commands to be executed by newly connected clients.

+

Usage:

+
pk> lq
+['whoami', 'hostname']
+
+
+

cq

+

Clears the command queue.

+

Usage:

+
pk> cq
+
+
+

show-serverkey

+

Prints the server's public key in a format easily copyable into an HDB + entry.

+

Usage:

+
pk> show-serverkey
+{"n": ..., "e": ...}
+
+
+

pty

+

Connects your screen to the specified client in a one-on-one terminal session, + similar to SSHing into the client machine.

+

Arguments: client ID (integer) — can be found with lcli.

+

Usage:

+
$ pty 3
+
+
+

refresh-hdb

+

Commands the client to refresh its internal hosts database from the web resource + it was originally pulled from.

+

Usage:

+
$ refresh-hdb
+
+
+

tunnel

+

Commands the client to disconnect and sleep for the number of seconds configured + in TTS.

+

Usage:

+
$ tunnel
+
+
+

die

+

Commands the client to exit and not respawn.

+

Usage:

+
$ die
+
+
+

Shell Commands

+

Inputs which are not recognized as server commands will be interpreted as + shell commands, which will be blasted to all connected clients and queued for + future clients to receive as well. Once executed, the results of these + commands will be blasted to all active screens, and logged in case no screen + is watching at the time of the response. The active command queue can be + managed by way of the lq and cq + commands.

+
+
+

Targeting

+

In the event that you would prefer not to dispatch a command to all current and + future clients, a specific set of targets can be specified by prepending + TARGET={targets} to the command, where {targets} is + a comma-delimited list of client IDs (integers). These client IDs can be + retrieved by checking the output of lcli. Commands which are + targeted are not queued for future clients to receive.

+

Usage:

+
$ TARGET=0,4,57,264 echo hello
+
+
+
+ + -- cgit v1.2.3