Files
conquest/docs/1-INSTALLATION.md

73 lines
2.3 KiB
Markdown
Raw Normal View History

2025-10-30 15:35:13 +01:00
# Installation
2025-10-31 11:09:37 +01:00
## 1. Clone the Conquest repository
2025-10-30 15:35:13 +01:00
```
git clone https://github.com/jakobfriedl/conquest
cd conquest
```
2025-10-31 11:09:37 +01:00
## 2. Install Nim.
2025-10-30 15:35:13 +01:00
```bash
curl https://nim-lang.org/choosenim/init.sh -sSf | sh
```
2025-10-31 18:00:57 +01:00
After it is installed, the Nim binaries need to be added to the PATH. This is done by adding the following line to the `.bashrc`/`.zshrc`/`.profile` configuration.
2025-10-31 10:14:35 +01:00
```
2025-10-31 18:00:57 +01:00
export PATH=/home/<user>/.nimble/bin:$PATH
2025-10-31 10:14:35 +01:00
```
2025-10-31 11:09:37 +01:00
## 3. Install dependencies
2025-10-31 17:30:13 +01:00
The Conquest binaries for team server and client are designed to be compiled and run on Ubuntu/Debian-based systems. The operator client requires the subsequent dependencies to be installed. To run the client on a Windows host, install the same dependencies in WSL.
2025-10-31 10:14:35 +01:00
```
sudo apt update
sudo apt install gcc g++ make git curl xz-utils
2025-10-31 17:30:13 +01:00
sudo apt install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libgtk2.0-0
2025-10-31 11:09:37 +01:00
```
2025-10-31 18:00:57 +01:00
In some cases, the agent build process fails due to insufficient permissions. Execute the following command to make the build script executable.
```
chmod +x src/agent/build.sh
```
2025-10-31 12:31:41 +01:00
## 4. Compile Conquest binaries
2025-10-31 11:09:37 +01:00
The Conquest binaries are compiled using the `nimble` command, which installs and updates all Nim libraries and dependencies automatically.
2025-10-30 15:35:13 +01:00
```
nimble server
nimble client
```
2025-10-31 11:09:37 +01:00
Optionally, the required dependencies can be installed manually using the following command prior to the compilation.
2025-10-31 10:14:35 +01:00
```
nimble install -d
```
2025-10-31 11:09:37 +01:00
## 5. Start the Conquest team server with a C2 profile.
The default profile is located in [data/profile.toml](../data/profile.toml) and can be adapted by the operator.
2025-10-30 15:35:13 +01:00
```
2025-10-31 18:00:57 +01:00
bin/server -p data/profile
2025-10-30 15:35:13 +01:00
```
On the first start, the Conquest team server creates the Conquest database in the data directory, as well as the team server's private key in data/keys, which is used for the key exchange between team server, client and agent.
2025-10-31 10:14:35 +01:00
![Team server start](../assets/install.png)
2025-10-30 15:35:13 +01:00
2025-10-31 11:09:37 +01:00
## 6. Start the Conquest operator client
2025-10-30 15:35:13 +01:00
```
bin/client
```
2025-10-31 12:31:41 +01:00
By default, the Conquest client connects to localhost:37573 to connect to the team server. In order to connect to a remote team server, the address and port can be specified from the command-line using the `-i` and `-p` flags. The team server port can be configured in the malleable C2 profile used by the server.
2025-10-30 15:35:13 +01:00
```
bin/client -i <team-server-address> -p <team-server-port>
```