
أداة خفيفة لتنسيق وتنظيم سير العمل في سطر الأوامر لصيد الثغرات / اختبار الاختراق.
أداة خفيفة لتنسيق وتنظيم سير العمل في سطر الأوامر
حول • التثبيت • الاستخدام • تكوين سير العمل • التنفيذ المتوازي • سير العمل

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 استخدام المتغيرات في تكوين سير العمل، مما يسهل تخصيص الأوامر وتحقيق مرونة أكبر. يمكنك تعريف المتغيرات في قسم vars من ملف YAML لسير العمل. يمكن بعد ذلك الإشارة إلى هذه المتغيرات داخل سلاسل الأوامر باستخدام الأقواس المزدوجة ({{}}).
لتعريف المتغيرات، أضفها إلى قسم vars من ملف YAML لسير العمل:
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 تلقائيًا القيم الافتراضية المحددة في قسم vars من ملف YAML لسير العمل.
تذكر أن المتغيرات المقدمة عبر سطر الأوامر ستتجاوز القيم الافتراضية المحددة في تكوين 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
سيؤدي هذا إلى تجاوز القيم الافتراضية واستخدام القيم المقدمة لهذه المتغيرات.
فيما يلي مثال لتكوين سير عمل مخصص للبحث العكسي عن Whois ومعالجة النطاقات الجذرية إلى نطاقات فرعية وحلها والتحقق من أي منها نشط:
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. ترقبوا المزيد من الإضافات!
إلهام هذا المشروع جاء من مشروع Awesome taskfile.