
Uma ferramenta leve para orquestrar e organizar seus fluxos de trabalho de linha de comando de reconhecimento de caça a bugs / testes de penetração.
Uma ferramenta leve para orquestrar e organizar seus fluxos de trabalho de linha de comando
Sobre • Instalação • Uso • Configuração de Fluxo de Trabalho • Execução Paralela • Fluxos de Trabalho

Rayder é uma ferramenta de linha de comando projetada para simplificar a orquestração e execução de fluxos de trabalho. Ela permite definir uma série de módulos em um arquivo YAML, cada um consistindo em comandos a serem executados. Rayder ajuda a automatizar processos complexos, facilitando a simplificação de módulos repetitivos e executando-os em paralelo se os comandos não dependerem uns dos outros.
Para instalar o Rayder, certifique-se de ter Go (1.16 ou superior) instalado em seu sistema. Em seguida, execute o seguinte comando:
go install github.com/devanshbatham/[email protected]
Rayder oferece uma maneira direta de executar fluxos de trabalho definidos em arquivos YAML. Use o seguinte comando:
rayder -w path/to/workflow.yaml
Um fluxo de trabalho é definido em um arquivo YAML com a seguinte estrutura:
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 permite usar variáveis na configuração do seu fluxo de trabalho, facilitando a parametrização dos seus comandos e proporcionando mais flexibilidade. Você pode definir variáveis na seção vars do seu arquivo YAML de fluxo de trabalho. Essas variáveis podem então ser referenciadas dentro das suas strings de comando usando chaves duplas ({{}}).
Para definir variáveis, adicione-as à seção vars do seu arquivo YAML de fluxo de trabalho:
vars:
VAR_NAME: value
ANOTHER_VAR: another_value
# Add more variables...
Você pode referenciar variáveis dentro das suas strings de comando usando chaves duplas ({{}}). Por exemplo, se você definiu uma variável OUTPUT_DIR, pode usá-la assim:
modules:
- name: example-task
cmds:
- echo "Output directory {{OUTPUT_DIR}}"
Você também pode fornecer valores para variáveis pela linha de comando ao executar seu fluxo de trabalho. Use o formato VARIABLE_NAME=valor para fornecer valores para variáveis específicas. Por exemplo:
rayder -w path/to/workflow.yaml VAR_NAME=new_value ANOTHER_VAR=updated_value
Se você não fornecer valores para variáveis pela linha de comando, o Rayder aplicará automaticamente os valores padrão definidos na seção vars do seu arquivo YAML de fluxo de trabalho.
Lembre-se de que as variáveis fornecidas pela linha de comando substituirão os valores padrão definidos na configuração YAML.
Aqui está um exemplo de como você pode definir, referenciar e fornecer variáveis na configuração do seu fluxo de trabalho:
vars:
ORG: "example.org"
OUTPUT_DIR: "results"
modules:
- name: example-task
cmds:
- echo "Organization {{ORG}}"
- echo "Output directory {{OUTPUT_DIR}}"
Ao executar o fluxo de trabalho, você pode fornecer valores para ORG e OUTPUT_DIR pela linha de comando assim:
rayder -w path/to/workflow.yaml ORG=custom_org OUTPUT_DIR=custom_results_dir
Isso substituirá os valores padrão e usará os valores fornecidos para essas variáveis.
Aqui está um exemplo de configuração de fluxo de trabalho adaptado para reconhecimento reverso de whois e processamento dos domínios raiz em subdomínios, resolvendo-os e verificando quais estão ativos:
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 executar o fluxo de trabalho acima, execute o seguinte comando:
rayder -w path/to/reverse-whois.yaml ORG="Yelp, Inc" OUTPUT_DIR=results
O campo parallel na configuração do fluxo de trabalho determina se os módulos devem ser executados em paralelo ou sequencialmente. Definir parallel como true permite que os módulos sejam executados concorrentemente, sendo adequado para módulos sem dependências. Quando definido como false, os módulos serão executados um após o outro.
Explore uma coleção de fluxos de trabalho de exemplo no repositório de fluxos de trabalho do Rayder. Fique atento para mais adições!
A inspiração deste projeto vem do incrível projeto taskfile.