Skip to content

用户手册

安装

按照以下说明安装 Malice-Network:

  1. 为支持的操作系统下载 Malice-Network 服务器版本和客户端版本。

Malice-Network 服务器支持 LinuxWindowsMacOS,但是我们建议在 Linux 主机上运行服务器,因为在 Windows 上,服务器运行某些特性可能更加困难。Malice-Network 客户端在从 Windows 访问 Linux/MacOS 服务器时能正常工作。

  1. 运行服务器版本二进制文件。

部署

Server Config

config.yaml 是 Malice-Network 服务器的配置文件,其中包含了一些服务器以及 listener 可选的配置。

server 字段包含了以下服务器配置:

    `grpc_host`:gRPC 服务绑定的主机地址。

    `grpc_port`:gRPC 服务绑定的端口号。

    `audit`:日志审计级别设置,`0`为关闭审计,`1`为基本信息审计,`2`为详细审计。

    `packet_length`:数据包长度设置。

    `certificate`:自定义证书相关配置。

    `certificate_key`:自定义证书密钥相关配置项。

listener 字段包含了以下 listener 配置(可独立部署)

    `name`:listener名称。

    `auth`:listener身份验证配置文件名。

tcp:TCP 的连接配置选项:

    `name`: TCP配置连接名称。

    `host`:TCP连接绑定的主机地址。

    `port`:TCP 连接使用的端口号.

    `protocol`:使用的协议类型。

    `enable`:TCP 配置项是否启用。

tls:TLS 配置:

    `enable`:TLS配置是否启用。

    `CN`:TLS 证书的通用名称。

    `O`:TLS 证书的组织名称。

    `C`:TLS 证书的国家代码。

    `L`:TLS 证书的城市。

    `OU`:TLS 证书的组织单位。

    `ST`:TLS 证书的州或省份。

    `validity`:TLS 证书的有效期。

encryption:加密配置:

    `enable`:加密是否启用。

    `type`:加密类型。

    `key`:加密密钥。

websites:网站配置列表:

    `websiteName`:网站名称。

    `port`:网站使用的端口号。

    `rootPath`:网站的根路径。

    `enable`:网站配置项是否启用。

配置样例:

ca: .
opsec: true

server:
  grpc_port: 5004
  grpc_host: 127.0.0.1
  audit: 1  _# 0 close , 1 basic , 2 detail_
_  _config:
    packet_length: 100 _# 1M:_
_    _certificate:
    certificate_key:

listeners:
  name: default
  auth: default.yaml
  tcp:
    - name: tcp_default
      port: 5001
      host: 0.0.0.0
      protocol: tcp
      enable: true
      tls:
        enable: false
        CN: "test"
        O: "Sharp Depth"
        C: "US"
        L: "Houston"
        OU: "Persistent Housework, Limited"
        ST: "State of Texas"
        validity: "365"
      encryption:
        enable: false
        type: aes-cfb
        key: maliceofinternal
  websites:
    - websiteName: test
      port: 10049
      rootPath: "/"
      enable: false

启动 Server

Malice-Network 服务器是能与控制 Implant 并与 Malice-Network 客户端交互的主机。服务器还存储了部分 Malice-Network 收集的数据,并管理日志记录。Malice-Network 服务器必须和 config.yaml 在同一个目录下。要启动 **Malice-Network **服务器,请根据不同操作系统进行以下操作:

a. 对于 Linux:

     i. 输入以下命令:
bash
cd /path/to/malice-network-server
./malice-network-server
## 后台挂起
./malice-network-server --daemon

b. 对于 MacOS X:

     i. 输入以下命令:
bash
cd /path/to/malice-network-server
./malice-network-server

c. 对于 Windows

    i. 输入以下命令:
powershell
cd "C:\path\to\malice-network-server"
.\malice-network.exe

如果配置文件非默认的 config.yaml, 可以通过 -c path/any.yaml 指定

启动后服务器会输出以下信息:

在最简配置下, listener和server同时部署

启动 Listener

Server 的 config.yaml 中已经包含了 listener 配置。 是对 server 与 listener 在同一台机器上部署时的简化。

listener 将始终保持独立, 并通过 grpc 与 server 进行交互, 包括注册、启动、关闭、删除等功能。

Malice-Network 将提供独立的 listener 二进制文件,通过加载 listener.yaml 在任意机器上部署,并连接到 server, 接受 server 的调度。

listener.yaml 的配置格式与 config.yaml 中的 listener 部分完全一致.

a. 对于 Linux:

     i. 输入以下命令:
bash
cd /path/to/malice-network-server
./listener 
## 后台挂起
./listener --daemon

b. 对于 MacOS X:

     i. 输入以下命令:
bash
cd /path/to/malice-network-server
./listener

c. 对于 Windows

    i. 输入以下命令:
