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

能否在下个版本新增基于域名请求的功能 #94

Closed
Chinakentgao opened this issue Jul 12, 2021 · 7 comments
Closed

能否在下个版本新增基于域名请求的功能 #94

Chinakentgao opened this issue Jul 12, 2021 · 7 comments

Comments

@Chinakentgao
Copy link

需求是这样windows版本可以基于域名请求生成c2程序利用域名的动态性来隐藏C2服务器的源地址。但是linux版本在请求域名的时候会将返回的第一个地址作为目的地址来请求。不知道我分析的有没有错~看了下后续的请求都是同一个IP,但是请求IP的话C2是没办法收到请求的。大概就是增加一个判断如果是域名的话每次请求都是域名,而不是域名解析后的IP地址。这样部分的云函数没办法触发。

@gloxec
Copy link
Owner

gloxec commented Jul 16, 2021

首先尝试使用 #87 (comment) 该版本
使用./genCrossC2.Linux www.xxx.com 443 key rebind.so Linux x64 aaa 这样的方案生成beacon。

看了下后续的请求都是同一个IP,但是请求IP的话C2是没办法收到请求的
增加一个判断如果是域名的话每次请求都是域名,而不是域名解析后的IP地址

该问题与IP无关,需要使用rebind.so来设定HTTP请求包中的HOST为域名,所有使用了c2profile或者类似于CDN转发,云函数等等的都需要设定一个rebind.so(主要是为了给类CDN服务器传入合法的HTTP头,例如正确的HOST字段等等)
参考demo

linux版本在请求域名的时候会将返回的第一个地址作为目的地址来请求

逻辑是去解析域名/域名列表绑定的IP
如果传入的是域名列表./genCrossC2 a1.xx.com,a2.xx.com,a3.xx.com这种,在发包失败时会尝试解析域名列表中可用的IP重新去发包。

@Chinakentgao
Copy link
Author

Chinakentgao commented Jul 30, 2021 via email

@Chinakentgao
Copy link
Author

Chinakentgao commented Jul 30, 2021 via email

@Chinakentgao
Copy link
Author

Chinakentgao commented Jul 30, 2021 via email

@gloxec
Copy link
Owner

gloxec commented Jul 30, 2021

...我看到你发了一个linux端的文件。意思是如果linux的主机上线需要用到rebind.so文件...

借助rebind.so主要是为了填充与c2profile一致的请求,以及在使用CDN情况下的HOST等字段更改

...可以通过域名解析连接到服务器端吗...

类CDN服务器的连接有两个地方,假设请求的是www.abc.com,到CDN那边就是:

  1. CDN服务器收到的请求包SNI是www.abc.com,这个在./genCrossC2 www.abc.com时被指定(CrossC2 TLS v1.3 协商问题 #87 (comment))
  2. CDN服务器收到HTTP包中正确配置字段,如HOST: www.abc.com等,这个需要借助rebind.so来实现HTTP包的字段配置。

...但是C2的不行他在解析后访问的目标是域名解析后的IP并不是域名带入后函数的IP地址。所以服务器只会接收到第一次的请求后面的请求就不会接收到...

云函数这个需要你那边贴出个测试的正常请求的HTTP包,以及https通讯的pcap流量,(不需要cs请求流量,云函数正常转发测试包即可)
但按一些文章描述来看,这里的行为与CDN一致,应该是可以正常使用的

./genCrossC2 xxxx.api.cloud.com

rebind.so:
{
...
HOST: xxxx.api.cloud.com
...
}

@Chinakentgao
Copy link
Author

Chinakentgao commented Jul 30, 2021 via email

@Chinakentgao
Copy link
Author

Chinakentgao commented Jul 30, 2021 via email

@gloxec gloxec closed this as completed Oct 9, 2021
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

2 participants