如何使用Rayder组织编排漏洞侦查和渗透测试工作流

2024-03-20 16:28

本文主要是介绍如何使用Rayder组织编排漏洞侦查和渗透测试工作流,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于Rayder

Rayder是一款针对漏洞网络侦查和渗透测试自动化工作流工具,该工具本质上是一个命令行工具,旨在帮助广大研究人员更轻松地组织、编排和执行漏洞侦查和渗透测试工作流。

Rayder允许我们在YAML文件中定义一系列功能模块,且每个模块都由要执行的命令所组成。Rayder可以帮助广大研究人员自动化复杂的流程,使重复的模块变得简单,并在命令不相互依赖的情况下并行执行。

工具要求

Go v1.16+

工具安装

首先,我们需要在本地设备上安装并配置好Go v1.16+环境。然后直接运行下列命令即可安装最新版本的Rayder:

go install github.com/devanshbatham/rayder@v0.0.4

工具使用

Rayder提供了一种非常简单且直接的工作流执行方法,所有要执行的内容都在YAML文件中定义,使用下列命令即可直接运行Rayder:

rayder -w path/to/workflow.yaml

工作流配置

定义在YAML文件中的工作流数据结构如下所示:

vars:VAR_NAME: value# 这里可以添加更多的变量...parallel: true|falsemodules:- name: task-namecmds:- command-1- command-2# 这里可以添加更多的命令...silent: true|false# 这里可以添加更多的模块...

在工作流中使用变量

Rayder支持在工作流配置文件中使用各种变量,这种方式不仅实现了命令参数化,而且也能够更大程度地实现灵活性。我们可以在YAML工作流文件的vars部分定义变量,然后使用双大括号{{}}在命令字符串中引用这些变量。

定义变量

vars:VAR_NAME: valueANOTHER_VAR: another_value# Add more variables...

在命令中引用变量

modules:- name: example-taskcmds:- echo "Output directory {{OUTPUT_DIR}}"

通过命令行提供变量

rayder -w path/to/workflow.yaml VAR_NAME=new_value ANOTHER_VAR=updated_value

工具使用样例

使用样例一

我们可以按照下列方式在工作流配置文件中定义、引用和提供变量:

vars:ORG: "example.org"OUTPUT_DIR: "results"modules:- name: example-taskcmds:- echo "Organization {{ORG}}"- echo "Output directory {{OUTPUT_DIR}}"

执行工作流时,我们可以在命令行命令中提供ORG和OUTPUT_DIR的变量值:

rayder -w path/to/workflow.yaml ORG=custom_org OUTPUT_DIR=custom_results_dir

上述命令将会覆盖这些变量原用的值,并使用命令行提供的新值。

使用样例二

以下是一个为反向whois定制的工作流配置示例,它将根域名重新配置并处理为子域名,然后解析它们并检查哪些是有效域名:

vars:ORG: "Acme, Inc"OUTPUT_DIR: "results-dir"parallel: falsemodules:- name: reverse-whoissilent: falsecmds:- mkdir -p {{OUTPUT_DIR}}- revwhoix -k "{{ORG}}" > {{OUTPUT_DIR}}/root-domains.txt- name: finding-subdomainscmds:- xargs -I {} -a {{OUTPUT_DIR}}/root-domains.txt echo "subfinder -d {} -o {}.out" | quaithe -workers 30silent: false- name: cleaning-subdomainscmds:-  cat *.out > {{OUTPUT_DIR}}/root-subdomains.txt-  rm *.outsilent: true- name: resolving-subdomainscmds:- cat {{OUTPUT_DIR}}/root-subdomains.txt | dnsx -silent -threads 100 -o {{OUTPUT_DIR}}/resolved-subdomains.txtsilent: false- name: checking-alive-subdomainscmds:- cat {{OUTPUT_DIR}}/resolved-subdomains.txt | httpx -silent -threads 1000 -o {{OUTPUT_DIR}}/alive-subdomains.txtsilent: false

如需执行上述工作流,运行下列命令即可:

rayder -w path/to/reverse-whois.yaml ORG="Yelp, Inc" OUTPUT_DIR=results

需要注意的是,如果将配置文件中parallel字段设置为true,则模块将会并行执行。

工具运行截图

许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

项目地址

Rayder:【GitHub传送门】

参考资料

GitHub - devanshbatham/rayder-workflows: Repo for hosting rayder workflows

Home | Task

这篇关于如何使用Rayder组织编排漏洞侦查和渗透测试工作流的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/830047

相关文章

如何Python使用设置word的页边距

《如何Python使用设置word的页边距》在编写或处理Word文档的过程中,页边距是一个不可忽视的排版要素,本文将介绍如何使用Python设置Word文档中各个节的页边距,需要的可以参考下... 目录操作步骤代码示例页边距单位说明应用场景与高级用China编程途小结在编写或处理Word文档的过程中,页边距是一个

SpringBoot项目Web拦截器使用的多种方式

《SpringBoot项目Web拦截器使用的多种方式》在SpringBoot应用中,Web拦截器(Interceptor)是一种用于在请求处理的不同阶段执行自定义逻辑的机制,下面给大家介绍Sprin... 目录一、实现 HandlerInterceptor 接口1、创建HandlerInterceptor实

使用JavaConfig配置Spring的流程步骤

《使用JavaConfig配置Spring的流程步骤》JavaConfig是Spring框架提供的一种基于Java的配置方式,它通过使用@Configuration注解标记的类来替代传统的XML配置文... 目录一、什么是 JavaConfig?1. 核心注解2. 与 XML 配置的对比二、JavaConf

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

Python使用python-docx实现自动化处理Word文档

《Python使用python-docx实现自动化处理Word文档》这篇文章主要为大家展示了Python如何通过代码实现段落样式复制,HTML表格转Word表格以及动态生成可定制化模板的功能,感兴趣的... 目录一、引言二、核心功能模块解析1. 段落样式与图片复制2. html表格转Word表格3. 模板生

go rate 原生标准限速库的使用

《gorate原生标准限速库的使用》本文主要介绍了Go标准库golang.org/x/time/rate实现限流,采用令牌桶算法控制请求速率,提供Allow/Reserve/Wait方法,具有一定... 目录介绍安装API介绍rate.NewLimiter:创建限流器limiter.Allow():请求是否

Python使用Turtle实现精确计时工具

《Python使用Turtle实现精确计时工具》这篇文章主要为大家详细介绍了Python如何使用Turtle实现精确计时工具,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录功能特点使用方法程序架构设计代码详解窗口和画笔创建时间和状态显示更新计时器控制逻辑计时器重置功能事件

Swagger2与Springdoc集成与使用详解

《Swagger2与Springdoc集成与使用详解》:本文主要介绍Swagger2与Springdoc集成与使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1. 依赖配置2. 基础配置2.1 启用 Springdoc2.2 自定义 OpenAPI 信息3.

Golang interface{}的具体使用

《Golanginterface{}的具体使用》interface{}是Go中可以表示任意类型的空接口,本文主要介绍了Golanginterface{}的具体使用,具有一定的参考价值,感兴趣的可以了... 目录一、什么是 interface{}?定义形China编程式:二、interface{} 有什么特别的?✅