实用工具 | Xray的详细使用教程

admin 2022年9月14日14:25:22安全工具评论37 views3149字阅读10分29秒阅读模式
1
Xray介绍


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

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

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

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

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

不开源。


2
Xray安装


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

官网地址:

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

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


实用工具 | Xray的详细使用教程


以下图中各个版本的详解

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


实用工具 | Xray的详细使用教程


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


实用工具 | Xray的详细使用教程


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


实用工具 | Xray的详细使用教程


3.点击网站进行检测


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

实用工具 | Xray的详细使用教程

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

实用工具 | Xray的详细使用教程


5
主动WEB扫描


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


扫描指定的网站

实用工具 | Xray的详细使用教程


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.打开指定位置

实用工具 | Xray的详细使用教程

2.导入生成的证书

实用工具 | Xray的详细使用教程

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

实用工具 | Xray的详细使用教程


8
补充


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


9
自己编写POC使用


编写一个简单的POC

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

实用工具 | Xray的详细使用教程


利用以上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/

原文始发于微信公众号(猫因的安全):实用工具 | Xray的详细使用教程

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年9月14日14:25:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  实用工具 | Xray的详细使用教程 http://cn-sec.com/archives/1296315.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: