Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
dufflebag — ابحث عن الأسرار في وحدات تخزين EBS المكشوفة | Kitploit
أدوات/GitHubGitHub/bishopfox/dufflebag
تحليل الثغرات الأمنيةجمع المعلوماتأمن السحابةكشف الأسرار
GitHubbishopfox/dufflebag

dufflebag

ابحث عن الأسرار في وحدات تخزين EBS المكشوفة

عرض المستودع
30539منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

حقيبة الدفلة

حقيبة الدفلة (Dufflebag) هي أداة تبحث من خلال لقطات Elastic Block Storage (EBS) العامة عن الأسرار التي قد تُركت عن طريق الخطأ. قد تتفاجأ بعدد كلمات المرور والأسرار الموجودة في كل مكان!

الأداة منظمة كتطبيق Elastic Beanstalk ("EB"، لا تخلط بينها وبين EBS)، ولن تعمل بالتأكيد إذا حاولت تشغيلها على جهازك الشخصي.

تحتوي حقيبة الدفلة على الكثير من الأجزاء المتحركة لأن قراءة أحجام EBS في الممارسة العملية ليست تافهة. يجب أن تكون في بيئة AWS، واستنساخ اللقطة، وإنشاء حجم من اللقطة، وإرفاق الحجم، وتثبيته، وما إلى ذلك... لهذا السبب تم إنشاؤها كتطبيق Elastic Beanstalk، حتى يمكن توسيع نطاقها تلقائيًا لأعلى أو لأسفل كما تريد، وحتى يمكن إزالتها بسهولة عند الانتهاء منها.

فقط راقب وحدة تحكم AWS الخاصة بك للتأكد من أن الأمور لا تخرج عن السيطرة وتتسبب في فواتير باهظة. لقد حاولنا التفكير في كل حالة طوارئ وتوفير معالجة الأخطاء... ولكن لقد تم تحذيرك!

البدء

الأذونات

ستحتاج إلى إضافة بعض أذونات AWS IAM الإضافية إلى الدور: aws-elasticbeanstalk-ec2-role. بدلاً من ذلك، يمكنك إنشاء دور جديد تمامًا بهذه الأذونات وتعيين EB لاستخدام هذا الدور، لكنه أكثر تعقيدًا قليلاً. على أي حال، ستحتاج إلى إضافة:

  • AttachVolume (ec2)
  • CopySnapshot (ec2)
  • CreateVolume (ec2)
  • DeleteSnapshot (ec2)
  • DeleteVolume (ec2)
  • DescribeSnapshots (ec2)
  • DescribeVolumes (ec2)
  • DetachVolume (ec2)
  • PurgeQueue (sqs)
  • ListQueues (sqs)
  • ListAllMyBuckets (s3)
  • PutObject (s3)

البناء

التطبيق الأساسي مكتوب بلغة Go، لذا ستحتاج إلى مترجم Golang. لكن تطبيق EB مبني فعليًا في ملف .zip (هذه هي طريقة عمل EB) لذا فإن ملف makefile سينتج zip لك.

  1. تحقق من منطقتك. يمكن لـ Dufflebag العمل في منطقة AWS واحدة فقط في كل مرة. إذا كنت تريد البحث في كل منطقة، فسيتعين عليك نشر هذا العدد من النسخ. لتغيير المنطقة، قم بتغيير محتويات ملف الكود المصدري region.go.

  2. تثبيت التبعيات: Ubuntu 18.04 x64:

root@kitploit:~
sudo apt install make golang-go git
go get -u github.com/aws/aws-sdk-go
go get -u github.com/deckarep/golang-set
go get -u github.com/lib/pq
go get -u lukechampine.com/blake3
  1. ثم قم ببناء تطبيق EB في ملف zip باستخدام:
root@kitploit:~
make

