工具介绍

  • xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有:

    • 检测速度快。发包速度快; 漏洞检测算法效率高。

    • 支持范围广。大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均可以支持。

    • 代码质量高。编写代码的人员素质高, 通过 Code Review、单元测试、集成测试等多层验证来提高代码可靠性。

    • 高级可定制。通过配置文件暴露了引擎的各种参数,通过修改配置文件可以客制化功能。

    • 安全无威胁。xray 定位为一款安全辅助评估工具,而不是攻击工具,内置的所有 payloadpoc 均为无害化检查。

工具安装

1
2
root at kali in ~/Desktop 
$ wget https://github.com/chaitin/xray/releases/download/1.9.11/xray_linux_amd64.zip
  • 解压并赋予执行权限:
1
2
3
4
5
6
7
8
9
10
root at kali in ~/Desktop 
$ unzip xray_linux_amd64.zip -d xray
Archive: xray_linux_amd64.zip
inflating: xray/xray_linux_amd64

root at kali in ~/Desktop
$ cd xray

root at kali in ~/Desktop/xray
$ chmod +x xray_linux_amd64
  • 执行 Xray:
1
2
3
4
5
6
7
8
9
10
11
12
13
root at kali in ~/Desktop/xray 
$ ./xray_linux_amd64

____ ___.________. ____. _____.___.
\ \/ /\_ __ \ / _ \ \__ | |
\ / | _ _/ / /_\ \ / | |
/ \ | | \/ | \ \____ |
\___/\ \ |____| /\____|_ / / _____/
\_/ \_/ \_/ \/

Version: 1.9.11/eb0c331d/COMMUNITY

config (xray.yaml) not found, gen xray.yaml/module.xray.yaml/plugin.xray.yaml .

注:第一次执行会默认生成配置文件。

工具使用

  • 查看 Xray 工具参数:
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
root at kali in ~/Desktop/xray 
$ ./xray_linux_amd64 -h

____ ___.________. ____. _____.___.
\ \/ /\_ __ \ / _ \ \__ | |
\ / | _ _/ / /_\ \ / | |
/ \ | | \/ | \ \____ |
\___/\ \ |____| /\____|_ / / _____/
\_/ \_/ \_/ \/

Version: 1.9.11/eb0c331d/COMMUNITY

NAME:
xray - A powerful scanner engine [https://docs.xray.cool]

USAGE:
[global options] command [command options] [arguments...]

COMMANDS:
webscan, ws Run a webscan task
servicescan, ss Run a service scan task
subdomain, sd Run a subdomain task
poclint, pl, lint lint yaml poc
burp-gamma, btg Convert the export file of burp historical proxy records to POC format
transform transform other script to gamma
reverse Run a standalone reverse server
convert convert results from json to html or from html to json
genca GenerateToFile CA certificate and key
upgrade check new version and upgrade self if any updates found
version Show version info
x A command that enables all plugins.
You can customize new commands or modify the plugins enabled by a command in the configuration file.
help, h Shows a list of commands or help for one command

GLOBAL OPTIONS:
--config FILE Load configuration from FILE (default: "config.yaml")
--log-level value Log level, choices are debug, info, warn, error, fatal
--help, -h show help

安装证书

  • 由于现在很多浏览器使用 HTTPS 协议通信,必须要得到客户端的信任,才能建立与客户端的通信。

  • 这里的突破口就是 ca 证书,只要自定义的 ca 证书得到了客户端的信任,xray 就能用该 ca 证书签发各种伪造的服务器证书,从而获取到通信内容。

  • 命令如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
root at kali in ~/Desktop/xray 
$ ./xray_linux_amd64 genca

____ ___.________. ____. _____.___.
\ \/ /\_ __ \ / _ \ \__ | |
\ / | _ _/ / /_\ \ / | |
/ \ | | \/ | \ \____ |
\___/\ \ |____| /\____|_ / / _____/
\_/ \_/ \_/ \/

Version: 1.9.11/eb0c331d/COMMUNITY

CA certificate ca.crt and key ca.key generated
  • 运行命令之后,将在当前文件夹生成 ca.crtca.key 两个文件。
  • 本命令只需要第一次使用的时候运行即可,如果文件已经存在再次运行会报错,需要先删除本地的 ca.crtca.key 文件。
  • 安装证书就看浏览器了,这里不做描述。

简单使用

  • Xray 的功能其实很多,但日常使用更多的是和 BurpSuite 进行联动,所以这里也只描述联动。

  • 在实际测试过程中,除了被动扫描,也时常需要手工测试。

  • 这里使用 BurpSuite 的原生功能与 xray 建立起一个多层代理,让流量从 BurpSuite 转发到 xray 中。

  • 首先 xray 建立起 webscan 的监听:

1
2
root at kali in ~/Desktop/xray 
$ ./xray_linux_amd64 webscan --listen 127.0.0.1:7777 --html-output xray.html
  • 接着在 BurpSuite 中设置上游代理:

image-20231128005415041

  • 接下来,在浏览器端使用 BurpSuite 的代理地址:

image-20231128005549260

  • 此时,请求已经通过了 BurpSuite:

image-20231128005614736

  • 转发到了 xray 中:

image-20231128005649100

  • 至此,联动成功。