xray工具—代理扫描、爬虫扫描、Burp联动

1. Xray介绍

  Xray是长亭科技推出的一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,支持主动、被动等多种扫描方式,支持WindowsLinuxmacOS多种操作系统,同时支持用户自定义POC

  目前xray分为:社区版、高级版、企业版。

  其中社区版是为免费版本,高级版需要为社区提供贡献获取金币、抽奖、商业销售进行获取,而企业版则只能通过商务购买进行获取。

1.1. 支持漏洞检测类型

  下列这些漏洞,在通过扫描获取到一个报告的时候,会在每一行后面体现出名字,其中POC框架默认是内置github上贡献的POC,当然用户也可以自定义构建POC运行。

  • XSS漏洞检测 (key: xss)
  • SQL 注入检测 (key: sqldet)
  • 命令/代码注入检测 (key: cmd-injection)
  • 目录枚举 (key: dirscan)
  • 路径穿越检测 (key: path-traversal)
  • XML 实体注入检测 (key: xxe)
  • 文件上传检测 (key: upload)
  • 弱口令检测 (key: brute-force)
  • jsonp 检测 (key: jsonp)
  • ssrf 检测 (key: ssrf)
  • 基线检查 (key: baseline)
  • 任意跳转检测 (key: redirect)
  • CRLF 注入 (key: crlf-injection)
  • Struts2 系列漏洞检测 (高级版,key: struts)
  • Thinkphp系列漏洞检测 (高级版,key: thinkphp)
  • XStream 系列漏洞检测 (key: xstream)
  • POC 框架 (key: phantasm)

1.2. 官网地址

  官网上的技术文档肯定写的更全,当然有些情况,还是比较难理解的,不过Xray的技术文档写的很全,里面包含了Windows、Linux、macOS不同系统的使用方式。

  技术文档

  github

2. 常用扫描模式

  通过github上下载下来后,只会有一个exe文件,当使用CMD或者PowrShell运行的时候,会自动在文件夹下发生成其它所需要文件,这里我就以Windows为例子,当然你们生成的肯定不是我这个样子,由于我是使用了高级版会多出一个xray-license.lic文件。

CMD运行:
xray_windows_amd64.exe version  ##查看版本
PowrShell运行:
./xray_windows_amd64.exe version  ##查看版本

在这里插入图片描述

2.1. 生成证书

  之前可能都了解过当使用各类工具去扫描HTTPS的时候会显示证书异常,必须要得到客户端的信任,才能够进行建立通信,所以这里就需要使用到证书,而在Xray中也自带证书,这里时候我们将证书生成,然后把证书安装到浏览器中即可。

  当然如果你的目录下存在这个两个证书的话,那么再次运行就会出现报错,删除即可。

xray_windows_amd64.exe genca ##生成证书

在这里插入图片描述

  嗯~~我在想需要介绍浏览器如何安装证书吗?还是介绍一下吧!

2.1.1. 浏览器安装证书

  这里我们直接在刚刚生成的文件夹中寻找到那个证书,双击安装证书。

在这里插入图片描述

  这里点完默认下一步,到这里的时候需要注意一定要选择受信任的根证书颁发机构,然后就是下一步了,然后点击完成后就会弹出一个界面。

在这里插入图片描述

  这里弹出的界面点击是进行安装,安装后就会显示导入证书成功。

在这里插入图片描述

2.2. Xray基础主动扫描

  这个模式总体来说不是太好,由于在针对一个URL进行扫描的时候,Xray只会对这个url的界面进行扫描,例如:http://127.0.0.1:8090/?id=10,那么在扫描的时候就只会对这个ID=10的页面扫描,例如这个页面下存在输入框,那么就会进行XSS等测试,URL进行sql注入测试等等,那么id=9的页面就无法进行测试。

2.2.1. 基础主动扫描命令

  这里稍后还会介绍其它的扫描方式进行弥补,这里先介绍单URL如何扫描,同时这里比较尴尬的是我使用帮助命令,帮助命令介绍的还是比较简单,还是建议去官网的手册看看案例,不过好像也没啥要记的命令,都挺简单的。

  http://testphp.vulnweb.com/这个地址是AWVS的一个漏洞靶场,可以用来进行测试。

