
شبكة عصبية تلافيفية لتحليل لقطات شاشة اختبار الاختراق

ألق نظرة سريعة على لقطات الشاشة الخاصة بك.
إيبولر مصمم لاختبارات اختراق الشبكات واسعة النطاق حيث تحتاج إلى العثور على أهداف "مثيرة للاهتمام" من مجموعة ضخمة من المضيفات المستندة إلى الويب. استخدم أداة التصوير المفضلة لديك كالمعتاد (EyeWitness أو GoWitness) ثم قم بتشغيلها من خلال إيبولر ليخبرك بما يحتمل أن يحتوي على ثغرات وما لا يحتوي عليها.
جربها مباشرة على: https://eyeballer.bishopfox.com
| مواقع قديمة المظهر | صفحات تسجيل الدخول |
|---|---|
![]() | ![]() |
| تطبيق ويب | صفحات 404 مخصصة |
|---|---|
![]() | ![]() |
| نطاقات متوقفة |
|---|
![]() |
مواقع قديمة المظهر إطارات مربعة، CSS مكسور، ذلك "الشيء الذي لا يمكنك وصفه" لموقع ويب يبدو وكأنه صمم في أوائل العقد الأول من القرن الحادي والعشرين. أنت تعرفه عندما تراه. المواقع القديمة ليست قبيحة فحسب، بل عادة ما تكون ضعيفة جدًا أيضًا. عندما تحاول اختراق شيء ما، فإن هذه المواقع تعتبر منجم ذهب.
صفحات تسجيل الدخول صفحات تسجيل الدخول ذات قيمة لاختبار الاختراق، فهي تشير إلى وجود وظائف إضافية لا تملك الوصول إليها حاليًا. كما تعني أيضًا وجود عملية متابعة بسيطة لهجمات تعداد بيانات الاعتماد. قد تظن أنه يمكنك وضع قاعدة إرشادية بسيطة للعثور على صفحات تسجيل الدخول، لكن من الناحية العملية يصعب ذلك جدًا. المواقع الحديثة لا تستخدم مجرد علامة إدخال بسيطة يمكننا البحث عنها باستخدام grep.
تطبيق ويب يخبرك هذا بوجود مجموعة أكبر من الصفحات والوظائف المتاحة هنا يمكن أن تكون سطحًا للهجوم. وهذا على عكس صفحة تسجيل الدخول البسيطة التي لا تحتوي على وظائف أخرى. أو صفحة IIS الافتراضية التي لا تحتوي على أي وظائف أخرى. يجب أن يشير هذا التصنيف إلى وجود تطبيق ويب هنا للهجوم.
صفحات 404 مخصصة تحب المواقع الحديثة أن تحتوي على صفحات 404 مخصصة لطيفة مع صور لروبوتات مكسورة أو كلاب حزينة. لسوء الحظ، فإنها تحب أيضًا إرجاع رموز استجابة HTTP 200 أثناء القيام بذلك. في كثير من الأحيان، لا تحتوي صفحة "404" حتى على النص "404" فيها. هذه الصفحات عادة ما تكون غير مثيرة للاهتمام، على الرغم من وجود الكثير من العناصر البصرية فيها، ويمكن أن يساعدك إيبولر في غربلتها.
النطاقات المتوقفة النطاقات المتوقفة هي مواقع ويب تبدو حقيقية، لكنها ليست سطح هجوم صالح. إنها صفحات مؤقتة، عادة ما تكون خالية من أي وظائف حقيقية، وتتكون بالكامل تقريبًا من إعلانات، وعادة لا يديرها هدفنا الفعلي. هذا ما تحصل عليه عندما يكون النطاق المحدد خاطئًا أو منتهي الصلاحية. العثور على هذه الصفحات وإزالتها من النطاق ذو قيمة كبيرة بمرور الوقت.
قم بتنزيل الحزم المطلوبة باستخدام pip:
sudo pip3 install -r requirements.txt
أو إذا كنت تريد دعم GPU:
sudo pip3 install -r requirements-gpu.txt
ملاحظة: إعداد GPU للاستخدام مع TensorFlow يتجاوز بكثير نطاق ملف README هذا. هناك اعتبارات توافق الأجهزة، وبرامج تشغيل يجب تثبيتها... هناك الكثير. لذا سيتعين عليك معرفة هذا الجزء بنفسك إذا كنت تريد GPU. ولكن على الأقل من منظور حزم Python، فإن ملف المتطلبات أعلاه يغطيك.
الأوزان المدربة مسبقًا
للحصول على أحدث الأوزان المدربة مسبقًا، تحقق من الإصدارات على GitHub هنا.
بيانات التدريب يمكنك العثور على بيانات التدريب الخاصة بنا هنا:
https://www.kaggle.com/altf42600/pentest-screensots
هناك شيئان تحتاجهما من بيانات التدريب:
images/، الذي يحتوي على جميع لقطات الشاشة (تم تغيير حجمها إلى 224x224)labels.csv الذي يحتوي على جميع التصنيفاتانسخ كليهما إلى جذر شجرة كود إيبولر.
بالإضافة إلى ذلك، يمكنك العثور على ملف أوزان مدربة مسبقًا يمكنك استخدامه فورًا دون تدريب.
bishop-fox-pretrained-vN.h5موجود هنا على GitHub، ابحث في قسم releases عن أحدث إصدار.
ملاحظة: للحصول على أفضل النتائج، تأكد من التقاط لقطة شاشة لمواقع الويب الخاصة بك بنسبة عرض إلى ارتفاع أصلية تبلغ 1.6x. على سبيل المثال: 1440x900. سيقوم إيبولر تلقائيًا بقياس الصورة إلى الحجم الصحيح لك، ولكن إذا كانت نسبة العرض إلى الارتفاع خاطئة، فسوف تتقلص بطريقة تؤثر على أداء التوقع.
لتقييم بعض لقطات الشاشة، ما عليك سوى تشغيل وضع "predict":
eyeballer.py --weights YOUR_WEIGHTS.h5 predict YOUR_FILE.png
أو لمجلد كامل من الملفات:
eyeballer.py --weights YOUR_WEIGHTS.h5 predict PATH_TO/YOUR_FILES/
سيعيد إيبولر النتائج إليك بتنسيق قابل للقراءة البشرية (ملف results.html لتتمكن من تصفحه بسهولة) وتنسيق قابل للقراءة الآلية (ملف results.csv).
يتم قياس أداء إيبولر مقابل مجموعة بيانات تقييم، وهي 20% من إجمالي لقطات الشاشة المختارة عشوائيًا. نظرًا لأن لقطات الشاشة هذه لا تُستخدم أبدًا في التدريب، فإنها يمكن أن تكون وسيلة فعالة لمعرفة مدى جودة أداء النموذج. إليك أحدث النتائج:
| الدقة الثنائية الإجمالية | 93.52% |
|---|---|
| الدقة الكل أو لا شيء | 76.09% |
الدقة الثنائية الإجمالية هي على الأرجح ما تعتقده بأنه "دقة" النموذج. إنها احتمالية أن يكون أي تصنيف واحد صحيحًا.
الدقة الكل أو لا شيء أكثر صرامة. بالنسبة لهذا، نأخذ في الاعتبار جميع تصنيفات الصورة ونعتبرها فاشلة إذا كان أي تصنيف خاطئ. هذا التقييم هو احتمالية أن يتنبأ النموذج بشكل صحيح بجميع التصنيفات لأي صورة معينة.
للحصول على شرح مفصل حول الدقة مقابل الاستدعاء، راجع ويكيبيديا.
لتدريب نموذج جديد، قم بتشغيل:
eyeballer.py train
ستحتاج إلى جهاز مزود ب GPU جيد لتشغيل هذا في وقت معقول. إعداد ذلك خارج نطاق ملف readme هذا.
سيؤدي ذلك إلى إخراج ملف نموذج جديد (weights.h5 بشكل افتراضي).
لقد قمت للتو بتدريب نموذج جديد، رائع! دعنا نرى مدى أدائه مقابل بعض الصور التي لم يرها من قبل، عبر مجموعة متنوعة من المقاييس:
eyeballer.py --weights YOUR_WEIGHTS.h5 evaluate
سيصف المخرجات دقة النموذج من حيث الاستدعاء والدقة لكل تصنيف من تصنيفات البرنامج. (بما في ذلك "لا شيء مما سبق" كتصنيف زائف)
| التصنيف | الدقة (Precision) | الاستدعاء (Recall) |
|---|
| 404 مخصص | 80.20% | 91.01% |
| صفحة تسجيل دخول | 86.41% | 88.47% |
| تطبيق ويب | 95.32% | 96.83% |
| قديم المظهر | 91.70% | 62.20% |
| نطاق متوقف | 70.99% | 66.43% |