Mythic C2学习(2)

admin 2024年2月4日23:40:47评论11 views字数 3806阅读12分41秒阅读模式

基础

用户相关的操作

Mythic是一个多人运动的框架,所以我们可以使用管理员账户来添加其他的用户,选择右上角的用户图标。

Mythic C2学习(2)

点击NEW OPERATOR进行添加用户。

Mythic C2学习(2)

Mythic可以对一个目标或一组进行权限管控,这里我的理解是相当于一个组,这个组里面有那些成员。

这里点击Operation Chimera。这里的Operation Chimera就是一个组。

Mythic C2学习(2)

我们也可以创建一个组,这里选择New Operation,这里给定一个名字为operate。

Mythic C2学习(2)

然后我们可以给这个组中添加一个成员。

但是需要注意的是我们需要切换到这个组中,可以点击MAKE CURRENT。

Mythic C2学习(2)

选择EDIT 添加成员。

Mythic C2学习(2)

这里我们可以添加如上图的这些成员,Role表示权限的意思,就是说这些用户具有什么权限。Lead表示管理员权限,具有添加/删除用户和更改用户的权限,operator是普通用户权限,spectators只能看不能操作。

这里我们给定relaysec为管理员账户。

Mythic C2学习(2)

然后退出 使用relaysec进行登录,选择MAKE CURRENT可以切换组。

Mythic C2学习(2)

此时我们可以去创建一个exe。

需要注意的是这里我们使用的是operate这个组创建的,此时我们是没有Beacon的,也就是说我们是看不到Operation Chimera组中的Beacon的。

Mythic C2学习(2)

当我们切换回Operation Chimera组中的时候,才可以看到之前通过Operation Chimera创建的Beacon上线的。

Mythic C2学习(2)

那么如果是普通用户权限的话是无法更改组的。

这里我们创建了另一个用户为relaysec_user登录之后尝试将relaysec这个用户从组中移除掉。

Mythic C2学习(2)

点击Update会发现报错了。

Mythic C2学习(2)

我们还可以为每个用户可以执行那些命令进行限制,比如说我们给relaysec_user这个用户设置它不能执行shell这个命令。

Mythic C2学习(2)

然后选择EDIT进行修改,需要注意的是我们更改是Operation Chimera这个组中的relaysec_user这个用户。

Mythic C2学习(2)

登录上去之后需要切换到Operation Chimera组中。

然后尝试使用shell执行命令。

可以看到这里是无法执行命令的。

Mythic C2学习(2)

如果使用run的话是可以正常执行命令的。

Mythic C2学习(2)

如上就是用户的操作了。

C2 Profile

选择类似于耳机的图标。

如下图就是我们安装的所有的代理和C2 Profile的信息。

Mythic C2学习(2)

如果我们需要访问C2配置的话,我们可以点击向下箭头的 View/Edit Config。

Mythic C2学习(2)

如下图:

配置是一个JSON格式的文件,允许管理员配置服务器的标头以及端口,或是否启用TLS,如果要启动SSL的话那么可以将use_ssl设置true,如果key path以及cert path是存在的,那么Mythic会将这些文件作为HTTP2 C2配置文件,如果没有的话,会自动生成签名证书。

Mythic C2学习(2)

这里我们可以选择启动这个配置。

Mythic C2学习(2)

启动之后:

Mythic C2学习(2)

Payloads

这里是我们创建的所有的payload,可以点击Download进行下载。

Mythic C2学习(2)

我们可以选择ACTIONS或Create Payload来创建一个Payload。

选择Generate New Payload。

Mythic C2学习(2)

这里我们可以选择多种操作系统,比如Linux,Windows MacOS。

这里我们选择Linux操作系统。

Mythic C2学习(2)

这里我们选择medusa C2,它支持python2或者python3,以及支持加密操作,这里加密操作的话使用的是python cryptography库来进行加密操作。

Mythic C2学习(2)

我们选择NEXT。

这里的话我们选择那些命令,这里选择全部。

Mythic C2学习(2)

最终需要选择C2 配置文件,这里我们选择上面演示过的HTTP C2配置文件。

这里的回调地址,我们填写你的IP地址,关键在于你使用HTTPS还是使用HTTP,如果使用HTTPS的话那么端口需要指定为443,这里的回调地址也可以填写CDN的地址,可以通过CDN进行回调。

需要注意的是我们需要在Http Profile C2这里将SSL设置为true。

这里除了配置回调地址以及端口之外还可以配置代理的日期 请求方式等等。

Mythic C2学习(2)

我们选择NEXT。

最终会生成medusa.py文件。

Mythic C2学习(2)

生成的payload就在Payloads功能中。

Mythic C2学习(2)

然后我们将它拉到Linux机器中进行执行。

可以看到成功上线。

Mythic C2学习(2)

我们切换到Payloads功能这里,我们可以对我们生成的Payload进行配置。

Mythic C2学习(2)

Mythic C2学习(2)

