2020-04-12 00:54:16 +05:30
|
|
|
SocksBin
|
|
|
|
|
=====
|
|
|
|
|
|
|
|
|
|
Command line pastebin for sharing files and command outputs.
|
|
|
|
|
|
|
|
|
|
# How to use
|
|
|
|
|
|
|
|
|
|
### Requirements
|
|
|
|
|
To use this, you'll need a tool called **netcat**. Try typing 'nc' or 'netcat' into the terminal, you probably have it already !
|
|
|
|
|
|
|
|
|
|
_________
|
|
|
|
|
### Client Side
|
|
|
|
|
|
|
|
|
|
* Self-Explanatory examples using the public server
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
echo "Hello World !" | nc magnum.wtf 6969
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
cat "script.sh" | nc magnum.wtf 6969
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
* In case you started the server on localhost
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
df | nc localhost 9999
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
____
|
|
|
|
|
|
|
|
|
|
You will receive a url to the text-only paste as a response to the above commands. e.g.
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
https://socksbin.magnum.wtf/33fdd867
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
This has a built-in Pygment-based beautifier. add "_color" to the end of the received url, to get a beautified paste.
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
https://socksbin.magnum.wtf/33fdd867_color
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
<sup>In case your text isn't beautified, include the *shebang* `#!` which is the first two bytes of an executable</sup>
|
|
|
|
|
|
|
|
|
|
<sup> e.g. the first line should be `#! /usr/bin/env python` for proper python formatting</sup>
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
## Cool stuff
|
|
|
|
|
|
|
|
|
|
Make this much easier to use by adding an alias to your rc file. For example:
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
### `skb` alias
|
|
|
|
|
|
|
|
|
|
__Linux (Bash):__
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
echo 'alias skb="nc magnum.wtf 6969"' >> .bashrc
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
__macOS:__
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
echo 'alias skb="nc magnum.wtf 9999"' >> .bash_profile
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
### Copy output to clipboard
|
|
|
|
|
|
|
|
|
|
__Linux (Bash):__
|
|
|
|
|
```
|
|
|
|
|
echo 'alias tbc="netcat termbin.com 9999 | xclip -selection c"' >> .bashrc
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
echo less typing now! | tbc
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
__macOS:__
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
echo 'alias tbc="nc termbin.com 9999 | pbcopy"' >> .bash_profile
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
echo less typing now! | tbc
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
__Remember__ to reload the shell with `source ~/.bashrc` or `source ~/.bash_profile` after adding any of provided above!
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
2020-04-12 01:27:30 +05:30
|
|
|
# Server Side
|
|
|
|
|
|
|
|
|
|
## Configration
|
|
|
|
|
|
|
|
|
|
* Clone
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
git clone https://github.com/MagnumDingusEdu/SocksBin.git
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
* Set up virtual environment
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
python3 -m venv venv
|
|
|
|
|
|
|
|
|
|
# or
|
|
|
|
|
|
|
|
|
|
virtualenv venv
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
* Install required packages
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
source venv/bin/activate
|
|
|
|
|
pip intall -r requirements.txt
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
* Make the script executable
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
chmod +x paster.py
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
_____________________________________________
|
|
|
|
|
|
|
|
|
|
# Usage
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
usage: ./paster.py [-o output directory]
|
|
|
|
|
[-n listen_address] [-p port] [-s slug size]
|
|
|
|
|
[-l logfile] [-b buffer size][-h help]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
These are command line arguments. None of these are required to run the server. Defaults are specified in the section below.
|
|
|
|
|
|
|
|
|
|
_____________________________________________
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Settings
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
#### Output directory `-o` `--output_directory`
|
|
|
|
|
|
|
|
|
|
Absolute, or relative path to the directory where the pastes will be stored, as plaintext files.
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
./paster.py -o ./pastes
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
./paster.py -o /home/www/pastes/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
__Default value:__ `$HOME/socksbin`
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
2020-04-12 01:29:34 +05:30
|
|
|
#### URL `-u` `--url`
|
2020-04-12 01:27:30 +05:30
|
|
|
|
|
|
|
|
This will be used as a prefix for an url received by the client.
|
|
|
|
|
Value will be prepended with `$url`.
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
./paster.py -u https://domain.com/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
./paster.py -u https://subdomain.domain.com/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
./paster.py -u https://subdomain.domain.com/pastes/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
__Default value:__ `http://localhost/`
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
2020-04-12 01:29:34 +05:30
|
|
|
#### Slug size `-s` `--slug_size`
|
2020-04-12 01:27:30 +05:30
|
|
|
|
|
|
|
|
This will force slugs to be of required length:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
./paster.py -s 6
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
__Output url with default value__: `http://localhost/********`,
|
|
|
|
|
where * is a randomized character
|
|
|
|
|
|
|
|
|
|
__Output url with example value 6__: `http://localhost/******`,
|
|
|
|
|
where * is a randomized character
|
|
|
|
|
|
|
|
|
|
__Default value:__ 8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
2020-04-12 01:29:34 +05:30
|
|
|
#### Buffer size `-b` `--buffer_size`
|
2020-04-12 01:27:30 +05:30
|
|
|
|
|
|
|
|
This parameter defines size of the buffer in bytes, when making a connection.
|
|
|
|
|
TCP has a max buffer size of 60K.
|
|
|
|
|
```
|
|
|
|
|
./paster.py -b 4096
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
__Default value:__ 32768
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
2020-04-12 01:29:34 +05:30
|
|
|
#### Log file `-l` `--log_file`
|
2020-04-12 01:27:30 +05:30
|
|
|
|
|
|
|
|
```
|
|
|
|
|
./patser.py -l /home/user/socksbin.log.txt
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The log file will only be made if you specify this argument. Make sure that this file is user writable.
|
|
|
|
|
|
|
|
|
|
__Default value:__ not set
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
2020-04-12 01:29:34 +05:30
|
|
|
#### Queue Depth `-q` `--queue_depth`
|
2020-04-12 01:27:30 +05:30
|
|
|
|
|
|
|
|
```
|
|
|
|
|
./patser.py -q 10
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The helps to properly manage simultaneous connections. The maximum value is system dependent. For example, on Linux, see /proc/sys/net/core/somaxconn
|
|
|
|
|
|
|
|
|
|
__Default value:__ 10
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-04-12 00:54:16 +05:30
|
|
|
|
2020-04-12 01:29:34 +05:30
|
|
|
|