Implement first handshake

The first part of the client/server handshake is a periodic GET from the
client to a fictitious /style.css on the server. If the server is
running, it'll respond with a 200 OK and a random bs css file for the
appearance of legitimacy. The server response is loaded from file, so
the server script isn't standalone (that may change).
Add basic control shell comms

Implement the socket communications for a basic shell to control the
beacon. Change server from something that's continuously running to more of a
one-off thing you'll run when you want control.
Add basic shell functionality

Exit, help, and the start of exec command
Add exec command parsing
Implement remote command execution

Server can execute arbitrary commands on client, although there are
definitely bugs when the stdout is greater than 1024 which is the block
size I use when receiving from the socket.
Remove fakeOK.txt file

Just put it inside the script as a multiline string.
Fix socket bugs, add exception handling

Implement proper socket programming by checking the bytes sent/recieved
and looping until what has been sent matches what is expected. Use a
convention that whenever anything is sent, the first five bytes
represent the size of the following message. Add exception handling at a
very general level.
Use native str.count instead of regex

...for determining number of commands passed to `exec'
Update regex

Disallow double quotes to be in the command section (between double
quotes) of a command in the exec command list.

Basically,
GOOD: exec "ls -l" "uname -a"
BAD : exec "ls -l" "uname -a""
                            ^ bad
Minor psh improvements

Help messages, etc
Specify python version for client
Improve socket comms functions, psh

Automatically base64 decode in the sockrecv. Store supported commands in
a list and reference later instead of directly hardcoding command names.
List is also useful for generating the help text.
Add basic recon functionality

Support printing out recon info to psh as well as archiving to file.
Also some minor psh improvements.
Add basic shell, merge client stderr into stdout

psh now supports `shell' which enters the users in a super basic shell.
user gives a command to execute, client executes it and sends back the
stdin/stderr. Simple.
Correct Ctrl-c behavior

Previously Ctrl-c would cause you to exit the shell, however this is not
the behavior of real shells. Correct this so Ctrl-c simply brings you to
a new prompt, and Ctrl-d is the actual way to exit the shell. Applies
both to psh and psh's shell feature.
Minor psh fix for help
Improve psh shell prompt, add ifconfig to recon

Add username@hostname $/# instead of just shell >
Also add ifconfig to recon for info on interfaces/local ip
Update shell help
Implement logging for exec

Update exec regex to allow for optional -o parameter and write results
of exec to file, similarly to recon. Restructure how timestamp is added
to file (do it on server). Generalize write function.
Minor client fix

When Ctrl-c, give space before printing final log.