Apollo 是一个基于 C# 的代理,仅在 Windows 上运行,具有内置的进程迁移命令、mimikatz 和程序集执行等功能。基于 Python 的 Medusa 可在 Windows、Linux 和 MacOS 上运行,但缺少 Windows 特定的功能,尽管它包含执行任意 Python 代码的能力。Poseidon 是用 Go 编写的,面向 Linux 和 MacOS,并具有一些 MacOS 特定的功能,例如 launchd 持久性。

在C2通道方面,它们都支持http(s) C2配置文件,而只有Apollo支持SMB C2在环境内部进行通信。Poseidon 拥有自己的基于 TCP 的环境内 C2 通信配置文件,并支持 Websocket。

我们可以通过 Mythic C2 Profile来进行安装其他通信管道。

https://github.com/MythicC2Profiles

我们可以执行link命令来选择先前连接到的已知主机,或者定义新的主机。

Mythic C2学习(2)

SOCKS5

Apollo 和 Medusa都是支持SOCKS5代理的,我们可以通过socks命令进行代理,需要注意的是socks5代理的端口,必须是7000-7010之间,我们可以通过.env中的MYTHIC_SERVER_DYNAMIC_PORTS选项进行更改。

需要注意的是Mythic仅支持Socks5代理使用TCP,而不支持UDP。

Mythic C2学习(2)

如下通过socks命令创建代理。

Mythic C2学习(2)

我们选择类似于袜子的图标打开SOCKS5选项,类似于CobaltStrike中的SOCKS。

可以看到成功创建SOCKS代理,这里我们可以尝试使用SOCKS CAP进行测试。

Mythic C2学习(2)

可以看到成功连接,但是需要注意的是我们需要将beacon设置为Sleep 0,这样的话代理就会快一点,要不然可能会连不上。

Mythic C2学习(2)

Mythic C2学习(2)

进阶使用

生成bin文件

生成shellcode.bin文件 通过白加黑方式上线。

选择Create Payload,在这里选择Shellcode。

Mythic C2学习(2)

后面就和创建EXE时是一样的了。

通过白加黑上线。

Mythic C2学习(2)

Mythic C2学习(2)

Upload功能

Upload功能可以上传文件,类似于Cobalt Strike。

Mythic C2学习(2)

Powershell上传

使用powershell_import功能可以导入powershell文件。

点击TASK上传。

Mythic C2学习(2)

Powershell使用

这里我们上传了一个PowerUpSQL.ps1脚本。

尝试使用脚本中的命令执行。

powershell Get-SQLInstanceDomain -Verbose
secret_token命令

这个命令主要是和CobaltStrike中的窃取令牌是一样的,它需要传递一个参数也就是进程的PID,如果不传递参数的话,那么默认进程为winlogon.exe。

就比如说你拿到的机器里面有域管的进程,那么你就可以进行窃取,然后横向即可。

spawnto_x86以及spawnto_x64

这两个命令和CobaltStrike中的spawn命令是一样的都是派生一个会话。

shinject命令

这个命令主要是将shellcode注入到其他进程中来进行上线操作,和inject命令对比来说更加的OPSEC,因为如果使用inject命令去注入进程的话,那么如果注入不成功可能导致自身的Beacon下线,那么如果使用shinject就算注入不成功,也不会导致自身的Beacon下线。

screenshot_inject命令

这个命令主要用于屏幕截图。

screenshot_inject pid count interval
screenshot_inject 3548 1 1

当我们执行完这个命令之后,点击VIEW SCREENSHOSTS。

Mythic C2学习(2)

Mythic C2学习(2)

screenshot命令

截取当前屏幕。

Mythic C2学习(2)

rm命令

删除指定文件。

rm [path]
rev2self命令

这个命令主要是应用于我们如果窃取其他令牌了,那么就通过这个命令进行恢复。

rev2self
pth命令

PTH主要用于Hash传递。其实和Cobalt Strike差不多。

pth -Domain [domain] -User [user] -NTLM [ntlm] [-AES128 [aes128] -AES256 [aes256] -Run [cmd.exe]]
psinject命令

这个命令可以在指定的进程中执行powershell命令。

例如:

psinject 3548 whoami

Mythic C2学习(2)

net_dclist命令

这个命令主要是用于获取当前域或者指定域的域控制器。

net_dclistnet_dclist domain
keylog_inject命令

这个命令用户键盘记录,需要指定进程的PID。

keylog_inject [pid]
blockdlls命令

这个命令用于阻止非Microsoft DLL加载到我们的Beacon当中。

blockdlls

Mythic C2学习(2)

assembly_inject

将dotnet加载到目标进程中,然后加载进程并执行。

 assembly_inject[pid][assembly][args]


最后记得转发噢 谢谢!!!!

原文始发于微信公众号(Relay学安全):Mythic C2学习(2)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月4日23:40:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Mythic C2学习(2)http://cn-sec.com/archives/2467688.html

发表评论

匿名网友 填写信息