xray 的批量扫描从官方文档中查看有两种方式可以实现:
1、社区版#
需要设置上游代理,然后 xray 进行监听,如下:
# 如rad,运行
rad -t http://example.com -http-proxy 127.0.0.1:7777
# xray监听
xray webscan --listen 127.0.0.1:7777 --html-output proxy.html
设置完成后,就可以实现扫描了。
rad 有个问题,只能扫描单个目标,官方没有实现批量扫描的功能,但通过另一种方式也可以实现批量扫描(前提:linux or mac),就是用 xargs 命令。
cat 22222.txt | xargs -I {} rad -t {} -http-proxy 127.0.0.1:7777
除了rad之外,也可以使用其他的 endpoint 扫描工具进行 url 的爬取,如katana、cariddi。
- katana
katana 的使用方式比较简单,直接可以加载文本文件。
.\katana.exe -u .\111.txt -proxy http://127.0.0.1:7777
扫描效果:
cariddi 也是一款可以爬取 url 的工具,测试后,无法通过 http 代理将流量发送到 xray 的监听端口,无法配合 xray 扫描。
crawlergo --push-to-proxy http://127.0.0.1:7777 http://testphp.vulnweb.com/
xray 扫描结果
批量:
cat subdomain.txt | xargs -I {} crawlergo --push-to-proxy http://127.0.0.1:7777 {}
2、高级版#
根据 rad 官方文档,如果是高级版的 xray,自带了浏览器爬虫的功能,只需使用下面的命令即可,但是只能扫描单个目标。
xray webscan --browser-crawler http://example.com --html-output vuln.html
3、快速启动 xray#
如果每次启动 xray 都要输入长长的一串命令,势必会减少 xray 的打开次数,通过.bash_profile
文件设置快捷启动,只需要修改下面配置中 xray 的路径及文件名,然后source ~/.bash_profile
同步下配置。
#xray scan
xraym(){
cd /Users/xxx/pentesting/web-basic/p2-vuldect/xray/xray_1.9.10_darwin-pwn3rzs+cyberarsenal && ./xray_darwin_amd64 webscan --listen 127.0.0.1:7778 --html-output $(date '+%Y%m%d_%H%M%S').html
}
xrays(){
cd /Users/xxx/pentesting/web-basic/p2-vuldect/xray/xray_1.9.10_darwin-pwn3rzs+cyberarsenal && ./xray_darwin_amd64 webscan --basic-crawler $1 --html-output $(date '+%Y%m%d_%H%M%S').html
}
xraym
通常用来启动监听,扫描可以通过 rad、katana 和 crawlergo 传入流量即可。
xrays
用来扫描单个 url,单个 url 扫描只需xrays url
即可开始扫描。
4、其他资源#
- superxray (xray 图形化):https://github.com/4ra1n/super-xray