
أداة آلية لرش كلمات المرور (Password Spraying)
مشروع Trident هو أداة آليّة لرش كلمات المرور، طُوّرت لتلبية المتطلبات التالية:
القدرة على النشر على عدة منصات سحابية/موفري تنفيذ
القدرة على جدولة حملات الرش وفقاً لسياسة قفل الحساب لدى الهدف
القدرة على زيادة مجموعة عناوين IP التي تنشأ منها محاولات المصادقة لأغراض الأمن التشغيلي
القدرة على توسيع الوظائف بسرعة لتشمل منصات مصادقة جديدة يتم مواجهتها

تم إنشاء هذا الرسم باستخدام Diagrams. صُمّم برنامج Go gopher بواسطة Renee French وهو مرخّص بموجب CC BY 3.0.
يتطلب نشر Trident مشروع Google Cloud، واسم نطاق (لواجهة برمجة تطبيقات المنسّق)، وإعداد Cloudflare Access لهذا النطاق. يُستخدم Cloudflare Access للمصادقة على الطلبات الموجهة إلى واجهة برمجة تطبيقات المنسّق.
brew install cloudflare/cloudflare/cloudflared
brew install terraform
cd terraform
cloudflared login
terraform init
terraform plan
terraform apply
يتوفر Trident بواجهة سطر أوامر في صفحة الإصدارات.
بدلاً من ذلك، يمكنك تنزيل وتثبيت trident-client عبر go get:
GO111MODULE=on go get github.com/praetorian-inc/trident/cmd/trident-client
يرسل الثنائي trident-client طلبات API إلى المنسّق. يقرأ من ~/.trident/config.yaml، الذي له التنسيق التالي:
orchestrator-url: https://trident.example.org
providers:
okta:
subdomain: example
adfs:
domain: adfs.example.org
o365:
domain: login.microsoft.com
مع config.yaml صالح، يمكن استخدام trident-client لإنشاء حملات رش كلمات المرور، كما هو موضح أدناه:
trident-client campaign -u usernames.txt -p passwords.txt --interval 5s --window 120s
يسمح خيار --interval للمشغّل بإدراج تأخيرات بين محاولات بيانات الاعتماد. يسمح خيار --window للمشغّل بتعيين وقت توقف صارم للحملة. تُوثّق الوسائط الإضافية أدناه:
Usage:
trident-cli campaign [flags]
Flags:
-a, --auth-provider string منصة المصادقة التي تهاجمها (الافتراضي "okta")
-h, --help مساعدة للحملة
-i, --interval duration ستحدث الطلبات بهذه الفترة الزمنية بينها (الافتراضي 1s)
-b, --notbefore string لن تبدأ الطلبات قبل هذا الوقت (الافتراضي "2020-09-09T22:31:38.643959-05:00")
-p, --passfile string ملف كلمات المرور (مفصولة بسطر جديد)
-u, --userfile string ملف أسماء المستخدمين (مفصولة بسطر جديد)
-w, --window duration مدة ستنشط فيها هذه الحملة (مثال: 4w) (الافتراضي 672h0m0s)
يمكن استخدام الأمر الفرعي results للاستعلام عن جدول النتائج. يحتوي هذا الأمر الفرعي على عدة خيارات، لكنه افتراضياً يُظهر جميع بيانات الاعتماد الصالحة عبر جميع الحملات.
$ trident-client results
+----+-------------------+------------+-------+
| ID | USERNAME | PASSWORD | VALID |
+----+-------------------+------------+-------+
| 1 | [email protected] | Password1! | true |
| 2 | [email protected] | Password2! | true |
| 3 | [email protected] | Password3! | true |
+----+-------------------+------------+-------+
تُوثّق الوسائط الإضافية أدناه:
Usage:
trident-cli results [flags]
Flags:
-f, --filter string التصفية على نتائج قاعدة البيانات (محدد بصيغة JSON) (الافتراضي '{"valid":true}')
-h, --help مساعدة للنتائج
-o, --output-format string تنسيق الإخراج (table, csv, json) (الافتراضي "table")
-r, --return string قائمة الحقول التي ترغب في رؤيتها من النتائج (سلسلة مفصولة بفواصل) (الافتراضي "*")