要求
1.安装xray 实现对皮卡丘靶场的主动和被动扫描(需要输出扫描报告)
2.安装goby,实现对皮卡丘靶场的扫描,无法安装的同学可以安装windows虚拟机,在虚拟机中进行操作
3.加分项:实现xray和burpsuite联动扫描
4.加分项:说明两者联动扫描流量代理后流量走向,即上层代理服务器的工作原理
Xray
安装Xray
安装及用法参见链接:
被动扫描
启动Xray的监听模式
在Xray的安装目录执行如下命令:
.\xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output passive_scan.html
该命令会启动 Xray 进行 Web 扫描,监听本地计算机的 7777 端口以捕获浏览器的请求,并将扫描结果以 HTML 格式保存到 passive_scan.html
文件中。
启动情况:
可见Xray已在本地7777端口开启了监听。
配置浏览器代理
我使用的是火狐,配置代理ip为127.0.0.1,端口为7777:
开启代理:
访问本地网站
用火狐访问本地搭建的pikachu靶场,访问任意页面,Xray就会自动输出当前页面的漏洞信息:
此外,Xray还会生成扫描报告到 --html-output 指定的html文件中(我这里就是 passive_scan.html):
主动扫描
启动Xray的爬虫模式:
.\xray_windows_amd64.exe webscan --basic-crawler http://127.0.0.1:8081/pikachu/ --html-output active_scan.html
如果目标网站需要登录,还需要配置Xray的配置文件 config.yml
:
http:
headers:
Cookie: key=value
需要将cookie设置为成功登录状态的值。
启动情况:
扫描报告(我这里是active_scan.html):
可以看到扫出了很多漏洞。
联动BP
Xray+BP联动流程
BP配置上游代理服务器,目标主机设为*(即所有主机),代理主机为本地主机,代理端口设为8989:
启动Xray的监听模式,监听BP的上游代理服务器对应的8989端口:
.\xray_windows_amd64.exe webscan --listen 127.0.0.1:8989 --html-output Xray_BP.html
在浏览器开启BP代理,我这里配置的BP代理端口是8080:
注意,此处要让浏览器以BP为代理,而不是直接以Xray为代理!!!
之后访问本地搭建的pikachu,就可以看到BP的代理记录里有对应的访问流量了:
与此同时,Xray也被动扫描出了所访问页面的漏洞:
扫描报告(我这里就是Xray_BP.html):
流量走向解析
一句话概括:浏览器使用BP作为代理,BP使用Xray作为代理。
当浏览器不开任何代理时,流量走向如下:
当浏览器开了BP代理后(也就是浏览器把流量发到BP监听的本地8080端口),流量走向如下:
当浏览器开了BP代理,并且BP配置了上游代理Xray以后(也就是BP把流量发到Xray监听的本地8989端口),流量走向如下:
整个联动扫描过程如下:
- 浏览器请求:当通过浏览器访问本地搭建的网站时,浏览器首先会将请求发送到BP,因为浏览器配置了BP作为代理服务器。
- BP转发请求:BP接收到浏览器的请求后,会根据配置将请求转发到上游代理服务器,这里的上游代理服务器实际上就是本地运行的Xray监听服务。
- Xray处理请求:Xray接收到来自BP的请求后,会对请求进行扫描分析,检查请求中可能存在的安全漏洞。
- 请求转发到目标服务器:经过Xray处理后,请求会被转发到实际的目标服务器(本地搭建的网站)。
- 响应返回:目标服务器处理请求后,将响应返回给Xray。
- Xray处理响应:Xray对响应进行扫描分析,检查响应中可能存在的安全漏洞。
- 响应转发给BP:经过Xray处理后,响应会被转发给BP。
- BP转发响应给浏览器:BP接收到Xray的响应后,会将响应转发给浏览器,浏览器最终显示响应内容。
Goby
用Goby扫描自己的主机:
扫描结果:
可以看到我本地开启的一些端口及对应的服务。