summaryrefslogtreecommitdiff
path: root/live/commands.html
diff options
context:
space:
mode:
authorCarson Fleming <cflems@cflems.net>2025-01-24 21:07:23 -0500
committerCarson Fleming <cflems@cflems.net>2025-01-24 21:07:23 -0500
commit026f5462d958f22f38803a19064cfc7c4f2c3b0d (patch)
tree2cbef020766244bc6a5cef5efd99cd197efa4fa5 /live/commands.html
parent6cc283f208b3a362e397c78dd9a30419ced70517 (diff)
downloadpk-026f5462d958f22f38803a19064cfc7c4f2c3b0d.tar.gz
rename live to docs
Diffstat (limited to 'live/commands.html')
-rw-r--r--live/commands.html213
1 files changed, 0 insertions, 213 deletions
diff --git a/live/commands.html b/live/commands.html
deleted file mode 100644
index 1cc28e1..0000000
--- a/live/commands.html
+++ /dev/null
@@ -1,213 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <meta charset="utf-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <meta name="author" content="Carson Fleming" />
- <meta name="description" content="Harness encrypted client-server communication, asynchronous command distribution, terminal emulation, and support for unlimited clients and controllers with Penguin's Kiss, the ultimate tool to manage remotely controlled devices with security and convenience." />
- <link rel="icon" type="image/x-icon" href="/favicon.ico" />
- <link rel="stylesheet" type="text/css" href="/css/control.css" />
- <title>Command Reference | Docs | Penguin&apos;s Kiss</title>
- <link rel="canonical" href="https://c2.pkctl.org/commands" />
- </head>
- <body>
- <header id="banner">
- <a id="banner-logo" href="/">
- <img id="logo-img" src="/img/banner.webp" alt="Penguin&apos;s Kiss Banner" />
- </a>
- <div id="banner-buttons">
- <a class="button" href="https://github.com/cflems/pk">GitHub</a>
- <a class="button" href="https://github.com/cflems/pk/releases">Download</a>
- </div>
- </header>
- <div id="page">
- <nav id="navigation">
- <h3 class="nav-heading"><a href="/">About PK</a></h3>
- <ul class="nav-section">
- <li><a href="/#download">Downloading</a></li>
- <li><a href="/#build">Building</a></li>
- <li><a href="/#precompiled">Precompiled</a></li>
- </ul>
- <h3 class="nav-heading"><a href="/client">Client Config</a></h3>
- <ul class="nav-section">
- <li><a href="/client#tts">Time to Sleep</a></li>
- <li><a href="/client#bits">RSA Bits</a></li>
- </ul>
- <h3 class="nav-heading"><a href="/server">Server Config</a></h3>
- <ul class="nav-section">
- <li><a href="/server#install">Installing</a></li>
- <li><a href="/server#pkctl">PKCTL Usage</a></li>
- <li><a href="/server#keygen">Host Key Generation</a></li>
- <li><a href="/server#users">Local Users</a></li>
- </ul>
- <h3 class="nav-heading"><a href="/hdb">Hosts Database</a></h3>
- <ul class="nav-section">
- <li><a href="/hdb#format">Format</a></li>
- <li><a href="/hdb#keys">Keys Section</a></li>
- <!-- Routes here soon. :) -->
- </ul>
- <h3 class="nav-heading"><a href="/commands">Command Reference</a></h3>
- <ul class="nav-section">
- <li><a href="/commands#beacon">beacon</a></li>
- <li><a href="/commands#delbeacon">delbeacon</a></li>
- <li><a href="/commands#nbeacons">nbeacons</a></li>
- <li><a href="/commands#lbeacons">lbeacons</a></li>
- <li><a href="/commands#nscreen">nscreen</a></li>
- <li><a href="/commands#ncli">ncli</a></li>
- <li><a href="/commands#lcli">lcli</a></li>
- <li><a href="/commands#lq">lq</a></li>
- <li><a href="/commands#cq">cq</a></li>
- <li><a href="/commands#show-serverkey">show-serverkey</a></li>
- <li><a href="/commands#pty">pty</a></li>
- <li><a href="/commands#refresh-hdb">refresh-hdb</a></li>
- <li><a href="/commands#tunnel">tunnel</a></li>
- <li><a href="/commands#die">die</a></li>
- <li><a href="/commands#shell">Shell Commands</a></li>
- <li><a href="/commands#target">Targeting</a></li>
- </ul>
- </nav>
- <div id="content">
- <p>The following commands can be executed while attached to the daemon via
- <code>pkctl attach</code>.</p>
- <section id="beacon">
- <h3>beacon</h3>
- <p>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.</p>
- <p>Arguments: DNS data (hex string), hostname (string), record type (string),
- record class (string, optional).</p>
- <p>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.</p>
- <p>Hostname is the DNS hostname for which to answer queries.</p>
- <p>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.</p>
- <p>Record class must be one of IN, CH, or HS, or else omitted. Defaults to IN
- (the internet).</p>
- <p>Usage:</p>
- <pre>pk&gt; beacon 01020304 x.z.pkctl.org A IN</pre>
- </section>
- <section id="delbeacon">
- <h3>delbeacon</h3>
- <p>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.</p>
- <p>Arguments: hostname (string), record type (string, optional), record class
- (string, optional).</p>
- <p>See <a href="#beacon">beacon reference</a> for the meanings of these arguments.</p>
- <p>Usage:</p>
- <pre>pk&gt; delbeacon x.z.pkctl.org A IN</pre>
- </section>
- <section id="nbeacons">
- <h3>nbeacons</h3>
- <p>Prints the number of currently active DNS beacons.</p>
- <p>Usage:</p>
- <pre>pk&gt; nbeacons
-[pk] Active beacons: 224</pre>
- </section>
- <section id="lbeacons">
- <h3>lbeacons</h3>
- <p>Lists all currently active DNS beacons and their data.</p>
- <p>Usage:</p>
- <pre>pk&gt; lbeacons
-[pk] Active beacons:
-- x.z.pkctl.org A IN: 01020304
-- ...
-[pk] 224 total.</pre>
- </section>
- <section id="nscreen">
- <h3>nscreen</h3>
- <p>Prints the number of currently attached controller screens.</p>
- <p>Usage:</p>
- <pre>pk&gt; nscreen
-[pk] Active screens: 2</pre>
- </section>
- <section id="ncli">
- <h3>ncli</h3>
- <p>Prints the number of currently connected TCP clients.</p>
- <p>Usage:</p>
- <pre>$ ncli
-[pk] Active TCP clients: 27</pre>
- </section>
- <section id="lcli">
- <h3>lcli</h3>
- <p>Lists the currently connected TCP clients and their descriptive information.</p>
- <pre>$ lcli
-[pk] Active TCP clients:
-- 0: {'ip': '127.0.0.1', 'rport': 47874, 'rdns': 'localhost'}
-- ...
-[pk] 27 total.</pre>
- </section>
- <section id="lq">
- <h3>lq</h3>
- <p>Lists the queue of commands to be executed by newly connected clients.</p>
- <p>Usage:</p>
- <pre>pk&gt; lq
-['whoami', 'hostname']</pre>
- </section>
- <section id="cq">
- <h3>cq</h3>
- <p>Clears the command queue.</p>
- <p>Usage:</p>
- <pre>pk&gt; cq</pre>
- </section>
- <section id="show-serverkey">
- <h3>show-serverkey</h3>
- <p>Prints the server&apos;s public key in a format easily copyable into an HDB
- entry.</p>
- <p>Usage:</p>
- <pre>pk&gt; show-serverkey
-{"n": ..., "e": ...}</pre>
- </section>
- <section id="pty">
- <h3>pty</h3>
- <p>Connects your screen to the specified client in a one-on-one terminal session,
- similar to SSHing into the client machine.</p>
- <p>Arguments: client ID (integer) &mdash; can be found with <code>lcli</code>.</p>
- <p>Usage:</p>
- <pre>$ pty 3</pre>
- </section>
- <section id="refresh-hdb">
- <h3>refresh-hdb</h3>
- <p>Commands the client to refresh its internal hosts database from the web resource
- it was originally pulled from.</p>
- <p>Usage:</p>
- <pre>$ refresh-hdb</pre>
- </section>
- <section id="tunnel">
- <h3>tunnel</h3>
- <p>Commands the client to disconnect and sleep for the number of seconds configured
- in <a href="/client#tts">TTS</a>.</p>
- <p>Usage:</p>
- <pre>$ tunnel</pre>
- </section>
- <section id="die">
- <h3>die</h3>
- <p>Commands the client to exit and not respawn.</p>
- <p>Usage:</p>
- <pre>$ die</pre>
- </section>
- <section id="shell">
- <h3>Shell Commands</h3>
- <p>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 <a href="#lq">lq</a> and <a href="#cq">cq</a>
- commands.</p>
- </section>
- <section id="target">
- <h3>Targeting</h3>
- <p>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
- <code>TARGET={targets}</code> to the command, where <code>{targets}</code> is
- a comma-delimited list of client IDs (integers). These client IDs can be
- retrieved by checking the output of <code>lcli</code>. Commands which are
- targeted are not queued for future clients to receive.</p>
- <p>Usage:</p>
- <pre>$ TARGET=0,4,57,264 echo hello</pre>
- </section>
- </div>
- </div>
- </body>
-</html>