xray_windows_amd64.exe webscan --url http://testphp.vulnweb.com/ --html-output 111.html

--url 指定目标的url
--html-output 扫描结果导出为html
111.html 扫描结果的文件名称

在这里插入图片描述

2.2.2. 基础主动扫描结果

  前面的+是能够显示更详细的信息,Target是存在漏洞的URLName就是前面支持漏洞检测的类型名称,像我这个两个都是目录枚举,后面就是时间。

在这里插入图片描述

2.3. Xray代理模式扫描

  Xray代理模式扫描就是扫描器作为中间人,当你访问URL某个页面的时候Xray就会自动去扫描,例如上面我举例子的,当你去访问id=10页面的时候,就会自动去扫描,当你去访问id=9页面的时候,也会去自动扫描,这样就实现了,整个页面的扫描。只要你访问到的页面均会被扫描。

2.3.1. 代理模式配置代理

  这里我使用火狐浏览器进行配置代理,可以使用一个插件进行配置,这个之前应该都会我就会进行介绍了。

在这里插入图片描述

2.3.2. 代理模式扫描命令

  当运行后,你访问一个页面就会对这个页面进行扫描,简单来说,你访问一百个页面,Xray就会对这个一百个页面进行扫描,这样就能够实现在你访问某个页面的过程中就把漏洞给挖了。

xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output 222.html

--listen 指定本地的代理
127.0.0.1:7777 配置的代理

在这里插入图片描述

2.3.3. 代理模式扫描结果

  这里可以看到有很多的漏洞,当然这是靶场,我也就点击了几下就出现那么多漏洞,自然点击的多肯定漏洞就不止这些了,当然要点击的多才行,比如我之前测试的时候应该还有一个xss漏洞,这里没扫到,是由于我没点击,或者点击太快,还没扫描完就被我暂停了。

  当然+下面有详细的请求包,你可以进行验证,漏扫多多少少会出现一些误报。

在这里插入图片描述

2.4. Xray基础爬虫模式扫描

  Xray的爬虫模式简单来说就是模拟人工去点击网页的链接,然后去进行分析扫描,和上面代理模式不同的是,爬虫模式不需要人工的介入,访问速度也要快很多,但是也存在一些缺点,那就是无法处理js渲染的界面,当然如果想要实现这个功能就需要更高级的版本。

  版本功能对比

2.4.1. 基础爬虫模式扫描命令

  这里就只是需要输入命令即可,但是这个会存在一个问题,那么就是登陆模式,在使用代理模式扫描的时候,如果网站是登陆模式的,那么扫描所收到的请求都是登陆状态的请求,但是对应爬虫来说,就没那么智能化了,但是可以通过配置Cookie的方式来实现登陆后的扫描。

xray_windows_amd64.exe webscan --basic-crawler http://testphp.vulnweb.com/ --html-output 333.html

在这里插入图片描述

2.4.2. 基础爬虫模式配置Cookie

  这里就是介绍如何添加Cookie

2.4.2.1. 查看Cookie

  这里我只介绍了一种方式,当然还有很多查看Cookie的方式,这里使用的办法就是F12开发者工具去找请求包,在请求包中会存在Cookie值,然后记录下来。

在这里插入图片描述

2.4.2.2. 添加Cookie

  在Xray运行目录下会有一个文件为config.yaml,这个就是配置文件夹,使用记事本或者其它工具打开就可以了,在http配置部分中的headers项中修改Cookie值或者添加一条即可,下面的Cookie是默认,可以删除,同时前面的#是不生效这个应该不会不知道吧。

在这里插入图片描述

2.4.3. 基础爬虫模式扫描结果

  使用爬虫模式扫描,这边通过扫描发现了50个漏洞,这里我们就验证一个漏洞来看看情况。

在这里插入图片描述

