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

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

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.

عرض المستودع
4557345منذ 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)

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

root@kitploit:~
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: الوثائق الرسمية

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

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

root@kitploit:~
source ~/.profile

تحقق:

root@kitploit:~
go version

تثبيت make:

root@kitploit:~
sudo apt install make

بناء Evilginx:

root@kitploit:~
cd /home/evilginx/evilginx2
root@kitploit:~
make

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

root@kitploit:~
mkdir /home/evilginx/evilginx

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

root@kitploit:~
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)

root@kitploit:~
sudo setcap CAP_NET_BIND_SERVICE=+eip /home/evilginx/evilginx/evilginx

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

root@kitploit:~
sudo nano /etc/systemd/resolved.conf

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

ثم

root@kitploit:~
sudo systemctl restart systemd-resolved

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

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

root@kitploit:~
nano ~/.evilginx/config.json

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

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

تثبيت Apache2:

root@kitploit:~
sudo apt install apache2 -y

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

root@kitploit:~
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:

root@kitploit:~
sudo systemctl start apache2
root@kitploit:~
sudo systemctl enable apache2

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

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

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

root@kitploit:~
sudo apt -y install git

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

root@kitploit:~
git clone https://github.com/waelmas/frameless-bitb
root@kitploit:~
cd frameless-bitb

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

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

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

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

root@kitploit:~
sudo cp -r ./pages/home/ /var/www/
sudo cp -r ./pages/primary/ /var/www/
sudo cp -r ./pages/secondary/ /var/www/

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

root@kitploit:~
sudo rm -r /var/www/html/

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

root@kitploit:~
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، إلخ.)

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

root@kitploit:~
sudo mkdir -p /etc/ssl/localcerts/fake.com/

أنشئ شهادات SSL باستخدام ملف إعدادات OpenSSL:

root@kitploit:~
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/localcerts/fake.com/privkey.pem -out /etc/ssl/localcerts/fake.com/fullchain.pem \
-config openssl-local.cnf

تعديل صلاحيات المفتاح الخاص:

root@kitploit:~
sudo chmod 600 /etc/ssl/localcerts/fake.com/privkey.pem

إعدادات Apache المخصصة:

انسخ ملفات الاستبدال المخصصة (جوهر هذا النهج):

root@kitploit:~
sudo cp -r ./custom-subs /etc/apache2/custom-subs

ملاحظة مهمة: في هذا المستودع قمت بتضمين إعدادين للاستبدال: أحدهما لـ Chrome على Mac والآخر لـ Chrome على Windows BITB. كلاهما يحتوي على اكتشاف تلقائي وتنسيق للوضع الفاتح/الداكن ويجب أن يكونا قوالب أساسية لتحقيق نفس الشيء لمتصفحات/أنظمة تشغيل أخرى. نظراً لأنني لم أقم بتضمين اكتشاف تلقائي لمجموعة المتصفح/نظام التشغيل المستخدمة لزيارة صفحة التصيد، سيتعين عليك استخدام واحد من الاثنين أو تنفيذ منطقك الخاص للتبديل التلقائي.

كلا ملفي الإعدادات تحت /apache-configs/ متماثلان، مع اختلاف توجيه Include المستخدم لملف الاستبدال الذي سيتم تضمينه. (يوجد مرجعان لكل ملف)

root@kitploit:~
# قم بإلغاء تعليق الملف الذي تريده وتذكر إعادة تشغيل Apache بعد أي تغييرات:
#Include /etc/apache2/custom-subs/win-chrome.conf
Include /etc/apache2/custom-subs/mac-chrome.conf

لجعل الأمر أسهل، قمت بتضمين كلا النسختين كملفين منفصلين لهذه الخطوة التالية.

Windows/Chrome BITB:

root@kitploit:~
sudo cp ./apache-configs/win-chrome-bitb.conf /etc/apache2/sites-enabled/000-default.conf

Mac/Chrome BITB:

root@kitploit:~
sudo cp ./apache-configs/mac-chrome-bitb.conf /etc/apache2/sites-enabled/000-default.conf

اختبر إعدادات Apache للتأكد من عدم وجود أخطاء:

root@kitploit:~
sudo apache2ctl configtest

أعد تشغيل Apache لتطبيق التغييرات:

root@kitploit:~
sudo systemctl restart apache2

تعديل ملف الـ Hosts:

احصل على عنوان IP الخاص بـ VM باستخدام ifconfig ودونه لمكان لاستخدامه في الخطوة التالية.

نحتاج الآن إلى إضافة إدخالات جديدة لملف hosts لدينا، لتوجيه النطاق المستخدم في هذا العرض fake.com وجميع النطاقات الفرعية المستخدمة إلى VM الذي يعمل عليه Apache و Evilginx.

على Windows:

افتح Notepad كمسؤول (ابدأ > Notepad > زر يمين > تشغيل كمسؤول)

انقر على خيار File (أعلى اليسار) وفي شريط عنوان مستكشف الملفات، انسخ والصق ما يلي:

C:\Windows\System32\drivers\etc\

غيّر نوع الملفات (أسفل اليمين) إلى "All files".