يجب أن ترى الآن ملف dufflebag.zip في دليل المشروع الرئيسي.

  1. أخيرًا، ستحتاج إلى إنشاء حاوية S3. قد يكون إعداد ذلك تلقائيًا داخل Dufflebag ممكنًا، لكنه سيكون صعبًا جدًا. لذا قم بذلك بنفسك. تحتاج فقط إلى إنشاء حاوية S3 بأذونات افتراضية، وأن يبدأ اسمها بـ dufflebag. يجب أن تكون أسماء حاويات S3 فريدة عالميًا، لذا ستحتاج على الأرجح إلى إضافة لاحقة مثل مجموعة من الأحرف العشوائية أو شيء من هذا القبيل.

النشر إلى Elastic Beanstalk

انتقل إلى وحدة تحكم AWS الخاصة بك وابحث عن خيار قائمة Elastic Beanstalk. من المحتمل أن يكون هذا ممكنًا عبر CLI أيضًا، لكن هذا الوصف سيستخدم وحدة التحكم. حدد Actions -> Create Environment.

Create Environment

ثم في النافذة التالية اختر Worker environment واضغط Select.

Worker Environment

في النافذة التالية، اختر Preconfigured -> Go لـ Platform.

Go  Platform

تحت Application Code، اختر Upload your Code.

Upload You Code

اضغط على زر Upload واختر ملف dufflebag.zip الذي قمت ببنائه للتو.

Code Origins

أخيرًا، اضغط على Create Environment للبدء.

سيستغرق الأمر بضع دقائق حتى تقوم AWS بإنشاء كل شيء والبدء. بمجرد الإنشاء، ستبدأ Dufflebag العمل فورًا. لا حاجة لفعل أي شيء آخر.

إزالة صمام الأمان

بمجرد تشغيل هذا، يمكنك المحاولة مرة أخرى مع إزالة صمام الأمان. بشكل افتراضي، تبحث Dufflebag فقط في 20 لقطة EBS. (حتى لا تخرج عن السيطرة في أول محاولة لك) من أجل توسيع البحث لتشمل المنطقة بأكملها، انتقل إلى populate.go، وقم بإزالة سطر الكود التالي، وأعد البناء:

root@kitploit:~
//#####################################################################
//####                    صمام الأمان                              ####
//#### قم بإزالة سطر الكود أدناه للبحث في كل منطقتك                 ####
//#####################################################################
snapshots = snapshots_result.Snapshots[0:20]

التوسع

أحد أسباب تصميم Dufflebag كتطبيق Elastic Beanstalk هو أنه يمكنك توسيع نطاق البرنامج تلقائيًا لأعلى أو لأسفل بسهولة. بشكل افتراضي، سيعمل على نسخة واحدة فقط وسيكون بطيئًا جدًا. ولكن إذا كنت ترغب في تسريعه قليلاً، فاضبط التوسع التلقائي في Elastic Beanstalk. الخيارات الكاملة لهذا خارج نطاق هذا المستند قليلاً، لذا سأتركك تجربها. لكن عمليًا، وجدت أن مشغل استخدام CPU البسيط يعمل بشكل جيد.

عند إعداد البيئة أعلاه، ستجد الخيارات تحت زر Configure more options (بدلاً من الضغط على Create environment) ثم اضغط على Scaling.

Scaling

الحصول على الغنائم

ستقوم Dufflebag بنسخ أي ملفات مثيرة للاهتمام إلى حاوية S3 التي أنشأتها سابقًا. (تقنيًا، ستستخدم Dufflebag أول حاوية S3 تجد اسمها يبدأ بـ "dufflebag".)

يمكنك فقط مشاهدة الملفات تدخل واحدة تلو الأخرى في حاوية S3 الخاصة بك. سيتم تسميتها:

originalfilename_blake3sum_volumeid

التحقق من الحالة