cd "C:\path\to\malice-network-server"
.\listener.exe

如果配置文件非默认的 listener.yaml, 可以通过 -c path/any.yaml 指定.

配置样例:

listeners:
  name: default
  auth: default.yaml
  tcp:
    - name: tcp_default
      port: 5001
      host: 0.0.0.0
      protocol: tcp
      enable: true
      tls:
        enable: false
        CN: "test"
        O: "Sharp Depth"
        C: "US"
        L: "Houston"
        OU: "Persistent Housework, Limited"
        ST: "State of Texas"
        validity: "365"
      encryption:
        enable: false
        type: aes-cfb
        key: maliceofinternal

需要注意的是, 非本机部署的 listener, 需要提供 auth.yaml 配置,auth 配置需要按照以下方法生成。

在确保 Malice-Network 服务器已经运行后,在终端输入以下指令:

cd "C:\path\to\malice-network-server"
.\malice-network-server.exe listener add listenerName

执行命令成功后,服务端会输出以下信息并在所处文件夹下生成对应auth配置文件:

image-20240816205524283

image-20240816205616073

auth配置文件中包含了以下信息:

operator: listener名称。

lhost:listener所连接的服务器地址。

lport:listener所连接的服务器端口号。

type:配置类型分为 client 和 listener,auth配置为 listener。

cacertificate:服务端生成的 CA 证书,用于验证服务端的合法性。

privatekey:listener的私钥,用于加密和解密数据。

certificate: listener的证书,用于向服务端证明listener的合法性。

启动Listener

将生成的auth配置文件复制到 Malice-Network listener的所在位置,该目录下需要包含以下文件:malice-network-listener启动文件、listener.yaml、xxxx.yaml(auth配置文件)。

image-20240816213518902修改listener.yaml文件中的listeners下的配置,name需要为auth配置文件的前缀名, auth为auth配置文件的文件名,以上图为例,listener.yaml的配置应为:

image-20240816213745122

listener配置完成后,确保 Malice-Network 服务器已经运行后,在终端输入以下指令:

cd "C:\path\to\malice-network-listener"
.\malice-network-listener

listener成功启动后,listener终端会输出以下信息:

image-20240816214150489

Malice-Network 服务器也会输出listener登录信息:

image-20240816214248821

初始化客户端用户

Malice-Network 客户端需要使用用户配置文件才能与服务端进行交互。用户配置文件中包含由服务端生成的证书信息。每次客户端尝试连接服务端时,服务端都会校验该证书信息,以确保用户的合法性。这一过程保证了只有经过认证的用户才能访问和使用 Malice-Network 服务,从而提升了系统的安全性和可靠性。

在确保 Malice-Network 服务器已经运行后,在终端输入以下指令:

cd "C:\path\to\malice-network-server"
.\malice-network-server.exe user add username

执行命令成功后,服务端会输出以下信息并在所处文件夹下生成对应用户配置文件:

用户配置文件中包含了以下信息:

operator: 客户端名称。

lhost:客户端所连接的服务器地址。

lport:客户端所连接的服务器端口号。

type:配置类型分为 client 和 listener,用户配置为 client。

cacertificate:服务端生成的 CA 证书,用于验证服务端的合法性。

privatekey:客户端的私钥,用于加密和解密数据。

certificate: 客户端的证书,用于向服务端证明客户端的合法性。

启动客户端

将生成的用户配置文件复制到 Malice-Network 客户端的所在位置。使用新的用户配置文件时,可以使用以下指令启动客户端:

cd "C:\path\to\malice-network-client"
.\malice-network-client.exe .\username_host.yaml

执行命令后,客户端会自动使用新的客户配置文件与服务器连接,并将用户配置文件移动至客户端的用户配置文件夹 (Windows 下为 C:\Users\user\.config\malice\configs,MacOS X 为 /home/username/.config/malice/configs,Linux 为 /Users/username/.config/malice/configs

客户端登录成功后会输出以下信息:

下次登录后,客户端会自动显示在用户配置文件夹下所有的用户配置,根据需求,选择对应的用户进行选择。Linux 端使用命令启动 Malice-Network 客户端,Windows 和 MacOS X 可以双击 Malice-Network 客户端可执行文件启动客户端。

a. 对于 Linux:

bash
cd \path\to\malice-network-client
.\malice-network-client

b. 对于 MacOS X:

c. 对于 Windows:

i. 导航到 Malice-Network 文件夹。

ii. 双击 malice-network-client.exe

编译

自行编译说明

clone项目到本地

git clone --recurse-submodules https://github.com/chainreactors/malice-network

编译client

go generate ./client
go mod tidy
go build ./client/

编译server

go generate ./client
go mod tidy
go build ./server/cmd/server

编译listener

go generate ./client
go mod tidy
go build ./server/cmd/listener

编译 Implant

请参阅 Implant 中 compile 部分