انقر نقراً مزدوجاً على الملف المسمى hosts

على Mac:

افتح terminal وشغّل الأمر التالي:

root@kitploit:~
sudo nano /private/etc/hosts

الآن قم بتعديل السجلات التالية (استبدل [IP] بعنوان IP الخاص بـ VM) ثم الصق السجلات في نهاية ملف hosts:

root@kitploit:~
# إعداد Apache و Evilginx المحلي
[IP] login.fake.com
[IP] account.fake.com
[IP] sso.fake.com
[IP] www.fake.com
[IP] portal.fake.com
[IP] fake.com
# نهاية القسم

احفظ واخرج.

أعد تشغيل متصفحك قبل الانتقال إلى الخطوة التالية.

ملاحظة: على Mac، استخدم الأمر التالي لمسح ذاكرة التخزين المؤقت DNS:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

ملاحظة مهمة:

تم بناء هذا العرض مع قالب Office 365 Enterprise phishlet المقدم. للحصول على إدخالات المضيف التي تحتاج إلى إضافتها لقالب phishlet مختلف، استخدم phishlet get-hosts [PHISHLET_NAME] لكن تذكر استبدال 127.0.0.1 بعنوان IP المحلي الفعلي لـ VM الخاص بك.

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

بما أننا نستخدم شهادات SSL ذاتية التوقيع، سيحذرك متصفحنا في كل مرة نحاول فيها زيارة fake.com لذا نحتاج إلى جعل جهاز المضيف يثق في المرجع المصدق (CA) الذي وقع شهادات SSL.

لهذه الخطوة، من الأسهل متابعة تعليمات الفيديو، لكن إليك الخلاصة على أي حال.

افتح https://fake.com/ في متصفح Chrome.

تجاهل تحذير الموقع غير الآمن وانتقل إلى الصفحة.

انقر على أيقونة SSL > Details > Export Certificate هام: عند الحفظ، يجب أن ينتهي الاسم بـ .crt لكي يفتحه Windows بشكل صحيح.

انقر نقراً مزدوجاً عليه > install for current user. لا تختر التلقائي، بدلاً من ذلك ضع الشهادة في متجر محدد: اختر "Trusted Route Certification Authorities".

على Mac: لتثبيت المستخدم الحالي فقط > اختر "Keychain: login" و انقر على "View Certificates" > details > trust > Always trust

الآن قم بإعادة تشغيل المتصفح

يجب أن تكون قادراً على زيارة https://fake.com الآن ورؤية الصفحة الرئيسية دون أي تحذيرات SSL.

تشغيل Evilginx:

في هذه المرحلة، يجب أن يكون كل شيء جاهزاً لذا يمكننا المضي قدماً وتشغيل Evilginx، وإعداد القالب phishlet، وإنشاء الطعم (lure)، واختباره.

اختياري: تثبيت tmux (لإبقاء Evilginx قيد التشغيل حتى لو تم إغلاق جلسة الطرفية. مفيد بشكل أساسي عند التشغيل على VM بعيد.)

root@kitploit:~
sudo apt install tmux -y

شغّل Evilginx في وضع المطور (باستخدام tmux لتجنب فقدان الجلسة):

root@kitploit:~
tmux new-session -s evilginx
root@kitploit:~
cd ~/evilginx/
root@kitploit:~
./evilginx -developer

(لإعادة الاتصال بجلسة tmux استخدم tmux attach-session -t evilginx)

إعدادات Evilginx:

root@kitploit:~
config domain fake.com
root@kitploit:~
config ipv4 127.0.0.1

هام: اضبط وضع القائمة السوداء (Blacklist) في Evilginx على NoAdd لتجنب إدراج Apache في القائمة السوداء، حيث أن جميع الطلبات ستأتي من Apache وليس من عنوان IP الزائر الفعلي.

root@kitploit:~
blacklist noadd

إعداد القالب phishlet والطعم:

root@kitploit:~
phishlets hostname O365 fake.com
root@kitploit:~
phishlets enable O365
root@kitploit:~
lures create O365
root@kitploit:~
lures get-url 0

انسخ رابط الطعم وقم بزيارته من متصفحك (استخدم مستخدم Guest على Chrome لتجنب الاضطرار لحذف جميع البيانات المخزنة/المحفوظة بين الاختبارات).

موارد مفيدة

نظام BITB الأصلي المعتمد على iframe من @mrd0x: https://github.com/mrd0x/BITB

دورة Evilginx Mastery من مبتكر Evilginx @kgretzky: https://academy.breakdev.org/evilginx-mastery

محاضرتي في BSides 2023: https://www.youtube.com/watch?v=p1opa2wnRvg

كيفية حماية Evilginx باستخدام Cloudflare وتعتيم HTML: https://www.jackphilipbutton.com/post/how-to-protect-evilginx-using-cloudflare-and-html-obfuscation

موارد Evilginx لـ Microsoft 365 من @BakkerJan: https://janbakker.tech/evilginx-resources-for-microsoft-365/

قائمة المهام (TODO)

  • إنشاء سكريبت(ات) لأتمتة معظم الخطوات
تنزيل الأداة