Mythic C2搭建(apollo&&sliver)

Administrator
发布于 2024-11-25 / 2 阅读
0

Mythic C2搭建(apollo&&sliver)

项目地址

Mythic :https://github.com/its-a-feature/Mythic

Agents:https://github.com/MythicAgents/

Profiles:https://github.com/MythicC2Profiles

Document:https://docs.mythic-c2.net

PS:本文只做基本的搭建指导,关于该C2框架的更多细节和介绍请自行查阅文档进行了解。

Mythic框架搭建

需要使用docker,鉴于目前国内对docker的限制,推荐使用国外VPS进行搭建

一键安装

$ git clone https://github.com/its-a-feature/Mythic --depth 1

下载后,进入Mythic目录下,执行make编译mythic-cli

在使用。/mythic-cli start 正式启动mythic服务前,你可以修改mythic目录下的.env环境去配置一些信息

配置信息里有几点需要注意。

第一,如果你重置密码,密码有一点强度要求,至少要12位以上,不建议自定义,之前自定义结果登录不上(自定义的密码纯英文);

第二,代理socks端口的范围 MYTHIC_SERVER_DYNAMIC_PORTS,可以自己加,或者按照他的来;

第三,IP白名单似乎有点问题,我的报错502

第四,mythi服务的启动会用到好几个端口,比如:8090、8080、8888、3000、7000-7010、17444、17443、7443、5432、5672,请确保上述端口没有被占用,如果占用的话,可以修改配置文件更换其他端口。

ALLOWED_IP_BLOCKS="0.0.0.0/0,::/0" #尝试过,发现容易502
COMPOSE_PROJECT_NAME="mythic"
DEBUG_LEVEL="debug"
DEFAULT_OPERATION_NAME="Operation Chimera"
DEFAULT_OPERATION_WEBHOOK_CHANNEL=
DEFAULT_OPERATION_WEBHOOK_URL=
DOCUMENTATION_BIND_LOCALHOST_ONLY="true"
DOCUMENTATION_HOST="mythic_documentation"
DOCUMENTATION_PORT="8090"
DOCUMENTATION_USE_BUILD_CONTEXT="false"
DOCUMENTATION_USE_VOLUME="true"
GLOBAL_DOCKER_LATEST="v0.0.3"
GLOBAL_MANAGER="docker"
GLOBAL_SERVER_NAME="mythic"
HASURA_BIND_LOCALHOST_ONLY="true"
HASURA_CPUS="2"
HASURA_EXPERIMENTAL_FEATURES="streaming_subscriptions"
HASURA_HOST="mythic_graphql"
HASURA_MEM_LIMIT="2gb"
HASURA_PORT="8080"
HASURA_SECRET="random password"
HASURA_USE_BUILD_CONTEXT="false"
HASURA_USE_VOLUME="true"
INSTALLED_SERVICE_CPUS="1"
INSTALLED_SERVICE_MEM_LIMIT=
JUPYTER_BIND_LOCALHOST_ONLY="true"
JUPYTER_CPUS="2"
JUPYTER_HOST="mythic_jupyter"
JUPYTER_MEM_LIMIT=
JUPYTER_PORT="8888"
JUPYTER_TOKEN="mythic"
JUPYTER_USE_BUILD_CONTEXT="false"
JUPYTER_USE_VOLUME="true"
JWT_SECRET="random password"
MYTHIC_ADMIN_PASSWORD="random password"
MYTHIC_ADMIN_USER="mythic_admin"
MYTHIC_API_KEY=
MYTHIC_DEBUG_AGENT_MESSAGE="false"
MYTHIC_REACT_BIND_LOCALHOST_ONLY="true"
MYTHIC_REACT_DEBUG="false"
MYTHIC_REACT_HOST="mythic_react"
MYTHIC_REACT_PORT="3000"
MYTHIC_REACT_USE_BUILD_CONTEXT="false"
MYTHIC_REACT_USE_VOLUME="true"
MYTHIC_SERVER_BIND_LOCALHOST_ONLY="true"
MYTHIC_SERVER_COMMAND=
MYTHIC_SERVER_CPUS="2"
MYTHIC_SERVER_DYNAMIC_PORTS="7000-7010,1080"
MYTHIC_SERVER_DYNAMIC_PORTS_BIND_LOCALHOST_ONLY="false"
MYTHIC_SERVER_GRPC_PORT="17444"
MYTHIC_SERVER_HOST="mythic_server"
MYTHIC_SERVER_MEM_LIMIT=
MYTHIC_SERVER_PORT="17443"
MYTHIC_SERVER_USE_BUILD_CONTEXT="false"
MYTHIC_SERVER_USE_VOLUME="true"
MYTHIC_SYNC_CPUS="2"
MYTHIC_SYNC_MEM_LIMIT=
NGINX_BIND_LOCALHOST_ONLY="false"
NGINX_HOST="mythic_nginx"
NGINX_PORT="7443"
NGINX_USE_BUILD_CONTEXT="false"
NGINX_USE_IPV4="true"
NGINX_USE_IPV6="false"
NGINX_USE_SSL="true"
NGINX_USE_VOLUME="true"
POSTGRES_BIND_LOCALHOST_ONLY="false"
POSTGRES_CPUS="2"
POSTGRES_DB="mythic_db"
POSTGRES_DEBUG="false"
POSTGRES_HOST="mythic_postgres"
POSTGRES_MEM_LIMIT=
POSTGRES_PASSWORD="random password"
POSTGRES_PORT="5432"
POSTGRES_USE_BUILD_CONTEXT="false"
POSTGRES_USE_VOLUME="true"
POSTGRES_USER="mythic_user"
RABBITMQ_BIND_LOCALHOST_ONLY="true"
RABBITMQ_CPUS="2"
RABBITMQ_HOST="mythic_rabbitmq"
RABBITMQ_MEM_LIMIT=
RABBITMQ_PASSWORD="random password"
RABBITMQ_PORT="5672"
RABBITMQ_USE_BUILD_CONTEXT="false"
RABBITMQ_USE_VOLUME="true"
RABBITMQ_USER="mythic_user"
RABBITMQ_VHOST="mythic_vhost"
REBUILD_ON_START="true"
WEBHOOK_DEFAULT_ALERT_CHANNEL=
WEBHOOK_DEFAULT_CALLBACK_CHANNEL=
WEBHOOK_DEFAULT_CUSTOM_CHANNEL=
WEBHOOK_DEFAULT_FEEDBACK_CHANNEL=
WEBHOOK_DEFAULT_STARTUP_CHANNEL=
WEBHOOK_DEFAULT_URL=