2.4.3.1. 漏洞验证

  这里我们就拿41项来验证XSS,首先我们查看一下介绍,它的意思是在这个URL中存在一个XSS漏洞,同时给了验证的payload,那么我们先来访问这个页面。

在这里插入图片描述

  根据提供的数据包,触发弹窗的是在GET请求中,那么GET请求不就是URL中么,当然这里的数据包我没截到图,你们可以自行测试,那么这里我就将这个payload输入到URL中,可以看到成功触发了XSS弹窗。

  如果这是一个真实的网站,或者你去给业主做漏扫,是不是就出现了一条可提交的漏洞呢?

在这里插入图片描述

2.5. 服务扫描

  这里就使用官方的介绍:

  Xray 中最常见的是 web扫描,但是xray 将会逐渐开放服务扫描的相关能力,目前主要是服务扫描相关的POC。老版本升级的用户请注意配置文件需要加入服务扫描的相关POC名字,目前只有一个tomcat-cve-2020-1938 ajp协议任意文件检测POC

  当然这里我也没服务进行测试,所以就引用官网的技术文档了。

2.5.1. 服务扫描命令

  这个服务扫描其实就是针对你使用的一些服务进行扫描,比如中间件等服务。

1.快速检测单个目标
xray_windows_amd64.exe servicescan --target 127.0.0.1:8009 --html-output 444.html

--target 后面跟着的是一个地址,同时也可以添加端口

2.批量检查的 1.file 中的目标, 一行一个目标,带端口
xray_windows_amd64.exe servicescan --target-file 1.file --html-output 444.html

--target-file 后面跟着的是一个文件,当然你输入文件路径也是可以了,只要能够读取到就可以了,但是后面的后缀好像要同步。

  其中1.file的格式为一行一个,如:

127.0.0.1:8080
127.0.0.1:8090
192.168.1.1:8080
~~~~~~~

3. 配置文件常用操作

  Xray的很多操作并不像其它的那样在命令中决定的,有很多都是通过配置文件来设定的,就像之前设置Cookie一样,有些扫描器都是在命令中设定或去指定,而Xray则需要去配置文件中去配置。

  配置文件生成在当前命令下,文件名为:config.yaml

  这里我只介绍一些常用了,很多更高超的功能还请去官方的技术文档中查阅。

3.1. 配置测试目标站

  像使用上面的代理扫描的时候,如果浏览器打开的页面多,可能就会出现非授权扫描,比如你要扫描www.123.com,这个是你得到授权的,但是你使用浏览器在查阅其它资料的时候,去扫描了你查资料的网站,那么这个就出现了非授权的扫描,如果想要避免这个事情发生,可以在配置文件中设定需要测试的目标站,当点击到其它网站的时候,Xray就不会去扫描了。

  修改地址:mitmrestrictionhostname_allowed 增加 你要测试的网站地址

  支持:xx.com*.xx.comIP地址IP地址网段

在这里插入图片描述

3.2. 删除全局禁止测试目标

  其实我这里的标题我觉得是不对的,但是意思差不多,在配置测试目标站的下面还有一列就是禁止测试,这些看截图中的结尾应该就知道是什么了,edu不清楚么?gov不清楚么?

  这些默认是不允许扫描的,相当于你去点击这些域名下的网页是不会执行扫描的,如果得到授权可以去扫描该怎么办呢?其实很简单就是删除相应的地址即可。

  修改地址:mitmrestrictionhostname_disallowed 增加/删除 你要测试的网站地址的域名地址

  支持:xx.com*.xx.comIP地址IP地址网段

在这里插入图片描述

3.3. 设定发包数

  在Xray中默认是允许30个并发数量,如果你设定50个并发数,那么一百个POC两秒验证完成,当然这是理论上的。

在这里插入图片描述

3.4. 总结

  这里确实本来想好好总结一下,但是写着写着,发现确实配置文件都是中文,而且非常好理解,同时Xray官方文档写的也很好,所以想了想算了,还是不总结了,有需要去访问Xray官方文档吧。

