下载地址:https://github.com/chushuai/wscan/releases
版本的选择
Windows就选windows_amd64
Linux就选linux_amd64
mac就选darwin_amd64
下载好后,运行一次exe会生成一个config.yaml文件
把该文件中plugins下面的所有插件的enabled设置为True。(正常已经设置好了,不用更改)
命令:
webscan,ws 运行webscan任务
servicescan,ss 运行服务扫描任务
subdomain,sd 运行子域任务
Reverse 运行独立的反向服务器
convert 转换结果从json到html或从html到json
genca 生成CA证书和密钥
version 显示版本信息
help,h 显示命令列表或一个命令的帮助
全局选项:
--config 值从文件中加载配置(“配置”)
--help,-h 显示帮助(默认值:false)
--log-level 日志级别,选项为调试、信息、警告、错误、致命
--version,-v打印版本(默认值:false)
运行的一些参数
--json-output= wscan_scan_result.json 将数据以json格式导出到该文件中
--html-output=wscan_scan_result.html 将数据以网页的格式导出到该文件中
--basic-crawler 爬虫模式扫描,自动检测网页中的所有url链接,进行扫描
--url 指定url的地址
--url-file=/wscan/url_file.txt 批量扫描该文件中的url地址
--browser 自动打开浏览器,并对url进行测试
--plug 指定插件进行测试
主动扫描
深度扫描
./wscan --log-level=debug ws --basic-crawler http://testphp.vulnweb.com/ --json-output=wscan_scan_result.json --html-output=wscan_scan_result.html
./wscan --log-level=debug ws --browser http://testphp.vulnweb.com/ --html-output=wscan_scan_result.html
./wscan --log-level=debug ws --url http://testphp.vulnweb.com/listproducts.php?cat=1 --json-output=wscan_scan_result.json
./wscan --log-level=debug ws --url-file=/wscan/url_file.txt –html-output=wscan_scan_result.html
以第一个为例,当运行该命令时,对Home of Acunetix Art
进行webscan扫描 日志等级为debug调试 把数据导出到wscan_scan_result.json和wscan_scan_result.html文件中
在wscan_scan_result.html中可以详细的看到扫描的结果,可以查看各个漏洞的具体信息,payload 请求包 响应包等等
第二个会自动打开浏览器并进行扫描
第三个只对指定的url进行扫描测试
专项扫描
在命令行中使用plug参数启用要扫描的插件
./wscan --log-level=debug ws --plug=sqldet --basic-crawler http://testphp.vulnweb.com/ --html-output=wscan_scan_result.html
这里只使用了sqldet插件进行测试
被动扫描
生成并安装CA
./wscan genca
会在文件夹中生成ca.key ca.crt两个文件
在浏览器中添加证书,以chrome为例
在设置中搜索证书
安全中
最下方的管理证书中
导入证书
选择刚刚生成的证书
选择受信任的根证书颁发机构
然后在配置代理
首先在浏览器插件中安装Proxy SwitchyOmega
自己新建一个模式,填好ip,端口选一个不常使用的,我选的7777,就可以了
深度扫描
./wscan --log-level=debug ws --listen=127.0.0.1:7777 --json-output=wscan_scan_result.json
他就开始监听127.0.0.1的7777端口
这个时候在浏览器中选中wscan的代理模式,开始浏览网页,他就会对你浏览的网页进行一个扫描并测试
就对该网页进行了一个漏洞的扫描,并生成文件,可以查看漏洞的具体信息
专项扫描
./wscan --log-level=debug ws --plug=sqldet,xss --listen=127.0.0.1:1000 --json-output=wscan_scan_result.json
同样的可以只使用某个插件进行被动扫描,这里就不阐述了
POC扫描
因为Wscan不内置任何POC插件,但Wscan的prometheus插件引擎支持Nuclei、XRAY、Goby标准POC插件,与其他扫描器不同的是Wscan可以自定义POC深度,从而发现更多的Web安全问题
下载插件包
XRAY Goby POC插件包下载地址
https://github.com/chaitin/xray/tree/master/pocs
在wscan_windows_amd64.exe创建一个文件夹wscan-poc,把上面pocs文件夹放入其中
专项扫描
同样的操作方法,仅使用poc插件进行扫描测试
./wscan --log-level=debug ws --poc=E:/pentest/wscan_windows_amd64.exe/wscan-poc/pocs/* --url http://testphp.vulnweb.com/ --html-output=wscan_scan_result.html
./wscan --log-level=debug ws --poc=/your_wscan_poc/wscan-poc/pocs/* --url-file=/url_file.txt --html-output=wscan_scan_result.html
深度扫描
运行方式与主被动扫描方式一致,但需要配置插件包路径,需要修改config.yaml文件中的以下内容,以指定include_poc的路径
开启扫描会自动加载poc
配合burpsuit一起使用
打开Burpsuit
在设置中network-connection中配置上游代理服务器,把流量转发到7777端口
这时在wscan监听7777端口,浏览器的代理开启burp的代理,是8080端口,经过burp会转发到7777端口,wscan就会进行扫描了
Wscan开始扫描了,也会在当前目录下生成html,来方便查看漏洞信息
这样的好处,就是可以通过wscan来自动扫描,你访问的网页,用burp去测试那些需要手工抓包的逻辑漏洞等等
自定义FUZZ插件
不同于POC测试,自定义FUZZ插件,会对指定位置的参数进行爆破,并支持自定义CEL表达式来验证是否存在漏洞
Step1编写自定义FUZZ插件
样例参考https://github.com/chushuai/wscan/tree/main/core/plugins/custom/tmpl/
Step2修改配置文件
需要修改config.yaml文件中的以下内容,以指定custon的路径
Step3执行定义的FUZZ插件
./wscan --log-level=debug ws --plug=custom --url http://testphp.vulnweb.com/listproducts.php?artist=1 --html-output=wscan_scan_result.html
Waf绕过/Waf测试
https://github.com/chushuai/wscan/tree/main/core/plugins/waftest/tmpl/owasp
./wscan --log-level=debug ws --plug=custom_tmpl --browser http://testphp.vulnweb.com/ --html-output=wscan_scan_result.html