Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
frameless-bitb — نهج جديد لـ Browser In The Browser (BITB) دون استخدام iframes، مما يتيح تجاوز أدوات منع الإطارات التقليدية التي تنفذها صفحات تسجيل الدخول مثل Microsoft وإمكانية الاستخدام مع Evilginx. | Kitploit
أدوات/GitHubGitHub/waelmas/frameless-bitb
أدوات التصيدالتهرب من IDS/IPSاستغلال تطبيقات الويبالتصيد الاحتياليالهندسة الاجتماعيةالتعلم والتعليم
GitHubwaelmas/frameless-bitb

frameless-bitb

نهج جديد لـ Browser In The Browser (BITB) دون استخدام iframes، مما يتيح تجاوز أدوات منع الإطارات التقليدية التي تنفذها صفحات تسجيل الدخول مثل Microsoft وإمكانية الاستخدام مع Evilginx.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

BITB بدون إطار

نهج جديد لمفهوم "متصفح داخل المتصفح" (BITB) دون استخدام iframes، مما يسمح بتجاوز أدوات كسر الإطارات التقليدية التي تنفذها صفحات تسجيل الدخول مثل Microsoft.

تم تصميم كود الإثبات هذا لاستخدام تقنية BITB الجديدة مع Evilginx، وقالب تسجيل دخول (phishlet) خاص بـ Microsoft Enterprise.

Frameless-BITB-DEMO-compressed

قبل الغوص في الموضوع، أوصيك بمشاهدة محاضرتي في BSides 2023، حيث قدمت هذا المفهوم لأول مرة مع تفاصيل مهمة حول كيفية صياغة هجوم التصيد "المثالي". ▶ شاهد الفيديو

☕︎ اشترِ لي قهوة

دروس فيديو: 👇

إخلاء مسؤولية

هذه الأداة مخصصة للأغراض التعليمية والبحثية فقط. تقدم طريقة "متصفح داخل المتصفح" (BITB) غير قائمة على iframe. ليس المؤلف مسؤولاً عن أي استخدام خاطئ. استخدم هذه الأداة فقط بشكل قانوني وأخلاقي، في بيئات خاضعة للرقابة لاختبار الدفاعات السيبرانية. باستخدامك لهذه الأداة، فإنك توافق على استخدامها بمسؤولية وعلى مسؤوليتك الخاصة.

القصة من وراء الأداة - لماذا؟

على مدار العام الماضي، كنت أجرب حيلاً مختلفة لصياغة هجوم التصيد "المثالي". "الأعلام الحمراء" النموذجية التي يدرب الناس على البحث عنها هي أشياء مثل الاستعجال والتهديدات والسلطة والأخطاء اللغوية، إلخ. الشيء التالي الذي يفحصه الناس هذه الأيام هو الرابط/عنوان URL للموقع الذي يتفاعلون معه، ويميلون إلى الحذر الشديد في اللحظة التي يُطلب منهم فيها إدخال بيانات حساسة مثل البريد الإلكتروني وكلمات المرور.

وهنا ظهر مفهوم "متصفح داخل المتصفح" (BITB). قدمه @mrd0x في الأصل، وهو مفهوم يخلق مظهر نافذة متصفح قابلة للتصديق يتحكم المهاجم في محتواها (عن طريق تقديم الموقع الخبيث داخل iframe). ومع ذلك، يتم تعيين شريط URL المزيف لنافذة المتصفح المزيفة إلى الموقع الشرعي الذي يتوقعه المستخدم. هذا مع أداة مثل Evilginx يصبح وصفة مثالية لهجوم تصيد مقنع.

المشكلة أنه على مدى الأشهر/السنوات الماضية، قامت مواقع رئيسية مثل Microsoft بتنفيذ حيل صغيرة متنوعة تسمى "framebusters/framekillers" والتي تهدف بشكل أساسي إلى كسر الإطارات iframe التي قد تُستخدم لتقديم الموقع الوكيل (proxied) كما هو الحال مع Evilginx.