4. Xray与Burp联动

  在部分情况下,虽然Xray可以直接进行扫描但是可能还是会存在一些遗漏或者需要手动进行复测的情况下,如果再去抓包就比较麻烦了,而Xray提供了与Burp联动的功能。

4.1. Xray建立监听

  其实这里的建立监听命令和代理模式扫描是一样的,只是通过不同的方式将这个Xray流量引导到burp上而已。

xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output 555.html

在这里插入图片描述

4.2. 设置Burp代理

  这里就需要我们去设置Burp的代理,当然你也可以直接先设置Burp的上游代理服务器。

  设置选项位置:设置>Network>connection>Upstream Proxy Server>add

其实这里配置的就是和上面监听的保持一致即可。
代理主机:127.0.0.1
代理端口:7777

在这里插入图片描述

在这里插入图片描述

4.3. 设置Burp代理

  其实这个是最简单的,为什么这么说,你平常这么使用Burp进行抓包的就是这么设置,在浏览器中开始Burp抓包即可。

在这里插入图片描述

4.4. 查看联动效果

  这里就能够看到联动成功了,但是这个我莫名其妙的好像抓到了qq翻译的的数据包,后面我查看了一下,好像是访问的英文页面然后qq翻译自动运行就导致,Burp在拦截的时候,也将这个翻译的数据包也拦截了,那么通过burp进行抓包发送,那么这样就可能会出现非法测试,所以在使用中尽量保持环境的干净,避免抓到不必要的包,导致非法测试。

在这里插入图片描述

4.5. 注意事项

  在联动结束后一定要关闭上游代理服务器,可以直接把前面的勾号取消也可以,不然可能会出现下次使用Burp的时候无法使用的情况。

  这个勾号取消即可。

在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有: 检测速度快。发包速度快; 漏洞检测算法高效。 支持范围广。大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均可以支持。 代码质量高。编写代码的人员素质高, 通过 Code Review、单元测试、集成测试等多层验证来提高代码可靠性。 高级可定制。通过配置文件暴露了引擎的各种参数,通过修改配置文件可以极大的客制化功能。 安全无威胁。xray 定位为一款安全辅助评估工具,而不是攻击工具,内置的所有 payload 和 poc 均为无害化检查。 目前支持的漏洞检测类型包括: XSS漏洞检测 (key: xss) SQL 注入检测 (key: sqldet) 命令/代码注入检测 (key: cmd_injection) 目录枚举 (key: dirscan) 路径穿越检测 (key: path_traversal) XML 实体注入检测 (key: xxe) 文件上传检测 (key: upload) 弱口令检测 (key: brute_force) jsonp 检测 (key: jsonp) ssrf 检测 (key: ssrf) 基线检查 (key: baseline) 任意跳转检测 (key: redirect) CRLF 注入 (key: crlf_injection) Struts2 系列漏洞检测 (高级版,key: struts) Thinkphp系列漏洞检测 (高级版,key: thinkphp) POC 框架 (key: phantasm) 其中 POC 框架默认内置 Github 上贡献的 poc,用户也可以根据需要自行构建 poc 并运行。 设计理念 发最少的包做效果最好的探测。 如果一个请求可以确信漏洞存在,那就发一个请求。如果两种漏洞环境可以用同一个 payload 探测出来,那就 不要拆成两个。 允许一定程度上的误报来换取扫描速度的提升 漏洞检测工具无法面面俱到,在漏报和误报的选择上必然要选择误报。如果在使用中发现误报比较严重,可以进行反馈。 尽量不用时间盲注等机制检测漏洞。 时间检测受影响因素太多且不可控,而且可能会影响其他插件的运行。因此除非必要(如 sql)请尽量使用与时间无关的 payload。 尽量不使用盲打平台 如果一个漏洞能用回显检测就用回显检测,因为盲打平台增加了漏洞检测过程的不确定性和复杂性。 耗时操作谨慎处理 全局使用 Context 做管理,不会因为某个请求而导致全局卡死。 简易架构 了解 xray 的整体架构可以更好的理解 cli 和配置文件的设置,方便大家更好的使用。 整体来看,扫描这类工具大致都是由三部分组成: 来源处理 漏洞检测 结果输出 来源处理 这一部分的功能是整个漏洞检测的入口,在 xray 中我们定义了四个入口,分别是 HTTP 被动代理 简易爬虫 单个 URL URL列表的文件 单个原始 HTTP 请求文件 漏洞检测 这一部分是引擎的核心功能,用于处理前面 来源处理 部分产生的标准化的请求。用户可以针对性的启用插件,配置扫描插件的参数,配置 HTTP 相关参数等。 结果输出 漏洞扫描和运行时的状态统称为结果输出,xray 定义了如下几种输出方式: Stdout (屏幕输出, 默认开启) JSON 文件输出 HTML 报告输出 Webhook 输出 使用教程见:xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有: 检测速度快。发包速度快; 漏洞检测算法高效。 支持范围广。大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均可以支持。 代码质量高。编写代码的人员素质高, 通过 Code Review、单元测试、集成测试等多层验证来提高代码可靠性。 高级可定制。通过配置文件暴露了引擎的各种参数,通过修改配置文件可以极大的客制化功能。 安全无威胁。xray 定位为一款安全辅助评估工具,而不是攻击工具,内置的所有 payload 和 poc 均为无害化检查。 目前支持的漏洞检测类型包括: XSS漏洞检测 (key: xss) SQL 注入检测 (key: sqldet) 命令/代码注入检测 (key: cmd_injection) 目录枚举 (key: dirscan) 路径穿越检测 (key: path_traversal) XML 实体注入检测 (key: xxe) 文件上传检测 (key: upload) 弱口令检测 (key: brute_force) jsonp 检测 (key: jsonp) ssrf 检测 (key: ssrf) 基线检查 (key: baseline) 任意跳转检测 (key: redirect) CRLF 注入 (key: crlf_injection) Struts2 系列漏洞检测 (高级版,key: struts) Thinkphp系列漏洞检测 (高级版,key: thinkphp) POC 框架 (key: phantasm) 其中 POC 框架默认内置 Github 上贡献的 poc,用户也可以根据需要自行构建 poc 并运行。 设计理念 发最少的包做效果最好的探测。 如果一个请求可以确信漏洞存在,那就发一个请求。如果两种漏洞环境可以用同一个 payload 探测出来,那就 不要拆成两个。 允许一定程度上的误报来换取扫描速度的提升 漏洞检测工具无法面面俱到,在漏报和误报的选择上必然要选择误报。如果在使用中发现误报比较严重,可以进行反馈。 尽量不用时间盲注等机制检测漏洞。 时间检测受影响因素太多且不可控,而且可能会影响其他插件的运行。因此除非必要(如 sql)请尽量使用与时间无关的 payload。 尽量不使用盲打平台 如果一个漏洞能用回显检测就用回显检测,因为盲打平台增加了漏洞检测过程的不确定性和复杂性。 耗时操作谨慎处理 全局使用 Context 做管理,不会因为某个请求而导致全局卡死。 简易架构 了解 xray 的整体架构可以更好的理解 cli 和配置文件的设置,方便大家更好的使用。 整体来看,扫描这类工具大致都是由三部分组成: 来源处理 漏洞检测 结果输出 来源处理 这一部分的功能是整个漏洞检测的入口,在 xray 中我们定义了四个入口,分别是 HTTP 被动代理 简易爬虫 单个 URL URL列表的文件 单个原始 HTTP 请求文件 漏洞检测 这一部分是引擎的核心功能,用于处理前面 来源处理 部分产生的标准化的请求。用户可以针对性的启用插件,配置扫描插件的参数,配置 HTTP 相关参数等。 结果输出 漏洞扫描和运行时的状态统称为结果输出,xray 定义了如下几种输出方式: Stdout (屏幕输出, 默认开启) JSON 文件输出 HTML 报告输出 Webhook 输出

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

剁椒鱼头没剁椒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值