
Легковесный инструмент для оркестрации и организации ваших консольных рабочих процессов по баг-хантингу и пентестингу.
Легковесный инструмент для оркестровки и организации рабочих процессов в командной строке
О проекте • Установка • Использование • Конфигурация рабочего процесса • Параллельное выполнение • Рабочие процессы

Rayder — это инструмент командной строки, предназначенный для упрощения оркестровки и выполнения рабочих процессов. Он позволяет определять серию модулей в YAML-файле, каждый из которых состоит из команд для выполнения. Rayder помогает автоматизировать сложные процессы, упрощая выполнение повторяющихся модулей и их параллельный запуск, если команды не зависят друг от друга.
Для установки Rayder убедитесь, что в вашей системе установлен Go (версии 1.16 или выше). Затем выполните следующую команду:
go install github.com/devanshbatham/[email protected]
Rayder предлагает простой способ выполнения рабочих процессов, определённых в YAML-файлах. Используйте следующую команду:
rayder -w path/to/workflow.yaml
Рабочий процесс определяется в YAML-файле со следующей структурой:
vars:
VAR_NAME: value
# Добавьте больше переменных...
parallel: true|false
modules:
- name: task-name
cmds:
- command-1
- command-2
# Добавьте больше команд...
silent: true|false
# Добавьте больше модулей...
Rayder позволяет использовать переменные в конфигурации рабочего процесса, что упрощает параметризацию команд и обеспечивает большую гибкость. Вы можете определять переменные в разделе vars вашего YAML-файла. Эти переменные затем можно использовать в строках команд с помощью двойных фигурных скобок ({{}}).
Чтобы определить переменные, добавьте их в раздел vars вашего YAML-файла:
vars:
VAR_NAME: value
ANOTHER_VAR: another_value
# Добавьте больше переменных...
Вы можете ссылаться на переменные в строках команд с помощью двойных фигурных скобок ({{}}). Например, если вы определили переменную OUTPUT_DIR, используйте её так:
modules:
- name: example-task
cmds:
- echo "Output directory {{OUTPUT_DIR}}"
Вы также можете передавать значения для переменных через командную строку при выполнении рабочего процесса. Используйте формат VARIABLE_NAME=value, чтобы указать значения для конкретных переменных. Например:
rayder -w path/to/workflow.yaml VAR_NAME=new_value ANOTHER_VAR=updated_value
Если вы не передаёте значения переменных через командную строку, Rayder автоматически применит значения по умолчанию, определённые в разделе vars вашего YAML-файла.
Помните, что переменные, переданные через командную строку, переопределяют значения по умолчанию, заданные в конфигурации YAML.
Вот пример того, как вы можете определять, ссылаться и передавать переменные в конфигурации рабочего процесса:
vars:
ORG: "example.org"
OUTPUT_DIR: "results"
modules:
- name: example-task
cmds:
- 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: false
modules:
- name: reverse-whois
silent: false
cmds:
- mkdir -p {{OUTPUT_DIR}}
- revwhoix -k "{{ORG}}" > {{OUTPUT_DIR}}/root-domains.txt
- name: finding-subdomains
cmds:
- xargs -I {} -a {{OUTPUT_DIR}}/root-domains.txt echo "subfinder -d {} -o {}.out" | quaithe -workers 30
silent: false
- name: cleaning-subdomains
cmds:
- cat *.out > {{OUTPUT_DIR}}/root-subdomains.txt
- rm *.out
silent: true
- name: resolving-subdomains
cmds:
- cat {{OUTPUT_DIR}}/root-subdomains.txt | dnsx -silent -threads 100 -o {{OUTPUT_DIR}}/resolved-subdomains.txt
silent: false
- name: checking-alive-subdomains
cmds:
- cat {{OUTPUT_DIR}}/resolved-subdomains.txt | httpx -silent -threads 1000 -o {{OUTPUT_DIR}}/alive-subdomains.txt
silent: false
Для выполнения вышеуказанного рабочего процесса запустите следующую команду:
rayder -w path/to/reverse-whois.yaml ORG="Yelp, Inc" OUTPUT_DIR=results
Поле parallel в конфигурации рабочего процесса определяет, должны ли модули выполняться параллельно или последовательно. Установка parallel в true позволяет модулям запускаться одновременно, что подходит для модулей без зависимостей. Если установлено false, модули будут выполняться один за другим.
Изучите коллекцию примеров рабочих процессов и примеров в репозитории Rayder workflows. Следите за обновлениями!
Вдохновением для этого проекта послужил замечательный проект taskfile.