反连平台的作用
在平日的漏洞挖掘或者攻防对抗中,遇到诸如log4j rce、fastjson、ssrf、命令执行等没有回显的时候,这个时候dnslog平台这种反连平台就起到了作用,通过让目标执行ping
、curl
等命令,对反连平台发起请求,反连平台在接受到请求后,就能告诉我们,命令触发了,也就代表了漏洞存在了。 Xray也内置了反连平台,此篇博文记录博主部署Xray反连的过程以及踩坑点。大致流程参照xray官方文档以及互联网文章,如有错误可在此篇博文评论留言。
搭建前的准备
- 一台服务器(博主本人用的Ubuntu)
- 一个域名
- Xray
服务器安全组设置
修改安全组策略,开启53端口(⚠️注意,协议类型一定要是UDP)
修改安全组策略,开启反连平台的端口,如8888等(⚠️注意,协议类型一定要是TCP)

解决53端口占用
使用以下命令确认端口占用情况
在确认被占用后,可以执行如下命令停用
1
| systemd-resolved`sudo systemctl stop systemd-resolved
|
编辑resolved.conf
1
| sudo vim /etc/systemd/resolved.conf
|
取消DNS的注释,填写云服务器公网IP
取消DNSStubListener的注释,将值改为no
如下:
1 2 3 4 5 6 7 8 9 10 11
| [Resolve] DNS=x.x.x.x #取消注释,增加dns,此处的值可以填写你的云服务器公网IP #FallbackDNS= #Domains= #LLMNR=no #MulticastDNS=no #DNSSEC=no #DNSOverTLS=no #Cache=no-negative DNSStubListener=no #取消注释,把yes改为no #ReadEtcHosts=yes
|
修改完后执行以下命令,即可解除占用
1
| sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
|

域名的配置
为了支持http/rmi/dns的反连,进行以下配置
⚠️ 踩坑点:如果域名是在国内域名提供商注册的,服务器最好也是国内的,这样域名解析会正常,博主本人最开始用国内域名+国外服务器,导致域名解析不正常,dns或者rmi无法使用。需要注意。
自定义DNS Host
DNS服务器为主机记录和你的域名,如: ns1.domain.com ,IP地址为你的云服务器IP

设置域名解析记录
记录值为你的云服务器IP

修改DNS服务器

部署反连平台
博主这里使用的独立远程服务端
远程服务端
服务端xray的配置文件reverse如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| reverse: db_file_path: "reverse.db" token: "1qaz@WSX" http: enabled: true listen_ip: 0.0.0.0 listen_port: "8888" ip_header: "" dns: enabled: true listen_ip: 0.0.0.0 domain: "your_domain" is_domain_name_server: true resolve: - type: A record: localhost value: 127.0.0.1 ttl: 60 client: remote_server: false http_base_url: "http://your_vps_ip:8888" dns_server_ip: "your_vps_ip"
|
⚠️ 需要注意填写位置:
1 2 3 4 5
| db_file_path: 此处填写你要命名的kv数据库,如test.db token: 为你连接反连平台的认证 enabled: 服务端需要设置的有 http、dns;客户端配置文件此处设置为false就行 http_base_url: 你的云服务器加端口号,端口号为listen_port dns_server_ip: 你的云服务器IP
|
客户端
客户端xray的配置文件reverse如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| reverse: db_file_path: "" token: "1qaz@WSX" http: enabled: false listen_ip: 0.0.0.0 listen_port: "" ip_header: "" dns: enabled: false listen_ip: 0.0.0.0 domain: "" is_domain_name_server: false resolve: - type: A record: localhost value: 127.0.0.1 ttl: 60 client: remote_server: true http_base_url: "http://your_vps_ip:8888" dns_server_ip: "your_vps_ip"
|
⚠️ 需要注意填写位置:
1 2 3 4
| enabled: 设置为false就 client: 因为是独立的远程server 所以 remote_server 的值需要为true http_base_url: 你的云服务器加端口号,端口号为listen_port dns_server_ip: 你的云服务器IP
|
至此,服务端和客户端的配置文件已改好。
测试部署效果
在服务端启动以下命令
1
| xray_linux_amd64 reverse
|

访问webUI后的链接即可访问到反连平台,输入你的token值

可以生成url或者域名

fastjson漏洞测试
靶场:vulfocus的fastjson 代码执行 (CNVD-2019-22238)
启动远程服务端
使用客户端对目标进行扫描
1
| ./xray_linux_amd64 ws --plug fastjson --url http://123.58.224.8:32636/
|

对接飞书实现自动告警
这点官方文档上面写的是对接Server 酱 和 企业微信,博主喜欢用飞书,于是就在官方的demo上修修改改,对接了飞书自动告警
效果如下:

参照官方文档的demo如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| from flask import Flask, request import requests import datetime import logging
app = Flask(__name__)
def push_feishu_group(content): resp = requests.post( "https://open.feishu.cn/open-apis/bot/v2/hook/{飞书机器人webhook的token}", json={ "Content-Type": "application/json", "Charset": "UTF-8", "msg_type": "text", "content": {"text": f"xray 发现了新漏洞 \n{content}"}, }, ) if resp.json()["errno"] != 0: raise ValueError("push wechat group failed, %s" % resp.text)
@app.route("/webhook", methods=["POST"]) def xray_webhook(): data = request.json typed = data["type"] if typed == "web_statistic": return "ok" vuln = data["data"] content = """
url: {url} plugin: {plugin} create_time: {create_time}
""".format( url=vuln["detail"]["addr"], plugin=vuln["plugin"], create_time=str(datetime.datetime.fromtimestamp(vuln["create_time"] / 1000)), ) try: push_feishu_group(content) except Exception as e: logging.exception(e) return "ok"
if __name__ == "__main__": app.run()
|
使用方法
服务器启动一个screen
python 运行脚本

运行xray即可
1
| ./xray_linux_amd64 ws -u http://testphp.vulnweb.com --wo http://127.0.0.1:5000/webhook
|

脚本也能看到请求

参考来源
- 如何部署xray反连平台 - xray 安全评估工具文档
- xray三周年系列教程|如何部署反连平台并编写POC_哔哩哔哩_bilibili
- Xray-反连平台搭建_xray反连平台-CSDN博客
- 自定义机器人使用指南 - 开发指南 - 开发文档 - 飞书开放平台 (feishu.cn)