当你能通过https://IP:7443访问时,说明搭建成功

Agent&&profile安装

从这个项目下,挑选一个需要使用到的c2,这里用的是Apollo和Sliver

Apollo agent安装

./mythic-cli install github https://github.com/MythicAgents/Apollo

安装完Agent后,还需要一个profile,这里使用http

./mythic-cli install github https://github.com/MythicC2Profiles/http

进入mythic,点击🎧,如果有这两个说明安装成功:

apollo 的agent生成很简单,不做介绍。

apollo只能生成应用于Windows系统的agent,如果要在Linux中进行植入的话,可以使用sliver。

sliver-agent地址

https://github.com/MythicAgents/sliver

在安装sliver agent之前,需要先安装sliver

安装sliver

curl https://sliver.sh/install|sudo bash

安装好后使用下面命令生成配置文件

sudo /root/sliver-server operator --name mythic --lhost <ip> --save mythic.cfg && sudo chown $USER:$USER mythic.cfg

在mythic中安装sliver-agent

sudo ./mythic-cli install github https://github.com/MythicAgents/sliver

这样表示安装成功

配置sliverapi

create payload -> sliver->导入mythic.cfg

一路next,直到完成,然后点击☎️,你会发现已经有一个sliverapi存在,其实这个就相当于sliver的终端,你可以在这里执行一些生成payload,设置监听器的命令。sliver之于mythic,相当于msf之于cobalstrike。

可以在sliverAPI中执行生成命令,但是参数选择有限,只能选择os,我等了好久,也没见生成成功,最后还是使用命令行进入sliver生成,这里还有一个注意的点,生成的beacon,在mythic框架里没法使用,只能连接sessions模式的payload。

结语

Mythic的优点在于,你不需要再去设计前端,画UI,你只需要写好你的马,设计好通信接口,就能直接对接使用Mythic。

有容乃大,海纳百川。