باختصار، لم يعد Evilginx + BITB يعمل للمواقع مثل Microsoft. على الأقل ليس مع BITB الذي يعتمد على iframes.

ما هي الأداة؟

متصفح داخل المتصفح (BITB) بدون أي iframes! بهذه البساطة.

مما يعني أنه يمكننا الآن استخدام BITB مع Evilginx على مواقع مثل Microsoft.

Evilginx هنا مجرد مثال قوي، لكن نفس المفهوم يمكن استخدامه لحالات استخدام أخرى أيضاً.

كيف تعمل؟

تستهدف أدوات كسر الإطارات (framebusters) الـ iframes تحديداً، لذا الفكرة هي إنشاء تأثير BITB دون استخدام iframes، ودون تعطيل البنية/المحتوى الأصلي للصفحة الموكلة (proxied). يمكن تحقيق ذلك عن طريق حقن نصوص (scripts) وأكواد HTML بجانب المحتوى الأصلي باستخدام البحث والاستبدال (المعروف بـ substitutions)، ثم الاعتماد كلياً على حيل HTML/CSS/JS لجعل التأثير البصري. نستخدم أيضاً خدعة إضافية تسمى "Shadow DOM" في HTML لوضع محتوى الصفحة المقصودة (الخلفية) بطريقة لا تتداخل مع المحتوى الموكَل، مما يسمح لنا باستخدام أي صفحة مقصودة بمرونة مع نصوص JS إضافية بسيطة.

التعليمات

فيديو تعليمي

صورة مصغرة مع مشغل YouTube

https://youtu.be/luJjxpEwVHI

الجهاز المحلي (Local VM):

قم بإنشاء جهاز افتراضي Linux محلي. (أنا شخصياً أستخدم Ubuntu 22 على VMWare Player أو Parallels Desktop)

قم بتحديث وترقية حزم النظام:

sudo apt update && sudo apt upgrade -y

إعداد Evilginx:

اختياري:

إنشاء مستخدم جديد لـ Evilginx، وإضافة المستخدم إلى مجموعة sudo:

sudo su

adduser evilginx

usermod -aG sudo evilginx

تأكد أن مستخدم evilginx ضمن مجموعة sudo:

su - evilginx

sudo ls -la /root

انتقل إلى المجلد الرئيسي للمستخدم:

cd /home/evilginx

(يمكنك فعل كل شيء كمستخدم sudo أيضاً لأننا نشغل كل شيء محلياً)

إعداد Evilginx

تحميل وبناء Evilginx: الوثائق الرسمية

انسخ ملفات Evilginx إلى /home/evilginx

تثبيت Go: الوثائق الرسمية

wget https://go.dev/dl/go1.21.4.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz
nano ~/.profile

أضف: export PATH=$PATH:/usr/local/go/bin

source ~/.profile

تحقق:

go version

تثبيت make:

sudo apt install make

بناء Evilginx:

cd /home/evilginx/evilginx2
make

أنشئ مجلداً جديداً لبناء Evilginx الخاص بنا مع phishlets و redirectors:

mkdir /home/evilginx/evilginx

انسخ البناء و phishlets و redirectors:

cp /home/evilginx/evilginx2/build/evilginx /home/evilginx/evilginx/evilginx

cp -r /home/evilginx/evilginx2/redirectors /home/evilginx/evilginx/redirectors

cp -r /home/evilginx/evilginx2/phishlets /home/evilginx/evilginx/phishlets

إصلاح سريع لجدار الحماية في Ubuntu (شكراً لـ @kgretzky)

sudo setcap CAP_NET_BIND_SERVICE=+eip /home/evilginx/evilginx/evilginx

في Ubuntu، إذا ظهر لك الخطأ Failed to start nameserver on: :53، حاول تعديل هذا الملف

sudo nano /etc/systemd/resolved.conf

قم بتعديل/إضافة DNSStubListener إلى no > DNSStubListener=no

