
एक हल्का उपकरण जो आपके बग हंटिंग रिकॉन / पेंटेस्टिंग कमांड-लाइन वर्कफ़्लो को ऑर्केस्ट्रेट और व्यवस्थित करने के लिए है।
एक हल्का उपकरण जो आपकी कमांड-लाइन वर्कफ़्लो को ऑर्केस्ट्रेट और व्यवस्थित करने के लिए है
परिचय • स्थापना • उपयोग • वर्कफ़्लो कॉन्फ़िगरेशन • समानांतर निष्पादन • वर्कफ़्लो

Rayder एक कमांड-लाइन उपकरण है जो वर्कफ़्लो के ऑर्केस्ट्रेशन और निष्पादन को सरल बनाने के लिए डिज़ाइन किया गया है। यह आपको YAML फ़ाइल में मॉड्यूल की एक श्रृंखला परिभाषित करने की अनुमति देता है, जिनमें से प्रत्येक में निष्पादित करने के लिए कमांड होते हैं। Rayder आपको जटिल प्रक्रियाओं को स्वचालित करने में मदद करता है, जिससे दोहराए जाने वाले मॉड्यूल को सुव्यवस्थित करना और यदि कमांड एक-दूसरे पर निर्भर नहीं हैं तो उन्हें समानांतर रूप से निष्पादित करना आसान हो जाता है।
Rayder स्थापित करने के लिए, सुनिश्चित करें कि आपके सिस्टम पर Go (1.16 या उच्चतर) स्थापित है। फिर, निम्नलिखित कमांड चलाएँ:
go install github.com/devanshbatham/[email protected]
Rayder YAML फ़ाइलों में परिभाषित वर्कफ़्लो को निष्पादित करने का एक सीधा तरीका प्रदान करता है। निम्नलिखित कमांड का उपयोग करें:
rayder -w path/to/workflow.yaml
एक वर्कफ़्लो YAML फ़ाइल में निम्नलिखित संरचना के साथ परिभाषित किया गया है:
vars:
VAR_NAME: value
# अधिक चर जोड़ें...
parallel: true|false
modules:
- name: task-name
cmds:
- command-1
- command-2
# अधिक कमांड जोड़ें...
silent: true|false
# अधिक मॉड्यूल जोड़ें...
Rayder आपको अपने वर्कफ़्लो कॉन्फ़िगरेशन में चरों का उपयोग करने की अनुमति देता है, जिससे आपके कमांड को पैरामीटराइज़ करना और अधिक लचीलापन प्राप्त करना आसान हो जाता है। आप अपने वर्कफ़्लो YAML फ़ाइल के vars अनुभाग में चर परिभाषित कर सकते हैं। इन चरों को फिर आपके कमांड स्ट्रिंग्स के भीतर डबल कर्ली ब्रेसेस ({{}}) का उपयोग करके संदर्भित किया जा सकता है।
चर परिभाषित करने के लिए, उन्हें अपने वर्कफ़्लो YAML फ़ाइल के vars अनुभाग में जोड़ें:
vars:
VAR_NAME: value
ANOTHER_VAR: another_value
# अधिक चर जोड़ें...
आप अपने कमांड स्ट्रिंग्स के भीतर डबल कर्ली ब्रेसेस ({{}}) का उपयोग करके चरों को संदर्भित कर सकते हैं। उदाहरण के लिए, यदि आपने एक चर OUTPUT_DIR परिभाषित किया है, तो आप इसका उपयोग इस प्रकार कर सकते हैं:
modules:
- name: example-task
cmds:
- echo "Output directory {{OUTPUT_DIR}}"
आप अपने वर्कफ़्लो को निष्पादित करते समय कमांड लाइन के माध्यम से भी चरों के मान प्रदान कर सकते हैं। विशिष्ट चरों के लिए मान प्रदान करने के लिए VARIABLE_NAME=value प्रारूप का उपयोग करें। उदाहरण के लिए:
rayder -w path/to/workflow.yaml VAR_NAME=new_value ANOTHER_VAR=updated_value
यदि आप कमांड लाइन के माध्यम से चरों के लिए मान प्रदान नहीं करते हैं, तो Rayder स्वचालित रूप से आपके वर्कफ़्लो YAML फ़ाइल के vars अनुभाग में परिभाषित डिफ़ॉल्ट मान लागू करेगा।
याद रखें कि कमांड लाइन के माध्यम से प्रदान किए गए चर YAML कॉन्फ़िगरेशन में परिभाषित डिफ़ॉल्ट मानों को ओवरराइड कर देंगे।
यहाँ एक उदाहरण दिया गया है कि आप अपने वर्कफ़्लो कॉन्फ़िगरेशन में चरों को कैसे परिभाषित, संदर्भित और प्रदान कर सकते हैं:
vars:
ORG: "example.org"
OUTPUT_DIR: "results"
modules:
- name: example-task
cmds:
- echo "Organization {{ORG}}"
- echo "Output directory {{OUTPUT_DIR}}"
वर्कफ़्लो निष्पादित करते समय, आप ORG और OUTPUT_DIR के लिए मान इस प्रकार प्रदान कर सकते हैं:
rayder -w path/to/workflow.yaml ORG=custom_org OUTPUT_DIR=custom_results_dir
यह डिफ़ॉल्ट मानों को ओवरराइड करेगा और इन चरों के लिए प्रदान किए गए मानों का उपयोग करेगा।
यहाँ रिवर्स व्हॉइज़ रिकॉन और रूट डोमेन को सबडोमेन में प्रोसेस करने, उन्हें रिज़ॉल्व करने और जाँचने के लिए एक वर्कफ़्लो कॉन्फ़िगरेशन का उदाहरण दिया गया है कि कौन से जीवित हैं:
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
उपरोक्त वर्कफ़्लो को निष्पादित करने के लिए, निम्नलिखित कमांड चलाएँ:
rayder -w path/to/reverse-whois.yaml ORG="Yelp, Inc" OUTPUT_DIR=results
वर्कफ़्लो कॉन्फ़िगरेशन में parallel फ़ील्ड यह निर्धारित करता है कि मॉड्यूल को समानांतर या अनुक्रमिक रूप से निष्पादित किया जाना चाहिए या नहीं। parallel को true पर सेट करने से मॉड्यूल एक साथ चल सकते हैं, जो बिना निर्भरता वाले मॉड्यूल के लिए उपयुक्त है। जब false पर सेट किया जाता है, तो मॉड्यूल एक के बाद एक निष्पादित होंगे।
Rayder वर्कफ़्लो रिपॉजिटरी में नमूना वर्कफ़्लो और उदाहरणों का एक संग्रह देखें। और अधिक जोड़ने के लिए बने रहें!
इस परियोजना की प्रेरणा शानदार taskfile परियोजना से ली गई है।