有人说:“所有的漏扫工具都是人写出来的,既然是工具,肯定没有人厉害,但是,漏扫可以大大减少你的工作量”
4、⭐ XRAY
xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有:
- 检测速度快。发包速度快; 漏洞检测算法效率高。
- 支持范围广。大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均可以支持。
- 代码质量高。编写代码的人员素质高, 通过 Code Review、单元测试、集成测试等多层验证来提高代码可靠性。
- 高级可定制。通过配置文件暴露了引擎的各种参数,通过修改配置文件可以客制化功能。
- 安全无威胁。xray 定位为一款安全辅助评估工具,而不是攻击工具,内置的所有 payload 和 poc均为无害化检查。
下载:https://github.com/chaitin/xray
官方使用文档:https://docs.xray.cool/Introduction#/README
4.1 生成ca证书
# 这里本机显示已经安装
.\xray.exe genca
会生成ca.key,ca.crt两个文件
计算机安装证书:
双击ca.crt --> 安装证书 --> 当前用户 --> 证书存储(浏览) --> 受信任的根证书办法机构 --> 完成
浏览器安装证书:
4.2 ⭐被动扫描(Passive scanning)
# 代理模式扫描
xray.exe webscan --listen 127.0.0.1:7777 --html-output sis1.html
浏览器设置代理:
测试网站:http://testphp.vulnweb.com/
在根目录下寻找刚才命名的报告即可
4.3 ⭐主动扫描(Active scanning)
xray.exe webscan --basic-crawler http://testphp.vulnweb.com/ --html-output sis2.html
4.4 ⭐登录后的网站扫描
如果用的是代理模式,只要浏览器是登录状态,那么漏洞扫描收到的请求也都是登录状态的请求。但对于普通爬虫而言,就没有这么“自动化”了, 但是可以通过配置 Cookie 的方式实现登录后的扫描。
打开配置文件,修改 http 配置部分的 Headers 项:
http:
headers:
Cookie: key=value
4.5 服务扫描
参数配置目前比较简单,支持单个扫描与批量扫描:
# 快速检测单个目标
./xray servicescan --target 127.0.0.1:8009
# 批量检查的 1.txt 中的目标, 一行一个目标,带端口
./xray servicescan --target-file test.txt
#其中 test.txt 的格式为一个行一个 service,如:
10.3.0.203:8009
127.0.0.1:8009
# 将结果输出到报告中,支持多种格式:
./xray servicescan --target 127.0.0.1:8009 --html-output service.html
./xray servicescan --target-file test.file --html-output service.html
# 将检测结果输出到 json 文件中
./xray servicescan --target 127.0.0.1:8099 --json-output service.json
4.6 COMMANDS
命令 | 说明 |
---|---|
webscan | xray核心功能,用来发现探测web漏洞 |
servicescan | 服务扫描功能 用来探测服务漏洞 |
poclint | 检测poc是否符合规范 |
reverse | 启动单独的盲打平台服务 |
genca | 用于快速生成一个根证书,主要用于被动代理扫描HTTPS流量时用到 |
upgrade | 检查新版本并自动升级 |
version | 版本信息 |
help | 显示命令列表或一个命令的帮助 |
subdomain | 子域名扫描 高级本才有命令 |
4.7 subdomain (慎用)
扫描 baidu.com,并将结果输出到 baidu.txt
xray.exe subdomain --target baidu.com --text-output baidu.txt
4.8 ⭐自己指定插件扫描 webscan
扫描插件
–plugins: 指定要运行的插件,使用,分隔:
--plugins xss
--plugins xss,sqldet,phantasm
https://docs.xray.cool/Introduction#/configration/plugins详细使用文档
–poc:配置本次扫描启用哪些POC,使用,分隔:
# 只加载一个 POC, 精准匹配
--plugins phantasm --poc poc-yaml-thinkphp5-controller-rce
# 加载内置的所有带 `thinkphp` 的 POC
--plugins phantasm --poc "*thinkphp*"
# 加载本地 `/home/test/pocs/` 目录所有的 POC:
--plugins phantasm --poc "/home/test/pocs/*"
# 加载 `/home/test/pocs/` 下包含 thinkphp 的 POC
--plugins phantasm --poc "/home/test/pocs/*thinkphp*"
输入来源
--listen: 启动一个被动代理服务器作为输入,如 --listen 127.0.0.1:7777
--basic-crawler: 启用一个基础爬虫作为输入, 如 --basic-crawler http://example.com
--url-file: 批量从文件中读取URL
--url: 用于快速测试单个URL,不带爬虫,默认为GET请求
--data:指定 data,同时变为POST请求
--raw-request: 加载一个原始的 HTTP 请求并用于扫描,类似于sqlmap -r
输出格式
--json-output: 将结果输出到一个 json 文件中,输出是JSON格式的结构化数据
--html-output: 将结果输出为 html 报告
--webhook-output: 将结果发送到一个地址,输出是JSON格式的结构化数据,需要自己搭建一个Web服务器,接收到xray发送的漏洞信息
组合使用
将上面说的一些结合起来使用,就可以满足多种场景下的使用需求了:
# 使用xss模块 启用1111端口的代理服务器进行web漏洞扫描,输出漏洞报告到1.html中
./xray.exe webscan --plugins xss --listen 127.0.0.1:1111 --html-output 1.html
# 将日志级别设置为debug 然后使用xss和命令执行插件 使用内置的爬虫来扫描,输出漏洞报告到1.json中
./xray.exe --log_level debug webscan --plugins xss,cmd_injection --basic-crawler http://example.com --json-output 1.json
# 对目标资产进行POST方式漏洞检测,data为 x=y 并输出漏洞报告到1.json中
./xray.exe webscan --url http://example.com --data "username=admin&passwd=123456" --html-output 2.html --json-output 1.json
# 对目标资产进行单个URL检测,报告输出到指定的接受服务器中
./xray.exe webscan --url http://example.com/ --webhook-output http://host:port/path
4.9 ⭐ xray 与 Burpsuite 联动
# 参考
https://docs.xray.cool/tools/xray/advanced/burp
首先 xray 建立起 webscan 的监听:
xray.exe webscan --listen 127.0.0.1:7777 --html-output xx.html
进入 Burp 后,打开 NetWork->Connections 标签页,然后找到 Upstream Proxy Servers 设置。点击 Add 添加上游代理以及作用域,Destination host处可以使用*匹配多个任意字符串,?匹配单一任意字符串,而上游代理的地址则填写 xray 的监听地址。
接下来 BP 正常抓包,与此同时 BP 也会将我们截取到的一些流量包发到 xray 中进行漏洞检测。
4.10 ⭐ xray 与 AWVS 联动
# 参考
https://docs.xray.cool/tools/xray/advanced/awvs
首先 xray 建立起 websc
an 的监听:
如果你的AWVS不是安装在物理机上话,那么你的xray应该填写你AWVS可以访问的地址;
./xray.exe webscan --listen 192.168.0.20:7777 --html-output awvs.html //本机
ip,不要填127.0.0.1
登入管理页后,点击 Targets, 然后点击 Add Target 添加扫描目标:
测试靶场:http://testphp.vulnweb.com/
下滑到HTTP部分,填写Proxy Server为对应的xray代理:
扫描类型,仅爬取:
此时 AWVS 的爬虫会把请求都转发给 xray 检测漏洞了,此时awvs.html里面就躺好了漏洞:
4.11 ⭐ xray 和 rad连用
xray.exe webscan --listen 127.0.0.1:8888 --html-output xiehe.html
rad.exe -t http://testphp.vulnweb.com --http-proxy 127.0.0.1:8888
好小子,离成功又近一步!!!