> For the complete documentation index, see [llms.txt](https://adaptix-framework.gitbook.io/adaptix-framework/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://adaptix-framework.gitbook.io/adaptix-framework/adaptix-c2/getting-starting/starting.md).

# Starting

## AdaptixServer

The necessary parameters for starting the AdaptixServer can be passed via command line parameters or via a configuration file.

<figure><img src="/files/LsvMi99GZsFehjlOBzJq" alt=""><figcaption></figcaption></figure>

The configuration file is specified in the `-profile` parameter and must contain a profile in YAML format.

```json
Teamserver:
  interface: "0.0.0.0"
  port: 4321
  endpoint: "/endpoint"
  password: "pass"
  only_password: true
  operators:
    operator1: "pass1"
    operator2: "pass2"
  cert: "server.rsa.crt"
  key: "server.rsa.key"
  extenders:
    - "extenders/beacon_listener_http/config.yaml"
    - "extenders/beacon_listener_smb/config.yaml"
    - "extenders/beacon_listener_tcp/config.yaml"
    - "extenders/beacon_listener_dns/config.yaml"
    - "extenders/beacon_agent/config.yaml"
    - "extenders/gopher_listener_tcp/config.yaml"
    - "extenders/gopher_agent/config.yaml"
  axscripts:
#    - "Extension-Kit/extension-kit.axs"
  access_token_live_hours: 12
  refresh_token_live_hours: 168

HttpServer:
  error:
    status: 404
    headers:
      Content-Type: "text/html; charset=UTF-8"
      Server: "AdaptixC2"
      Adaptix-Version: "v1.2"
    page: "404page.html"
  http:
    max_header_bytes: 8192
    read_header_timeout_sec: 0
    read_timeout_sec: 0
    write_timeout_sec: 0
    idle_timeout_sec: 0
    request_timeout_sec: 300
    request_timeout_message: "504 Gateway Timeout"
    disable_keep_alives: false
    enable_http2: true
  tls:
    min_version: "TLS1.2"
    max_version: "TLS1.3"
    prefer_server_cipher_suites: false
    cipher_suites:
      - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
      - "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
      - "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
      - "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
      - "TLS_RSA_WITH_AES_128_GCM_SHA256"
      - "TLS_RSA_WITH_AES_256_GCM_SHA384"
```

**Teamserver**:

* **port** - port for client connection
* **endpoint** - URN for connecting clients
* **password** - authenticator for clients
* **only\_password** — If `true`, only password authentication is used for any login (Cobalt Strike mode). If `false`, authentication is used with strictly defined logins and passwords.
* **cert** and **key** - SSL Certificate and Key for web server
* **extender** - array of strings-paths to go-plugins
* **axscripts -** array of strings-paths to AX Scripts
* **access\_token\_live\_hours** & **refresh\_token\_live\_hours** -  The validity period of the JWT token that the client receives after authorization.

**ServerResponse:**

* error.status - web server response code in case of an illegitimate request
* error.headers - web server HTTP Headers
* error.page - the path to the file whose contents will be returned in the web server's response
* http - HTTP server settings
* tls - HTTP server cipher settings

To run adaptixserver you need an SSL certificate. You can generate your own using the ssl\_gen script.

```sh
openssl req -x509 -nodes -newkey rsa:2048 -keyout server.rsa.key -out server.rsa.crt -days 3650
```

After starting AdaptixServer, a `data` directory will be created next to the server executable file. The server database file and all other files will be created in the `data` directory.

```
./adaptixserver -profile profile.yaml
```

<figure><img src="/files/xnNGBmN7pgAbTGCch7rH" alt=""><figcaption></figcaption></figure>

## AdaptixClient

After the AdaptixClient is launched, a directory named `.adaptix` will be created in the user's home directory. The AdaptixClient database file will be saved in the `.adaptix` directory. In the authorization form, you must specify the profile data, user nickname (any nick), and the name of the local project.

<figure><img src="/files/XagdpXE5Gg1GA5hvbqar" alt=""><figcaption></figcaption></figure>

When authorizing, you can select which data will be synchronized with the server.

<figure><img src="/files/BWJdIvGsm8bAVdX4kSM7" alt=""><figcaption></figcaption></figure>

After synchronizing data with the server, the main AdaptixClient window will be available.

<figure><img src="/files/FpTJsU22NcEhP1gtwcLn" alt=""><figcaption></figcaption></figure>