إذا كان كل شيء يسير على ما يرام، فلا يجب أن تحتاج إلى قراءة السجلات. لكن فقط في حالة، يسمح Elastic Beanstalk للتطبيقات بالكتابة إلى ملفات السجلات أثناء تشغيلها، ويتم التقاطها عن طريق الانتقال إلى علامة التبويب Logs. ثم اضغط على Request Logs و Last 100 Lines. ستحصل على أحدث دفعة من سجلات Dufflebag. اضغط على زر Download لقراءتها. سيحتوي هذا الملف على مجموعة من سجلات النظام الأخرى، لكن جزء Dufflebag موجود تحت "/var/log/web-1.log" في الأعلى.

من أجل رؤية تاريخ السجل الكامل، حدد Full Logs بدلاً من Last 100 Lines. (لاحظ أن EB سيقوم بتدوير السجلات بعيدًا بشكل عدواني افتراضيًا)

بالإضافة إلى ذلك، يمكنك الحصول على فكرة عن التقدم الإجمالي من خلال النظر في قائمة انتظار SQS للبيئة. تستخدم بيئات عمل Elastic Beanstalk SQS لإدارة سير العمل. كل رسالة في قائمة الانتظار لـ Dufflebag تمثل حجم EBS للمعالجة:

Code Origins

يظهر عمود Messages Available عدد الأحجام التي لم تتم معالجتها بعد. يظهر عمود Messages in Flight عدد الأحجام التي تتم معالجتها الآن.

ضبط ما تبحث عنه

تم برمجة Dufflebag للبحث عن الأشياء التي اعتقدنا أنها من المرجح أن تكون "مثيرة للاهتمام". المفاتيح الخاصة، كلمات المرور، مفاتيح AWS، إلخ... ولكن ماذا لو كنت تريد حقًا البحث عن شيء محدد لك؟ مثلاً، ربما تعمل في bank.com وتود معرفة ما هو موجود هناك الذي يشير إلى bank.com.

سيتطلب ذلك قدرًا بسيطًا من التعديل على كود Dufflebag، لكن ليس كثيرًا. لا تقلق! المنطق الخاص بما تبحث عنه يحدث في inspector.go. وظيفة pilfer() هي goroutine تتعامل مع فحص ملف. قد يبدو الكود هناك مخيفًا قليلاً في البداية، لكن إليك ما يفعله. (وكيف يمكنك تعديله دون صعوبة كبيرة)

قوائم الحظر لأسماء الملفات:

  1. التحقق من اسم الملف مقابل قائمة الحظر. (blacklist_exact)
  2. التحقق من اسم الملف مقابل قائمة حظر "يحتوي على". (رفض الملف إذا كان يحتوي على سلسلة معينة) (blacklist_contains)
  3. التحقق من اسم الملف مقابل قائمة حظر البادئة. (رفض الملف إذا بدأ بسلسلة معينة) (blacklist_prefix)

يمكنك تعديل منطق البحث هنا بسهولة عن طريق تغيير ما هو موجود في هذه القوائم الثلاثة. على الرغم من أنني أوصي عمومًا بتركها كما هي. تم تصميم قوائم الحظر هذه لتغطية الملفات المملة الموجودة في العديد من أنظمة الملفات وتمنع Dufflebag من الحاجة إلى فحص كل ملف على جميع AWS بعمق. قد تكون البيانات الحساسة التي تبحث عنها في تلك الملفات... لكن على الأرجح لا.

قائمة السماح لأسماء الملفات:

  1. تتحقق وظيفة IsSensitiveFileName() من اسم الملف مقابل تعبير عادي يجد أسماء الملفات الحساسة. (مثل /etc/shadow، bash_history، إلخ...)

محتويات الملف:

  1. تتحقق وظيفة checkContentsRegex() من محتويات الملف مقابل مجموعة من التعبيرات العادية. (وسيطة إدخال الملف هي سطرًا بسطر، لذا فإن الإدخال لهذه الوظيفة هو سطر واحد من ملف، وليس الملف بأكمله.) لذا للبحث عن كلمات رئيسية متعلقة بمؤسستك، فقط قم بتغيير التعبيرات العادية داخل checkContentsRegex().
تنزيل الأداة