前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >xray联动crawlergo自动化扫描爬坑记

xray联动crawlergo自动化扫描爬坑记

作者头像
小生观察室
发布2022-03-07 13:34:33
2.3K0
发布2022-03-07 13:34:33
举报
文章被收录于专栏:小生观察室

xray简介

xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有:

  • 检测速度快,包速度快; 漏洞检测算法高效。
  • 支持范围广,大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均可以支持。
  • 代码质量高,编写代码的人员素质高, 通过 Code Review、单元测试、集成测试等多层验证来提高代码可靠性。
  • 高级可定制,通过配置文件暴露了引擎的各种参数,通过修改配置文件可以极大的客制化功能。
  • 安全无威胁,xray 定位为一款安全辅助评估工具,而不是攻击工具,内置的所有 payload 和 poc 均为无害化检查。

目前支持的漏洞检测类型包括:

  • XSS漏洞检测 (key: xss)
  • SQL 注入检测 (key: sqldet)
  • 命令/代码注入检测 (key: cmd-injection)
  • 目录枚举 (key: dirscan)
  • 路径穿越检测 (key: path-traversal)
  • XML 实体注入检测 (key: xxe)
  • 文件上传检测 (key: upload)
  • 弱口令检测 (key: brute-force)
  • jsonp 检测 (key: jsonp)
  • ssrf 检测 (key: ssrf)
  • 基线检查 (key: baseline)
  • 任意跳转检测 (key: redirect)
  • CRLF 注入 (key: crlf-injection)
  • Struts2 系列漏洞检测 (高级版,key: struts)
  • Thinkphp系列漏洞检测 (高级版,key: thinkphp)
  • POC 框架 (key: phantasm)

其中 POC 框架默认内置 Github 上贡献的 poc,用户也可以根据需要自行构建 poc 并运行。

crawlergo简介

crawlergo是一个使用chrome headless模式进行URL收集的浏览器爬虫。

它对整个网页的关键位置与DOM渲染阶段进行HOOK,自动进行表单填充并提交,配合智能的JS事件触发,尽可能的收集网站暴露出的入口。

内置URL去重模块,过滤掉了大量伪静态URL,对于大型网站仍保持较快的解析与抓取速度,最后得到高质量的请求结果集合。

crawlergo 目前支持以下特性:

  • 原生浏览器环境,协程池调度任务
  • 表单智能填充、自动化提交
  • 完整DOM事件收集,自动化触发
  • 智能URL去重,去掉大部分的重复请求
  • 全面分析收集,包括javascript文件内容、页面注释、robots.txt文件和常见路径Fuzz
  • 支持Host绑定,自动添加Referer
  • 支持请求代理,支持爬虫结果主动推送

前置条件

公网VPS一台

  • Windows、Linux都可以

xray1.8.2高级版(截止20220113最新版)

  • 高级版支持Winddows、Linux、Mac

crawlergo源代码

代码语言:javascript
复制
https://github.com/Qianlitp/crawlergo/releases

谷歌浏览器(自行下载安装)

Go环境、Python环境(自行下载安装)

编译crawlergo

将crawlergo源代码下回本地,并编译成可执行文件

进入crawlergo-0.4.2\cmd\crawlergo目录中进行编译,执行go build crawlergo_cmd.go语句

在全新的Go环境下第一次执行该语句时会出现如下报错:

此时只需执行以下语句并稍等片刻再重新编译即可

go mod tidy

在重新执行go build crawlergo_cmd.go时,会依然报以下错误:

代码语言:javascript
复制
open C:\Users\小生观察室\AppData\Local\Temp\go-build2905132708\b001\exe\a.out.exe:
The process cannot access the file because it is being used by another process.
go: failed to remove work dir: remove C:\Users\小生观察室\AppData\Local\Temp\go-build2905132708\b001\exe\a.out.exe:
The process cannot access the file because it is being used by another process.

解决方法:

代码语言:javascript
复制
找到 C:\Users\小生观察室\AppData\Local, 鼠标右键点中 Temp 文件夹 > 属性 > 安全 > 高级

添加 > 主体:Everyone > 把所有权限都打开 > 应用 > 确定退出

再重新执行go build crawlergo_cmd.go语句并会在当前目录下生成crawlergo.exe文件

自动化项目部署

项目地址

代码语言:javascript
复制
https://github.com/timwhitez/crawlergo_x_XRAY

将整个项目clone到本地,并将xray_windows_amd64.execrawlergo.exe分别放置项目的xraycrawlergo目录下

配置xray

执行以下语句后会在xray当前目录下生成config.yaml配置文件及CA证书

xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output 小生观察室.html

修改launcher_new文件

launcher_new.py中的chrome浏览器路径修改为本机chrmoe浏览器路径

并将路径中的\替换为/

实战复现

  1. 将需要测试的目标保存至targets.txt
  2. 将修改好的launcher_new.pytargets.txt复制到crawlergo目录下
  3. xray设置为监听状态
  4. crawlergo目录下执行python3 launcher_new.py
  • python环境下需要安装以下库fake_useragentsimplejson

批量测试中:

crawlergo目录下生成的sub_domains.txt为爬虫爬到的子域名, crawl_result.txt为爬虫爬到的url

发现漏洞时会在xray目录下自动生成小生观察室_html报告

其他需求_xray反连平台

修改配置文件_服务器端

xray执行后会生成默认配置文件cofig.yaml

需要修改配置文件中反连平台的参数:

将修改后的cofing.yaml及xray其他文件一并放置服务器端

服务器端执行xray_linux_amd64 reverse

通过浏览器能正常打开页面就说明无异常

测试效果

选择页面中的生成一个URL并进行测试

修改配置文件_本地端

修改本地xrayconfig.yaml配置文件的remote_server并添加服务器端的http地址

  • 配置完成后,当检测到SSRF等相关漏洞后会向服务器端反馈结果
  • 反连平台只能在高级版中使用
  • 有安全组的情况下需要放行对应端口,防火墙开放端口一定得是UDP不是TCP,安全组新增默认的是TCP
  • 如果依然无法正常访问对应的http服务,可以考虑在服务器端禁用防火墙ufw disable
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小生观察室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • xray简介
  • crawlergo简介
  • 前置条件
  • 编译crawlergo
  • 自动化项目部署
    • 配置xray
      • 修改launcher_new文件
      • 实战复现
      • 其他需求_xray反连平台
        • 修改配置文件_服务器端
          • 测试效果
            • 修改配置文件_本地端
            相关产品与服务
            云服务器
            云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档