首页 5.Xray分析
文章
取消

5.Xray分析

1. 前言

谈到贴近红队攻防、渗透的场景,在国内最热门的工具就是xray了,近期也对xray进行了一些测试和分析,记录整合成一篇文章分享。

2. 安全能力实现分析

2.1 压缩包扫描

压缩文件的扫描,xray的实现有几个细节:

  1. 字典选择 包含了和域名相关的字典,例如:扫描的目标为http://www.example.com,会自动提取出域名example,生成特定字典如example.zipexample.rar
  2. 发包上 通常压缩文件的大小会比普通文件大上不少(大多数情况,非绝对),实现上,xray会在请求头上增加Range: bytes=0-xxxx去限制返回数据的大小。

    并且会对响应报文进行二次确认(不同于市面上一些目录扫描工具,只根据200状态码判断),黑盒上,我认为有几个点是可以用于判断的

    1. 状态码,因为通常压缩文件会比较大,且使用Range后,如果数据事超出范围,响应状态码会呈现206
    2. Content-Md5:会使用该header字段,去告知请求方,这个完整文件的md5是什么样的
    3. Content-Type:application/octet-stream
    4. Content-Range: bytes 0-xxxx/xxx,告知当前发送多少,还剩余多少数据
    5. 响应体,响应体一般为压缩包的数据流,可以根据互联网上公开的格式对其进行验证

  3. 目前分析下来发现各压缩文件类型,响应报的Content-Type区别

    文件类型Content-Type
    zipapplication/zip
    rarapplication/octet-stream

2.2 目录扫描

  1. 针对一些常见目录的扫描,部分会发Range: 0-xxx,可能是考虑到这些文件如果过大,可能会是虚假内容,列举一些

    文件类型xray分类
    readme.mddirscan/debug/readme
    LICENSEdirscan/debug/default
    web.configdirscan/config/web
    composer.jsondirscan/config/dependence
  2. 区分大小写,有同名但大小写的文件路径,例如:对一个目标扫描README.md,也扫描readme.md
  3. xray会做递归访问,xray应该有其他引擎,是负责去爬取站点的目录结构的,然后目录扫描会有一些根据传递的目录结构,进行扫描 Alt text

2.3 漏洞扫描

  1. 扫描目标会比较粗暴 例如一个网站是开启apache tomcat的,但是会将php的漏洞进行测试。粗暴的方式意味着会有一些无用流量,但容错率会更高,会在一定程度去解决漏报问题。 Alt text

  2. 存在通用脆弱性匹配引擎 下图中,xray的意图是做一个表达式注入的测试,但下方的响应结果是页面报错。 通过分析来看,xray主动做表达式注入验证,如果存在表达式注入漏洞则会给一个单独的事件类型;同时,会将做表达式注入的响应数据包,给到一个通用的分析引擎去做一些判断。 Alt text

  3. 通用引擎存在同个问题,多次发现的情况

    例如下图,一个站点存在网页报错,xray在过程中使用了多个其他漏洞的攻击,然后都触发了同一个报错,会在报告中生成多个事件,其实是比较干扰结果的。 Alt text

  4. 漏洞更倾向无害化处理

    举个例子,当漏洞为文件上传或者写入类的漏洞,会在目标主机上遗留数据时,xray会尽力做到无害化。 ``` POST /linux/pages/upload.jsp HTTP/1.1 Host: xxxx:xxx User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0 Content-Length: 132 Content-Type: application/x-www-form-urlencoded filename: xxx.jsp Accept-Encoding: gzip

<% out.println(“ajhdcnigzpwruudszlxyiglsmojwqaoi”); new java.io.File(application.getRealPath(request.getServletPath())).delete(); %> ``` 上述代码解释一下,如果漏洞存在,被访问后验证到会自动触发删除,不会在客户本地落地文件。

本文由作者按照 CC BY 4.0 进行授权

在线杀软比对

-