
Uno strumento leggero per orchestrare e organizzare i tuoi flussi di lavoro da riga di comando per bug hunting, recon e pentesting.
Uno strumento leggero per orchestrare e organizzare i tuoi flussi di lavoro da riga di comando
Informazioni • Installazione • Utilizzo • Configurazione del flusso di lavoro • Esecuzione parallela • Flussi di lavoro

Rayder è uno strumento da riga di comando progettato per semplificare l'orchestrazione e l'esecuzione di flussi di lavoro. Ti consente di definire una serie di moduli in un file YAML, ciascuno composto da comandi da eseguire. Rayder ti aiuta ad automatizzare processi complessi, rendendo facile snellire moduli ripetitivi ed eseguirli in parallelo se i comandi non dipendono l'uno dall'altro.
Per installare Rayder, assicurati di avere Go (1.16 o superiore) installato sul tuo sistema. Quindi, esegui il seguente comando:
go install github.com/devanshbatham/[email protected]
Rayder offre un modo semplice per eseguire flussi di lavoro definiti in file YAML. Usa il seguente comando:
rayder -w path/to/workflow.yaml
Un flusso di lavoro è definito in un file YAML con la seguente struttura:
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 ti permette di utilizzare variabili nella configurazione del tuo flusso di lavoro, rendendo semplice parametrizzare i tuoi comandi e ottenere maggiore flessibilità. Puoi definire variabili nella sezione vars del file YAML del flusso di lavoro. Queste variabili possono quindi essere referenziate all'interno delle stringhe dei comandi utilizzando doppie parentesi graffe ({{}}).
Per definire le variabili, aggiungile alla sezione vars del file YAML del flusso di lavoro:
vars:
VAR_NAME: value
ANOTHER_VAR: another_value
# Add more variables...
Puoi fare riferimento alle variabili all'interno delle stringhe dei comandi utilizzando doppie parentesi graffe ({{}}). Ad esempio, se hai definito una variabile OUTPUT_DIR, puoi usarla in questo modo:
modules:
- name: example-task
cmds:
- echo "Output directory {{OUTPUT_DIR}}"
Puoi anche fornire valori per le variabili tramite riga di comando durante l'esecuzione del tuo flusso di lavoro. Usa il formato VARIABLE_NAME=value per fornire valori per variabili specifiche. Ad esempio:
rayder -w path/to/workflow.yaml VAR_NAME=new_value ANOTHER_VAR=updated_value
Se non fornisci valori per le variabili tramite riga di comando, Rayder applicherà automaticamente i valori predefiniti definiti nella sezione vars del file YAML del flusso di lavoro.
Ricorda che le variabili fornite tramite riga di comando sovrascriveranno i valori predefiniti definiti nella configurazione YAML.
Ecco un esempio di come definire, fare riferimento e fornire variabili nella configurazione del tuo flusso di lavoro:
vars:
ORG: "example.org"
OUTPUT_DIR: "results"
modules:
- name: example-task
cmds:
- echo "Organization {{ORG}}"
- echo "Output directory {{OUTPUT_DIR}}"
Quando esegui il flusso di lavoro, puoi fornire valori per ORG e OUTPUT_DIR tramite riga di comando in questo modo:
rayder -w path/to/workflow.yaml ORG=custom_org OUTPUT_DIR=custom_results_dir
Questo sovrascriverà i valori predefiniti e utilizzerà i valori forniti per queste variabili.
Ecco un esempio di configurazione di flusso di lavoro adattato per la ricognizione reverse whois e l'elaborazione dei domini radice in sottodomini, la loro risoluzione e la verifica di quali sono attivi:
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
Per eseguire il flusso di lavoro sopra, esegui il seguente comando:
rayder -w path/to/reverse-whois.yaml ORG="Yelp, Inc" OUTPUT_DIR=results
Il campo parallel nella configurazione del flusso di lavoro determina se i moduli devono essere eseguiti in parallelo o in sequenza. Impostando parallel su true si permette ai moduli di essere eseguiti contemporaneamente, rendendolo adatto per moduli senza dipendenze. Quando è impostato su false, i moduli verranno eseguiti uno dopo l'altro.
Esplora una raccolta di flussi di lavoro di esempio e casi d'uso nel repository dei flussi di lavoro di Rayder. Resta sintonizzato per ulteriori aggiunte!
L'ispirazione di questo progetto proviene dal fantastico progetto taskfile.