xray与crawlergo联动实现全自动挖洞
crawlergo
crawlergo是一个使用chrome headless
模式进行URL收集的浏览器爬虫。可以收集一个域名下的动态链接,并且有很快的速度。
官方地址:crawlergo
基本使用:
.\crawlergo.exe -c "C:\Program Files\Google\Chrome\Application\chrome.exe" -t 20 http://testphp.vulnweb.com/
这里 -c
参数是机器上chrome浏览器启动文件位置;然后 -t
代表爬虫同时开启最大标签页,即同时爬取的页面数量;最后接的是要扫描的网站地址,这里是awvs官方给的测试网站,可以随便扫。
使用代理:
.\crawlergo.exe -c "C:\Program Files\Google\Chrome\Application\chrome.exe" -t 20 --request-proxy socks5://127.0.0.1:7890 http://testphp.vulnweb.com/
这样就能够通过本机上的clash去扫国外的网站了,不过我感觉更多的作用是在于内网代理扫内网不能直接访问的机器。
返回结果
当设置输出模式为 json
时,返回的结果反序列化之后包含四个部分:
all_req_list
: 本次爬取任务过程中发现的所有请求,包含其他域名的任何资源类型。req_list
:本次爬取任务的同域名结果,经过伪静态去重,不包含静态资源链接。理论上是all_req_list
的子集all_domain_list
:发现的所有域名列表。sub_domain_list
:发现的任务目标的子域名列表。
更多参数说明参考官方文档:完整参数说明
xray
xray是长亭出的一款十分不错的漏扫,虽然xray也有自己主动扫描的爬虫模式,不过显然效果没有其他如awvs的好,所以更多用的是被动代理模式,也就是通过设置代理监听传进来的请求,然后对这些请求进行漏扫。
.\xray.exe webscan --listen 127.0.0.1:7777 --html-output xray-testphp.html
这里使用代理模式监听本地的7777端口,然后扫描结果输出到html文件中,方便查看。
更多的使用教程参考:xray使用教程
crawlergo联动xray
刚才说到xray的爬虫模式并不好用,但是crawlergo的好用啊,所以使用crawlergo来进行url收集,然后交给xray去扫洞,非常合理。
实际上crawlergo 已经非常贴心地提供了请求转发这种功能,--push-to-proxy
参数可以设置接收爬虫结果的监听地址,然后把请求发过去。
首先启动xray进行监听:
.\xray.exe webscan --listen 127.0.0.1:7777 --html-output xray-testphp.html
然后再启动crawlergo设置如下参数:
.\crawlergo.exe -c "C:\Program Files\Google\Chrome\Application\chrome.exe" -t 20 --push-to-proxy http://127.0.0.1:7777 http://testphp.vulnweb.com/
这样就可以实现将crawlergo的请求发送到xray上了,十分简单。
不过有大佬在crawlergo实现请求代理转发功能之前,写了个python脚本实现全自动批量扫域名:crawlergo_x_XRAY,配置简单好用
基本使用教程:
- 下载xray最新的release, 下载crawlergo最新的release
- 配置好并启动xray被动扫描(脚本默认配置为127.0.0.1:7777)若修改端口请同时修改launcher.py文件中的proxies
- 配置好launcher.py的cmd变量中的crawlergo爬虫配置(主要是crawlergo和chrome路径改为本地路径)
- 把目标url写进targets.txt,一行一个url
- 用python3运行launcher.py ( XRAY被动扫描为启动的状态 )
- 生成的sub_domains.txt为爬虫爬到的子域名, crawl_result.txt为爬虫爬到的url
最后上一张效果图: