-
Notifications
You must be signed in to change notification settings - Fork 348
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
CrossC2 TLS v1.3 协商问题 #87
Comments
暂时尝试使用这种方式:
以及说下linux uname -a信息 |
┌──(kali㉿kali)-[~/CrossC2/protocol_demo] 我尝试一下上边的方式。 |
我在代码中修改了 cc2_rebind_http_get_recv 里 |
┌──(kali㉿kali)-[~/CrossC2/protocol_demo] ┌──(kali㉿kali)-[~/CrossC2/protocol_demo] |
出现alive代表rebind库已经正常解析,应该是你的profile与rebind库不匹配导致的,你可以查看下weblog & teamserver输出信息 |
查看了weblog 和 teamserver 均无信息,tcpdump 抓包看了一下, Client hello 之后就 Description: Handshake Failure (40) 了。 |
我又测试了一下不使用 rebind 库时也是 Client Hello 之后报 Handshake Failure。 |
我用 curl 测了一下,curl 连接时的协议是TLS1.2以及TLS1.3,可以握手成功并进行数据传输,CrossC2的连接协议是 TLSv1,握手失败。 |
再次测试,使用IP不用域名的话, teamserver 提示 |
这里的提示应当是内容已正常获取,但是profile和rebind数据解析不匹配的问题,应当检查rebind与profile的每个字段是否算法一致。
该问题可参考cs在win7 & 2008主机上线的问题,win7 & 2008同样使用TLS 1,该问题是因为JDK更新后将所有版本的安全策略进行了调整,禁用了TLS1&1.1 |
关于 profile 与 rebind 匹配的问题,我研究了 demo 的 c2profile.c,发现 demo 中没有编码的操作,请问是在生成时有默认编码吗?因为我在 teamserver 里看到发出的报文是 base64 过的,但 c2profile.c 里没有 base64 的部分。如果我要修改base64url 为 base64 的话要在什么地方修改? |
https://gloxec.github.io/CrossC2/zh_cn/protocol/ 文档中有每个字段的详细介绍,默认传入传出的数据为base64类型,若要采用其他编码,需要自己手动对base64编码过后的数据进行解码成元数据再进行操作。 类似问题: #65 |
感谢回复。profile 与 rebind 匹配的问题我已经理解了,需要先手动解码然后操作最后重新编码发送,语言不熟悉,这个我慢慢搞。SSL 证书问题我修改了teamserver 跟 客户端机器进行尝试,然而还是握手失败。我的域名挂了 cf CDN,跟这个有关系吗? |
CDN SSL配置正确吗?在cs上host一个HTTPS类型的资源,浏览器请求CF CDN能访问到吗? |
经过测试,host HTTPS 类型资源是可以正常访问的。我上传并 host 了 readme,然后使用域名及 URI 访问,正常显示了内容,并能在 web log 里看到。 |
这边经过测试,CrossC2兼容了TLSv1.0 1.1 1.2,不支持1.3,且优先会从高版本开始轮询尝试协商 |
临时使用了TLSv1.3的协议,你试试64位Linux能否正常通过CF呢? 如果是测试仅TLS v1.3可以的话,尝试CF端修改配置,以及后续CrossC2考虑添加此版本。 |
我测试了一下,还是有问题。我把包传上来,麻烦分析一下原因。 我用 curl -v 看了一下握手过程,确实使用了 TLS v1.3。
补充,我对比了一下 curl 与 CroccC2 的 Client Hello 报文, curl 的 Extension 附加内容更多,包括 Extension: server_name (len=19) 、Extension: application_layer_protocol_negotiation (len=14) 等信息, CrossC2 的 Client Hello 包内是没有的。 |
感谢提示,CF验证已通过,该问题将在下个版本中进行修复。 |
@10467106 麻烦你那边测试下CF连接效果,本地这边多次测试通过 |
已测试,确实能连了。。 我去处理 profile 与 rebind 匹配的问题 |
netbios:
mask:
|
修改、编译 rebind 库并生成后在 Kali 上执行,提示
[error]: [parse lib]: /proc/self/fd/3: file too short!
[error]: [parse symbol]: (null)!
不使用 rebind 库时会提示 conf:[alive] 但无法上线。
请问是修改的代码的问题还是生成时的问题呢。
我的 profile 中,前后字符串没有全都设置,因此在 C 代码里直接留空了,编译时无报错
The text was updated successfully, but these errors were encountered: