
Un outil léger pour orchestrer et organiser vos workflows en ligne de commande de reconnaissance de chasse aux bugs / tests d'intrusion
Un outil léger pour orchestrer et organiser vos flux de travail en ligne de commande
À propos • Installation • Utilisation • Configuration du workflow • Exécution parallèle • Workflows

Rayder est un outil en ligne de commande conçu pour simplifier l'orchestration et l'exécution de workflows. Il vous permet de définir une série de modules dans un fichier YAML, chacun composé de commandes à exécuter. Rayder vous aide à automatiser des processus complexes, ce qui facilite la rationalisation des modules répétitifs et leur exécution en parallèle si les commandes ne dépendent pas les unes des autres.
Pour installer Rayder, assurez-vous d'avoir Go (version 1.16 ou supérieure) installé sur votre système. Exécutez ensuite la commande suivante :
go install github.com/devanshbatham/[email protected]
Rayder offre un moyen simple d'exécuter les workflows définis dans des fichiers YAML. Utilisez la commande suivante :
rayder -w chemin/vers/workflow.yaml
Un workflow est défini dans un fichier YAML avec la structure suivante :
vars:
VAR_NAME: valeur
# Ajoutez d'autres variables...
parallel: true|false
modules:
- name: nom-de-la-tâche
cmds:
- commande-1
- commande-2
# Ajoutez d'autres commandes...
silent: true|false
# Ajoutez d'autres modules...
Rayder vous permet d'utiliser des variables dans la configuration de votre workflow, ce qui facilite la paramétrisation de vos commandes et offre plus de flexibilité. Vous pouvez définir des variables dans la section vars de votre fichier YAML de workflow. Ces variables peuvent ensuite être référencées dans vos chaînes de commandes à l'aide de doubles accolades ({{}}).
Pour définir des variables, ajoutez-les à la section vars de votre fichier YAML de workflow :
vars:
VAR_NAME: valeur
ANOTHER_VAR: autre_valeur
# Ajoutez d'autres variables...
Vous pouvez référencer des variables dans vos chaînes de commandes à l'aide de doubles accolades ({{}}). Par exemple, si vous avez défini une variable OUTPUT_DIR, vous pouvez l'utiliser ainsi :
modules:
- name: exemple-tâche
cmds:
- echo "Répertoire de sortie {{OUTPUT_DIR}}"
Vous pouvez également fournir des valeurs pour les variables via la ligne de commande lors de l'exécution de votre workflow. Utilisez le format NOM_VARIABLE=valeur pour fournir des valeurs pour des variables spécifiques. Par exemple :
rayder -w chemin/vers/workflow.yaml VAR_NAME=nouvelle_valeur ANOTHER_VAR=valeur_mise_à_jour
Si vous ne fournissez pas de valeurs pour les variables via la ligne de commande, Rayder appliquera automatiquement les valeurs par défaut définies dans la section vars de votre fichier YAML de workflow.
N'oubliez pas que les variables fournies via la ligne de commande remplaceront les valeurs par défaut définies dans la configuration YAML.
Voici un exemple de la façon dont vous pouvez définir, référencer et fournir des variables dans votre configuration de workflow :
vars:
ORG: "example.org"
OUTPUT_DIR: "results"
modules:
- name: exemple-tâche
cmds:
- echo "Organisation {{ORG}}"
- echo "Répertoire de sortie {{OUTPUT_DIR}}"
Lors de l'exécution du workflow, vous pouvez fournir des valeurs pour ORG et OUTPUT_DIR via la ligne de commande comme ceci :
rayder -w chemin/vers/workflow.yaml ORG=organisation_personnalisée OUTPUT_DIR=répertoire_personnalisé
Cela remplacera les valeurs par défaut et utilisera les valeurs fournies pour ces variables.
Voici un exemple de configuration de workflow adapté au reverse whois et au traitement des domaines racines en sous-domaines, à leur résolution et à la vérification de ceux qui sont actifs :
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
Pour exécuter le workflow ci-dessus, lancez la commande suivante :
rayder -w chemin/vers/reverse-whois.yaml ORG="Yelp, Inc" OUTPUT_DIR=results
Le champ parallel dans la configuration du workflow détermine si les modules doivent être exécutés en parallèle ou séquentiellement. Mettre parallel à true permet aux modules de s'exécuter simultanément, ce qui est adapté aux modules sans dépendances. Lorsqu'il est défini sur false, les modules s'exécutent les uns après les autres.
Explorez une collection d'exemples de workflows et d'exemples dans le dépôt de workflows Rayder. Restez à l'affût pour plus d'ajouts !
L'inspiration de ce projet vient du formidable projet taskfile.