实用工具 | Xray的详细使用教程
2022-9-14 09:21:28 Author: 猫因的安全(查看原文) 阅读量:43 收藏

1
Xray介绍

Xray是一款强大的安全评估工具。

它支持主动扫描、被动扫描等多种扫描方式。

支持常见的WEB漏洞的自动化测试。

可以根据自己的需求来定制POC,功能丰富,使用简单。

其中有社区版和商业版本。

不开源。

2
Xray安装

我们需要去到它的官网来下载我们对应的系统的版本。

官网地址:

https://github.com/chaitin/xray/releases

以下是官网的截图,可以根据自己的系统选择自己的版本,由于它是不开源的,直接使用git clone下载源码是没有用的。下载二进制文件,解压后可以直接用。

以下图中各个版本的详解

xray_linux_386.ziplinux 32 位系统使用;xray_linux_arm64.ziplinux ARM 架构 64 位系统;xray_linux_amd64.ziplinux 64 位系统使用;xray_linux_arm.ziplinux ARM 架构 32 位系统,主要是手机、路由器、树莓派等;xray_darwin_amd64.zipMac 系统使用;xray_darwin_arm64.zipMac ARM架构系统使用;xray_windows_386.exe.zipwindows 32 位机器使用;xray_windows_amd64.exe.zip 为 windows 64 位机器使用;

这里我使用的是Linux的CentOS 服务器,所以直接下载 amd64的版本。不知道自己内核以及版本的可以使用命令:uname -a进行查询。

下载并解压,查看Xray的版本:

./xray_linux_amd64 version

3
Xray的配置文件

该配置文件是需要第一次运行Xray的时候自动生成的。

该配置文件中有五大配置:http、plugins、 reverse、mitm、basic_crawle

设置允许扫描的域名hostname_allowed: 是允许扫描的域名,hostname_disallowed: 是不允许扫描的域名

扫描插件配置:插件配置修改主要是开启和关闭,默认是全部开启,扫描时检测全部类型的漏洞,不需要检测的漏洞类型修改为 false;扫描时也可以指定插件。

发包速率限制:防止请求太快被 waf 拦截,可以将每秒请求数减小,默认每秒 500

4
代理模式,被动扫描

代理模式,简单理解就是被动扫描。就是我们点击哪里Xray就会检测哪个位置的网站有没有漏洞。

过程如下:

简单理解就是一个浏览器,一个Xray。

我们使用插件,在浏览器端设置代理,然后Xray监听。

我们点击浏览器发送请求,会先发送到代理手中(Xray)。

然后Xray根据我们这个请求去检测是否有漏洞。

最后再去请求我们想要访问的服务器

如果有漏洞的话会显示,然后根据我们选择的命令是否保存到文件中。

由于我们使用进行被动扫描,手工选择URL,可能会有一些HTTPS的请求。

此时我们需要进行证书的安装,让我们的浏览器支持HTTPS的请求。

证书安装请看最后的一步骤

开始测试:准备一个安装了DVWA的服务器(可以FOFA找),一个服务器开了8888端口,一个KAL安装了火狐设置代理到我们安装了Xray的服务器。

1.开启被动扫描的监听

[[email protected] xray_1.8.4]# ./xray_linux_amd64 webscan --listen 127.0.0.1:8888 --html-output dvwa_scan_result.html

2.开启KALI的火狐并设置代理为服务器的8888端口

3.点击网站进行检测

发现漏洞后检测停止,然后查看生成的页面,进行复现

检测到一个漏洞,返回的格式是md的

5
主动WEB扫描

主动WEB扫描我们可以直接输入一个URL,他会自动扫描整个网站,是否含有漏洞

扫描指定的网站

6
命令速查
[[email protected] xray_1.8.4]# ./xray_linux_amd64 webscan -h    #查看帮助#扫描指定网站[[email protected] xray_1.8.4]# ./xray_linux_amd64 webscan --basic-crawler http://example.com/指定扫描输出
不指定输出时,默认输出到控制台的标准输出中,可以做管道处理,也可以选择输出为文件,如:
./xray_windows_amd64.exe webscan --url http://example.com/ --json-output report.json
不同参数对应不同的输出方式:
无参数:输出到控制台的标准输出
--`text-output`:输出到文本文件中
--`json-output`:输出到 JSON 文件中
--`html-output`:输出到 HTML 文件中
基于代理扫描:
xray 可以通过类似 Burp 的方式启动,利用 HTTP 代理来抓包扫描,如:
./xray_windows_amd64.exe webscan --listen 127.0.0.1:7777
如果运行没报任何错就可以设置浏览器 HTTP 代理为 127.0.0.1:7777
很多时候还会扫到 HTTPS 站点,可能会因为有代理而导致无法访问,或者需要手动确认安全风险。这时候需要我们导入 xray 运行目录下的ca.crt证书
xray 的命令有 8个
webscan web端扫描
servicescan 服务器扫描
poclint 检查出 poc 中的不规范之处
reverse 命令用于启动单独的盲打平台服务,盲打平台用于处理没有回显或延触 发 的问题
genca 快速生成一个根证书,主要用于被动代理扫描 HTTPS 流量时用到。
upgrade 更新版本
version 查看版本
help -h                   帮助信息
7
证书导入

输入命令:

┌──(kali💋kali)-[~/Desktop]└─$ ./xray_linux_amd64 genca

会导出两个文件

火狐安装

1.打开指定位置

2.导入生成的证书

3.勾选信任,点击OK 完成

8
补充

Xray可以自己定义POC,还可以与goby,rad等工具进行联动

9
自己编写POC使用

编写一个简单的POC

1、rules用来改造请求内容,expression必须是布尔型的,detail 是一个键值对,内部存储需要返回给 xray 引擎的内容,如果无需返回内容,可以忽略。这里不对rules规则语法进行介绍。

利用以上poc会对请求改成get提交方式,将请求路径改成根路径,如果返回的状态是200,说明存在我们定义的这个漏洞poc。

并且输出漏洞信息detail。

2、运行我们定义的poc   poc-yaml-example.yml

将poc文件放到xray目录下,使用命令:

./xray.exe webscan --plugins phantasm --poc ./poc-yaml-example.yml --listen 127.0.0.1:7777

对单个url进行探测扫描:

./xray.exe webscan --plugins phantasm --poc ./poc-yaml-example.yml --url http://example.com

PS:有一个地方需要补充,就是开头说的是我们使用自己的服务器做一个检测,但是后面换成了KALI进行监听接口,然后检测。

第一次写工具的使用,有什么意见欢迎大家来提。

可以参考的链接

https://blog.csdn.net/nszmsjhshs/article/details/123843416https://www.freesion.com/article/4785827283/

文章来源: http://mp.weixin.qq.com/s?__biz=Mzk0NjMyNDcxMg==&mid=2247496625&idx=1&sn=44539c93ae8ef8080c4885dd2cef9bb1&chksm=c3056636f472ef2055ce1be2c8b4e570764efe0ee45d7f68a22771159aedd76ec7ee0bbf3aaf#rd
如有侵权请联系:admin#unsafe.sh