ثم

sudo systemctl restart systemd-resolved

تعديل إعدادات Evilginx:

بما أننا سنستخدم Apache2 أمام Evilginx، نحتاج إلى جعل Evilginx يستمع لمنفذ مختلف عن 443.

nano ~/.evilginx/config.json

غيّر https_port من 443 إلى 8443

تثبيت Apache2 وتفعيل الوحدات (Mods):

تثبيت Apache2:

sudo apt install apache2 -y

تفعيل وحدات Apache2 التي سيتم استخدامها: (سنقوم أيضاً بتعطيل وحدة access_compat لأنها تسبب مشاكل أحياناً)

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
sudo a2enmod env
sudo a2enmod include
sudo a2enmod setenvif
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo a2enmod cache
sudo a2enmod substitute
sudo a2enmod headers
sudo a2enmod rewrite
sudo a2dismod access_compat

شغّل وفعّل Apache:

sudo systemctl start apache2
sudo systemctl enable apache2

جرب إن كان Apache وشبكة VM يعملان بزيارة عنوان IP الخاص بـ VM من متصفح على الجهاز المضيف.

استنساخ هذا المستودع (Repo):

تثبيت git إن لم يكن موجوداً:

sudo apt -y install git

استنساخ هذا المستودع:

git clone https://github.com/waelmas/frameless-bitb
cd frameless-bitb

الصفحات المخصصة في Apache:

أنشئ مجلدات للصفحات التي سنقدمها:

  • home: (اختياري) الصفحة الرئيسية (على النطاق الأساسي)
  • primary: الصفحة المقصودة (الخلفية)
  • secondary: نافذة BITB (المقدمة)
sudo mkdir /var/www/home
sudo mkdir /var/www/primary
sudo mkdir /var/www/secondary

انسخ مجلدات كل صفحة:

sudo cp -r ./pages/home/ /var/www/
sudo cp -r ./pages/primary/ /var/www/
sudo cp -r ./pages/secondary/ /var/www/

اختياري: حذف صفحة Apache الافتراضية (غير مستخدمة):

sudo rm -r /var/www/html/

انسخ قالب O365 phishlet إلى مجلد phishlets:

sudo cp ./O365.yaml /home/evilginx/evilginx/phishlets/O365.yaml

اختياري: لتعيين عنصر واجهة Calendly لاستخدام حسابك بدلاً من الافتراضي الموجود لدي، اذهب إلى pages/primary/script.js وغيّر CALENDLY_PAGE_NAME و CALENDLY_EVENT_TYPE.

ملاحظة حول التعتيم التجريبي: كما شرحت في فيديو الشرح، قمت بتضمين تعتيم بسيط للمحتوى النصي مثل عناوين URL وعناوين BITB. يمكنك فتح أداة التعتيم التجريبي بفتح demo-obfuscator.html في متصفحك. في السيناريو الحقيقي، أوصي بشدة بتعتيم أجزاء أكبر من كود HTML المحقون أو استخدام حيل JS لتجنب الاكتشاف والإبلاغ. النسخة المتقدمة التي أعمل عليها ستستخدم مزيجاً من الحيل المتقدمة لجعل من المستحيل تقريباً للماسحات الضوئية التعرف على كود BITB أو اكتشافه، تابعونا.

شهادات SSL ذاتية التوقيع:

بما أننا نشغل كل شيء محلياً، نحتاج إلى إنشاء شهادات SSL ذاتية التوقيع سيستخدمها Apache. لن يحتاج Evilginx إلى الشهادات لأننا سنشغله في وضع المطور.

سنستخدم النطاق fake.com والذي سيشير إلى VM المحلي. إذا كنت تريد استخدام نطاق مختلف، تأكد من تغييره في جميع الملفات (ملفات إعدادات Apache، ملفات JS، إلخ.)

أنشئ المجلد والمجلدات الأم إن لم تكن موجودة:

تنزيل الأداة