One of the best things about Cloud C2 is that installation is easy. There is no installer and no complicated dependencies needed to be satisfied.
Rather Cloud C2 is a single executable with startup parameters passed as command line arguments. Upon first run, a database file will be created automatically. This way Cloud C2 is portable and easy to manage.
To start, determine where the Cloud C2 server will live. This will need to be a machine that can be accessed by both you and the deployed Hak5 devices. Typically a small VPS or other Internet-facing server will be used, though there are circumstances where a private-network only server may be desired.
In this example setup, we'll assume that we're using an Internet facing Linux server, though the setup process will be similar for Mac and Windows as all versions of the cross-platform Cloud C2 server accept the same command-line arguments.
Start by copying the Cloud C2 binary for your environment to the server.
Then connect to the server via SSH and execute the Cloud C2 binary.
Note: From version 3.0.0 onward all Cloud C2 editions (Community, Edition, Teams) use the same binary. Filenames will differ from screenshot.
Running the Cloud C2 binary without any arguments will show the usage.
Usage of ./c2_community-linux-64:
-certFile string
Custom SSL Certificate file (disabled letsencrypt)
-db string
Path to the c2 database (default "c2.db")
-hostname string
Hostname of server (ip or DNS name)
-https
Enable https (requires ports 80 and 443)
-keyFile string
Custom SSL Key file (disables letsencrypt)
-listenip string
IP address to listen on (default "0.0.0.0")
-listenport string
Port of the HTTP server (default "8080")
-reverseProxy
If set, Cloud C2 will work behind a reverse proxy
-reverseProxyPort string
If set, this will be the internet facing port from which Cloud C2 will be available
-sshport string
Port of the SSH server (default "2022")
At a minimum, Cloud C2 must be run with the (hostname) argument. This may be either an IP address or DNS name. If a DNS name is used, HTTPS may be enabled – either by supplying a custom SSL certificate file (-certFile) or by generating a Let's Encrypt certificate (-https). In our example, we'll choose a DNS name and the HTTPS option.
The first time Cloud C2 runs, a database file is generated. This will either be named c2.db automatically in the same directory as the Cloud C2 binary, or as specified by the (-db) command line argument.
A setup security token will also display. This is important and will be needed to complete setup, so you may want to copy it to your clipboard.
Setup
With Cloud C2 now running, browse the the hostname of the server. You will be prompted for the setup token printed from the command line, as well as the license key provided by email. To complete setup, create an account, accept the EULA & TOS and click Save.
With setup complete, you may now login.