VLESS-Reality-cracker 两轮测试 状态相同 如果Reality"偷"证书的域名是由Caddy提供HTTPS服务

用到的项目 G站/crazypeace/VLESS-cracker 1. 搭一个正常工作的 Caddy 提供HTTPS服务 这里以域名 域名点康姆 为例 DNS域名解析设置 略 Caddyfile 域名点康姆 { tls Y3JhenlwZWFjZQ@gmail.com encode gzip re...
VLESS-Reality-cracker 两轮测试 状态相同 如果Reality"偷"证书的域名是由Caddy提供HTTPS服务
VLESS-Reality-cracker 两轮测试 状态相同 如果Reality"偷"证书的域名是由Caddy提供HTTPS服务

用到的项目
G站/crazypeace/VLESS-cracker

1. 搭一个正常工作的 Caddy 提供HTTPS服务

这里以域名 域名点康姆 为例
DNS域名解析设置 略
Caddyfile

域名点康姆
{
    tls Y3JhenlwZWFjZQ@gmail.com
    encode gzip

	reverse_proxy https://遵守论坛准则 {
		header_up Host {upstream_hostport}
	}

}

2. 搭建一个正常工作的 Reality服务端, 特别地, "偷"证书的域名是由第1步中Caddy提供HTTP服务

这里以域名 域名点康姆 为例

curl -LO G站/crazypeace/xray-vless-reality/raw/main/install.sh || wget -O ${_##*/} $_ && bash install.sh 4 8443 域名点康姆

3. 在Docker中搭一个 Reality服务端, 使用宿主机的 Reality服务端 同样的内核和配置文件

docker run -d \
  --name reality-server \
  --network bridge \
  -v /usr/local/bin/xray:/usr/local/bin/xray:ro \
  -v /usr/local/etc/xray/config.json:/usr/local/etc/xray/config.json:ro \
  ghcr.io/xtls/xray-core:latest 

查询 Docker 的IP地址

docker ps -q | xargs docker inspect -f '{{.Name}} -> {{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'

4. 运行 Reality客户端 对接Docker中的服务端

reality-client.json

{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "port": 1080,
      "listen": "127.0.0.1",
      "protocol": "socks",
      "settings": {
        "auth": "noauth",
        "udp": true
      },
      "sniffing": {
        "enabled": true,
        "destOverride": [
          "http",
          "tls"
        ]
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "vless",
      "settings": {
        "vnext": [
          {
            "address": "172.17.0.2",	//***按实际情况修改
            "port": 8443,
            "users": [
              {
                "id": "2046c4dc-aed9-3e35-b047-e858a827181c",	//***按实际情况修改
                "flow": "xtls-rprx-vision",
                "encryption": "none"
              }
            ]
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          "serverName": "域名点康姆",
          "publicKey": "-WQvFYoH9cv3DDdEY5lPU1kj1DW7w9HgtApO7edwEmw",	//***按实际情况修改
          "shortId": "71790f91e17fa641",	//***按实际情况修改
          "spiderX": "/"
        }
      },
      "tcpSettings": {
        "header": {
          "type": "none"
        }
      }
    }
  ]
}

运行 Reality客户端

/usr/local/bin/xray run -config /root/VLESS-cracker/reality-client.json

5. 启动POC程序

./vless-cracker-v1 \
	-i docker0 \
	-f "tcp port 8443 and host 172.17.0.1 and host 172.17.0.2" \
	-P characteristic.txt  \
	-l info

6. 发起Reality数据包

用 curl 调用Reality客户端生成的 socks 代理. 这样 Reality客户端 会发起Reality数据包

curl -x socks://127.0.0.1:1080 google.com

7. 分析日志

将打印的日志, 复制粘贴到 vless-analyzer.html
这个日志分析工具保存在 G站/crazypeace/VLESS-cracker/blob/main/vless-analyzer.html

8. 探针文件说明

characteristic.txt
是原作者的7个探针

probes-1-10.txt
probes-11-20.txt
probes-21-30.txt
issue 29 的30个探针.
其中, 第5, 18, 30号探针情况特殊, 需要单独测试. 在 probes-*-*.txt 文件中, 对应的位置填充了数据占位.
也就是说, 当你使用 probes-1-10.txt probes-11-20.txt probes-21-30.txt 进行测试时, 并没有按issue29作者的构思正确地实施 第5, 18, 30号探针

probe-5-16385.txt
用原poc程序, 会因为探针体积大报错"probe file ‘probe-5-16385.txt’ line 1 is too long"
需要使用 probe-5-poc 程序. 在程序中调整了 #define MAX_PROBE_BYTES 32768

./probe-5-poc \
	-i docker0 \
	-f "tcp port 8443 and host 172.17.0.1 and host 172.17.0.2" \
	-P probe-5-16385.txt   \
	-l info

编译 probe-5-poc 的方法

gcc -O2 -o probe-5-poc probe-5-mimo.c -lpcap -lpthread

probe-18.txt
需要使用 probe-18-poc 程序. 在程序中调整了逻辑顺序, 将探针添加到 “client-hello” 的前面, 再合并一起发送.

./probe-18-poc \
	-i docker0 \
	-f "tcp port 8443 and host 172.17.0.1 and host 172.17.0.2" \
	-P probe-18.txt  \
	-l info

编译 probe-18-poc 的方法

gcc -O2 -o probe-18-poc probe-18-mimo.c -lpcap -lpthread

probe-30.txt
单独测试即可

./vless-cracker-v1 \
	-i docker0 \
	-f "tcp port 8443 and host 172.17.0.1 and host 172.17.0.2" \
	-P probe-30.txt     \
	-l info

以上操作流程同时保存在 G站/crazypeace/VLESS-cracker/blob/main/如果Reality"偷"证书的域名是由Caddy提供HTTP服务-操作记录.md

9. 测试结果

原作者的7个探针

image

issue29作者的30个探针

1-4, 6-10

image

11-17, 19-20

image

21-29

image

可以看到两轮测试的状态相同, 仅有字节数区别


以上测试日志保存在
G站/crazypeace/VLESS-cracker/blob/main/reality-caddy/characteristic.log
G站/crazypeace/VLESS-cracker/blob/main/reality-caddy/probes-1-10.log
G站/crazypeace/VLESS-cracker/blob/main/reality-caddy/probes-11-20.log
G站/crazypeace/VLESS-cracker/blob/main/reality-caddy/probes-21-30.log

1 个帖子 - 1 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文