xray 的反连平台部署方案
在进行漏洞检测的时候,我们会发现有很多的漏洞在执行了一些命令后,从表面上看没有任何回应的,比如命令执行漏洞,可以让目标执行读取文件的命令等,但由于前端并没有对应的展示,导致我们并不能知道文件是否成功读取,也就不知道命令是否执行成功。同时还有向经典的log4j rce,fastjson,ssrf等,都是没有回显的漏洞,那么当面对这类的漏洞,我们就需要一个反连平台,通过让目标执行ping
、curl
等命令,对反连平台发起请求,反连平台在接受到请求后,就能告诉我们,命令触发了,也就代表了漏洞存在了。
所以当我们想要比较完备的对一个系统进行测试,反连平台的利用一定是必不可少的。所以本文将着重讲述xray的反连平台如何部署搭建,配置文件如何修改,如何进行调试,并使用实际存在的漏洞进行举例。
安全策略:开启反连平台对外端口,开启53端口(UDP协议) 也就是修改安全组策略,将53端口开放,⚠️注意,协议类型一定要是UDP
然后将需要对外开放的,部署反连平台的端口进行开放,比如8777,⚠️注意,该端口的协议类型是TCP
首先使用以下命令确认端口占用情况
sudo netstat -nultp
在确认被占用后,可以执行如下命令停用systemd-resolved
sudo systemctl stop systemd-resolved
编辑resolved.conf
sudo vim /etc/systemd/resolved.conf
将文件中的对应内容改为如下内容
修改完成后运行如下命令即可解除占用
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
以下的ip请替换为准备好的云服务器的公网ip
不做其他任何变动,同时配置文件填写好,在启动后,支持http/rmi的反连,dns仅支持在使用dig或者nslookup时,指定IP解析的情况下,接收到请求。 也就是说,执行ping/curl命令时,反连平台并没有办法收到dns解析记录。 如果想要让反连平台的dns功能也正常工作,应进行如下操作:
腾讯云
阿里云
连接上远程服务器,处理完53端口占用问题,上传最新版的xray,并运行一下生成配置文件,反连平台部分按照以下进行修改
独立远程服务端
以下配置文件中的ip请替换为云服务器对应的公网ip
非独立远程服务端
以下的ip请替换为准备好的云服务器的公网ip
独立远程服务端
./xray reverse
启动反连平台,可以输入exit退出视窗screen -r {{id}}
进入视窗非独立远程服务端
在服务端启动一个xray reverse,应该能看到这样的界面:
访问webUI后的链接即可访问到反连平台:
HTTP
点击复制后,到命令行中执行
可以看到存在返回,同时查看服务端那边的信息,可以看到:
DNS
如果是刚部署好,可以首先使用nslookup进行测试
如果已经有一段时间了,则可以使用ping命令
之所以能接收到解析,是因为此时已经将这个机器设置成了这个域名的dns服务器,那么当别人去请求这些生成的域名的时候,dns查询请求就会到这个服务器上,那么这个时候我们就能知道,有人正在查询对应的域名,从而可以证明poc被触发。 **注:**为了使得反连平台的可读性,它只会记录固定规则生成的链接的信息 例如上图中有7个dns请求,在反连平台中就只会显示5个,ns1,ns2的那个并不会被记录下来
以下测试考虑到大部分人的情况,将一律采用客户端+服务端的形式进行测试,同时在客户端上挂一个burp进行抓包查看详细的发包细节
log4j
靶场:vulfocus上的log4j的第一个靶场做测试
命令:./xray_darwin_arm64 ws --poc poc-go-apache-log4j2-rce --basic [http://123.58.224.8:32750](http://123.58.224.8:32750)
该插件默认使用dns进行检测,如果想不用dns进行检测,可以在配置文件中,将domain置空,同时将dns_server_ip置空。
fastjson
靶场:vulfocus的fastjson 代码执行 (CNVD-2019-22238)
命令:./xray_darwin_arm64 ws --plug fastjson --url [http://123.58.224.8:52772](http://123.58.224.8:52772)
xray 的反连平台部署方案
在进行漏洞检测的时候,我们会发现有很多的漏洞在执行了一些命令后,从表面上看没有任何回应的,比如命令执行漏洞,可以让目标执行读取文件的命令等,但由于前端并没有对应的展示,导致我们并不能知道文件是否成功读取,也就不知道命令是否执行成功。同时还有向经典的log4j rce,fastjson,ssrf等,都是没有回显的漏洞,那么当面对这类的漏洞,我们就需要一个反连平台,通过让目标执行ping
、curl
等命令,对反连平台发起请求,反连平台在接受到请求后,就能告诉我们,命令触发了,也就代表了漏洞存在了。
所以当我们想要比较完备的对一个系统进行测试,反连平台的利用一定是必不可少的。所以本文将着重讲述xray的反连平台如何部署搭建,配置文件如何修改,如何进行调试,并使用实际存在的漏洞进行举例。
安全策略:开启反连平台对外端口,开启53端口(UDP协议) 也就是修改安全组策略,将53端口开放,⚠️注意,协议类型一定要是UDP
然后将需要对外开放的,部署反连平台的端口进行开放,比如8777,⚠️注意,该端口的协议类型是TCP
首先使用以下命令确认端口占用情况
sudo netstat -nultp
在确认被占用后,可以执行如下命令停用systemd-resolved
sudo systemctl stop systemd-resolved
编辑resolved.conf
sudo vim /etc/systemd/resolved.conf
将文件中的对应内容改为如下内容
修改完成后运行如下命令即可解除占用
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
以下的ip请替换为准备好的云服务器的公网ip
不做其他任何变动,同时配置文件填写好,在启动后,支持http/rmi的反连,dns仅支持在使用dig或者nslookup时,指定IP解析的情况下,接收到请求。 也就是说,执行ping/curl命令时,反连平台并没有办法收到dns解析记录。 如果想要让反连平台的dns功能也正常工作,应进行如下操作:
腾讯云
阿里云
连接上远程服务器,处理完53端口占用问题,上传最新版的xray,并运行一下生成配置文件,反连平台部分按照以下进行修改
独立远程服务端
以下配置文件中的ip请替换为云服务器对应的公网ip
非独立远程服务端
以下的ip请替换为准备好的云服务器的公网ip
独立远程服务端
./xray reverse
启动反连平台,可以输入exit退出视窗screen -r {{id}}
进入视窗非独立远程服务端
在服务端启动一个xray reverse,应该能看到这样的界面:
访问webUI后的链接即可访问到反连平台:
HTTP
点击复制后,到命令行中执行
可以看到存在返回,同时查看服务端那边的信息,可以看到:
DNS
如果是刚部署好,可以首先使用nslookup进行测试
如果已经有一段时间了,则可以使用ping命令
之所以能接收到解析,是因为此时已经将这个机器设置成了这个域名的dns服务器,那么当别人去请求这些生成的域名的时候,dns查询请求就会到这个服务器上,那么这个时候我们就能知道,有人正在查询对应的域名,从而可以证明poc被触发。 **注:**为了使得反连平台的可读性,它只会记录固定规则生成的链接的信息 例如上图中有7个dns请求,在反连平台中就只会显示5个,ns1,ns2的那个并不会被记录下来
以下测试考虑到大部分人的情况,将一律采用客户端+服务端的形式进行测试,同时在客户端上挂一个burp进行抓包查看详细的发包细节
log4j
靶场:vulfocus上的log4j的第一个靶场做测试
命令:./xray_darwin_arm64 ws --poc poc-go-apache-log4j2-rce --basic [http://123.58.224.8:32750](http://123.58.224.8:32750)
该插件默认使用dns进行检测,如果想不用dns进行检测,可以在配置文件中,将domain置空,同时将dns_server_ip置空。
fastjson
靶场:vulfocus的fastjson 代码执行 (CNVD-2019-22238)
命令:./xray_darwin_arm64 ws --plug fastjson --url [http://123.58.224.8:52772](http://123.58.224.8:52772)