
Ein leichtgewichtiges Werkzeug zur Orchestrierung und Organisation Ihrer Bug-Hunting-Recon-/Pentesting-Befehlszeilen-Workflows.
Ein leichtgewichtiges Werkzeug zur Orchestrierung und Organisation Ihrer Kommandozeilen-Workflows
Über • Installation • Verwendung • Workflow-Konfiguration • Parallele Ausführung • Workflows

Rayder ist ein Kommandozeilen-Tool, das entwickelt wurde, um die Orchestrierung und Ausführung von Workflows zu vereinfachen. Es ermöglicht Ihnen, eine Reihe von Modulen in einer YAML-Datei zu definieren, die jeweils aus auszuführenden Befehlen bestehen. Rayder hilft Ihnen, komplexe Prozesse zu automatisieren und erleichtert es, repetitive Module zu optimieren und parallel auszuführen, wenn die Befehle nicht voneinander abhängen.
Um Rayder zu installieren, stellen Sie sicher, dass Go (1.16 oder höher) auf Ihrem System installiert ist. Führen Sie dann den folgenden Befehl aus:
go install github.com/devanshbatham/[email protected]
Rayder bietet eine unkomplizierte Möglichkeit, in YAML-Dateien definierte Workflows auszuführen. Verwenden Sie den folgenden Befehl:
rayder -w path/to/workflow.yaml
Ein Workflow wird in einer YAML-Datei mit folgender Struktur definiert:
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 ermöglicht es Ihnen, Variablen in Ihrer Workflow-Konfiguration zu verwenden, was die Parametrisierung Ihrer Befehle erleichtert und mehr Flexibilität bietet. Sie können Variablen im Abschnitt vars Ihrer Workflow-YAML-Datei definieren. Diese Variablen können dann in Ihren Befehlszeichenfolgen mit doppelten geschweiften Klammern ({{}}) referenziert werden.
Um Variablen zu definieren, fügen Sie sie dem Abschnitt vars Ihrer Workflow-YAML-Datei hinzu:
vars:
VAR_NAME: value
ANOTHER_VAR: another_value
# Add more variables...
Sie können Variablen in Ihren Befehlszeichenfolgen mit doppelten geschweiften Klammern ({{}}) referenzieren. Wenn Sie beispielsweise eine Variable OUTPUT_DIR definiert haben, können Sie sie wie folgt verwenden:
modules:
- name: example-task
cmds:
- echo "Output directory {{OUTPUT_DIR}}"
Sie können auch Werte für Variablen über die Befehlszeile bereitstellen, wenn Sie Ihren Workflow ausführen. Verwenden Sie das Format VARIABLE_NAME=value, um Werte für bestimmte Variablen anzugeben. Zum Beispiel:
rayder -w path/to/workflow.yaml VAR_NAME=new_value ANOTHER_VAR=updated_value
Wenn Sie keine Werte für Variablen über die Befehlszeile bereitstellen, wendet Rayder automatisch die im Abschnitt vars Ihrer Workflow-YAML-Datei definierten Standardwerte an.
Denken Sie daran, dass über die Befehlszeile bereitgestellte Variablen die in der YAML-Konfiguration definierten Standardwerte überschreiben.
Hier ist ein Beispiel, wie Sie Variablen in Ihrer Workflow-Konfiguration definieren, referenzieren und bereitstellen können:
vars:
ORG: "example.org"
OUTPUT_DIR: "results"
modules:
- name: example-task
cmds:
- echo "Organization {{ORG}}"
- echo "Output directory {{OUTPUT_DIR}}"
Bei der Ausführung des Workflows können Sie Werte für ORG und OUTPUT_DIR über die Befehlszeile wie folgt angeben:
rayder -w path/to/workflow.yaml ORG=custom_org OUTPUT_DIR=custom_results_dir
Dadurch werden die Standardwerte überschrieben und die angegebenen Werte für diese Variablen verwendet.
Hier ist eine Beispiel-Workflow-Konfiguration, die für Reverse-Whois-Recon und die Verarbeitung der Root-Domains in Subdomains, deren Auflösung und Prüfung, welche aktiv sind, zugeschnitten ist:
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
Um den obigen Workflow auszuführen, führen Sie den folgenden Befehl aus:
rayder -w path/to/reverse-whois.yaml ORG="Yelp, Inc" OUTPUT_DIR=results
Das Feld parallel in der Workflow-Konfiguration legt fest, ob Module parallel oder sequenziell ausgeführt werden sollen. Wenn parallel auf true gesetzt ist, können Module gleichzeitig laufen, was sich für Module ohne Abhängigkeiten eignet. Bei false werden Module nacheinander ausgeführt.
Entdecken Sie eine Sammlung von Beispiel-Workflows und -Beispielen im Rayder-Workflows-Repository. Bleiben Sie gespannt auf weitere Ergänzungen!
Die Inspiration für dieses Projekt stammt vom großartigen taskfile-Projekt.