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

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

原创
作者头像
小生观察室
发布2022-01-13 17:20:39
1.2K0
发布2022-01-13 17:20:39
举报
文章被收录于专栏:小生观察室

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
    • 关注公众号小生观察室并回复xray高级版即可下载
  • crawlergo源代码 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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • xray简介
  • crawlergo简介
  • 前置条件
  • 编译crawlergo
  • 自动化项目部署
    • 配置xray
      • 修改launcher_new文件
      • 实战复现
      • 其他需求_xray反连平台
        • 修改配置文件_服务器端
          • 测试效果
            • 修改配置文件_本地端
            相关产品与服务
            Web 应用防火墙
            腾讯云 Web 应用防火墙(Web Application Firewall,WAF)帮助腾讯云内及云外用户应对 Web 攻击、入侵、漏洞利用、挂马、篡改、后门、爬虫等网站及 Web 业务安全防护问题。企业通过部署腾讯云 WAF 服务,将 Web 攻击威胁压力转移到腾讯云 WAF 防护集群节点,分钟级获取腾讯 Web 业务防护能力,为网站及 Web 业务安全运营保驾护航。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档