
Una herramienta ligera para orquestar y organizar tus flujos de trabajo de línea de comandos de recon / pentesting en bug hunting.
Una herramienta ligera para orquestar y organizar tus flujos de trabajo en línea de comandos
Acerca de • Instalación • Uso • Configuración del flujo de trabajo • Ejecución paralela • Flujos de trabajo

Rayder es una herramienta de línea de comandos diseñada para simplificar la orquestación y ejecución de flujos de trabajo. Te permite definir una serie de módulos en un archivo YAML, cada uno compuesto por comandos a ejecutar. Rayder te ayuda a automatizar procesos complejos, facilitando la tarea de simplificar módulos repetitivos y ejecutarlos en paralelo si los comandos no dependen entre sí.
Para instalar Rayder, asegúrate de tener Go (1.16 o superior) instalado en tu sistema. Luego, ejecuta el siguiente comando:
go install github.com/devanshbatham/[email protected]
Rayder ofrece una forma sencilla de ejecutar flujos de trabajo definidos en archivos YAML. Usa el siguiente comando:
rayder -w path/to/workflow.yaml
Un flujo de trabajo se define en un archivo YAML con la siguiente estructura:
vars:
VAR_NAME: value
# Add more variables...
parallel: true|false
modules:
- name: task-name
cmds:
- command-1
- command-2
# Add more commands...
silent: true|false
# Add more modules...
Rayder te permite usar variables en la configuración de tu flujo de trabajo, lo que facilita la parametrización de tus comandos y ofrece más flexibilidad. Puedes definir variables en la sección vars de tu archivo YAML de flujo de trabajo. Luego, estas variables se pueden referenciar dentro de las cadenas de comandos usando dobles llaves ({{}}).
Para definir variables, agrégalas a la sección vars de tu archivo YAML de flujo de trabajo:
vars:
VAR_NAME: value
ANOTHER_VAR: another_value
# Add more variables...
Puedes referenciar variables dentro de las cadenas de comandos usando dobles llaves ({{}}). Por ejemplo, si defines una variable OUTPUT_DIR, puedes usarla así:
modules:
- name: example-task
cmds:
- echo "Output directory {{OUTPUT_DIR}}"
También puedes proporcionar valores para las variables desde la línea de comandos al ejecutar tu flujo de trabajo. Usa el formato VARIABLE_NAME=value para asignar valores a variables específicas. Por ejemplo:
rayder -w path/to/workflow.yaml VAR_NAME=new_value ANOTHER_VAR=updated_value
Si no proporcionas valores para las variables desde la línea de comandos, Rayder aplicará automáticamente los valores predeterminados definidos en la sección vars de tu archivo YAML de flujo de trabajo.
Recuerda que las variables suministradas desde la línea de comandos sobrescribirán los valores predeterminados definidos en la configuración YAML.
Aquí tienes un ejemplo de cómo puedes definir, referenciar y suministrar variables en tu configuración de flujo de trabajo:
vars:
ORG: "example.org"
OUTPUT_DIR: "results"
modules:
- name: example-task
cmds:
- echo "Organization {{ORG}}"
- echo "Output directory {{OUTPUT_DIR}}"
Al ejecutar el flujo de trabajo, puedes proporcionar valores para ORG y OUTPUT_DIR desde la línea de comandos de la siguiente manera:
rayder -w path/to/workflow.yaml ORG=custom_org OUTPUT_DIR=custom_results_dir
Esto sobrescribirá los valores predeterminados y usará los valores proporcionados para estas variables.
Aquí tienes una configuración de flujo de trabajo de ejemplo adaptada para la recon de whois inverso y el procesamiento de los dominios raíz en subdominios, resolviéndolos y verificando cuáles están activos:
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
Para ejecutar el flujo de trabajo anterior, ejecuta el siguiente comando:
rayder -w path/to/reverse-whois.yaml ORG="Yelp, Inc" OUTPUT_DIR=results
El campo parallel en la configuración del flujo de trabajo determina si los módulos deben ejecutarse en paralelo o secuencialmente. Establecer parallel como true permite que los módulos se ejecuten concurrentemente, lo que es adecuado para módulos sin dependencias. Cuando se establece como false, los módulos se ejecutarán uno tras otro.
Explora una colección de flujos de trabajo de ejemplo en el repositorio de flujos de trabajo de Rayder. ¡Mantente atento para más incorporaciones!
La inspiración de este proyecto proviene del genial proyecto taskfile.