Ataque Plug and Pwn explora USB e RDP no Windows

Ataque Plug and Pwn explora USB e RDP no Windows

O ataque Plug and Pwn apresentado na DEF CON 34 mostrou que o mecanismo de instalação automática do Windows pode representar uma superfície de ataque muito mais ampla do que aparenta. Os pesquisadores Alejandro Hernando Sanz e Borja Martínez demonstraram como dispositivos USB especialmente emulados podem induzir o sistema operacional a seguir caminhos legítimos de Plug and Play (PnP) até chegar à execução de código com privilégios elevados.

A pesquisa chama atenção porque não depende necessariamente de um usuário clicar em um instalador ou executar manualmente um programa. A partir da identificação de um dispositivo, o Windows pode procurar componentes necessários para seu funcionamento e acionar mecanismos associados à instalação automática. Em determinados cenários, essa cadeia pode alcançar software de terceiros vulnerável e resultar em execução sob a conta NT AUTHORITY\SYSTEM, o nível de privilégio mais alto disponível no Windows.

O trabalho também amplia o problema para ambientes corporativos. Segundo os pesquisadores, o mesmo caminho de PnP pode ser acionado remotamente por meio do redirecionamento USB sobre RDP, criando um cenário no qual o atacante não precisa necessariamente conectar fisicamente um dispositivo ao computador-alvo.

Como funciona a mecânica do ataque Plug and Pwn

O Plug and Play existe para tornar a utilização de hardware transparente. Ao conectar um periférico, o Windows identifica características do dispositivo por meio de seus descritores e IDs, determina quais componentes são necessários e procura os drivers correspondentes.

Essa automação normalmente é uma vantagem. O problema aparece quando a confiança depositada nessa cadeia se estende a componentes de terceiros.

Um dos elementos analisados pelos pesquisadores são os co-instaladores, componentes associados a determinados pacotes de drivers capazes de executar tarefas adicionais durante o processo de instalação. Em vez de simplesmente disponibilizar um driver básico, um pacote pode incluir software complementar responsável por funcionalidades específicas do fabricante.

É justamente essa combinação entre identificação automática do hardware, busca de software e execução privilegiada de componentes que transforma o processo em uma superfície interessante para pesquisa ofensiva.

Os pesquisadores analisaram milhares de pacotes e encontraram casos de software assinado e distribuído por fabricantes que poderia ser alcançado por essa cadeia. O ponto central da pesquisa não é afirmar que todo driver ou dispositivo USB seja inseguro, mas demonstrar que a automação do PnP pode colocar componentes de terceiros em uma posição privilegiada dentro do sistema.

YVc2Gqk0 plug and pwn windows usb
Plug and Pwn Facedancer ataca emulando hardware da Sony e da Sierra.
Imagem: plugandpwn.com

O papel da emulação de hardware com FaceDancer e Linux

Para estudar esse comportamento, Hernando e Martínez recorreram à emulação de dispositivos USB, evitando a necessidade de possuir fisicamente todos os equipamentos que pretendiam testar.

É aí que entram projetos de hardware aberto como Cynthion, GreatFET e o software Facedancer. O Facedancer permite implementar dispositivos USB programaticamente e utilizar hardware compatível para apresentar ao computador-alvo diferentes identidades e comportamentos USB. A documentação do projeto demonstra, por exemplo, a possibilidade de emular dispositivos utilizando IDs de fabricante e produto específicos.

O Cynthion foi desenvolvido justamente como uma plataforma para análise, desenvolvimento e experimentação com USB. Com o firmware e as bibliotecas apropriadas, ele pode funcionar como uma plataforma de emulação, enquanto o Facedancer permite definir o comportamento do dispositivo por software.

O ecossistema também suporta diferentes plataformas. A documentação do Facedancer lista Cynthion, GreatFET e configurações baseadas em Raspberry Pi, entre outras opções. Em determinadas configurações, computadores Linux com suporte a USB gadget também podem participar desse tipo de experimentação.

Na prática, isso significa que o pesquisador consegue apresentar ao Windows um dispositivo que se comporta de maneira suficientemente semelhante a um periférico real para provocar o fluxo de instalação automática.

A cadeia de exploração física sem cliques

Na demonstração apresentada na DEF CON 34, os pesquisadores exploraram dispositivos associados a fabricantes como Sierra Wireless e Sony FeliCa para demonstrar como uma cadeia de instalação aparentemente legítima poderia ser transformada em um caminho para execução privilegiada.

O processo começa pela emulação do hardware. Em vez de conectar exatamente o equipamento esperado, o sistema recebe descritores USB que fazem o dispositivo parecer compatível com determinado hardware.

A partir daí, o Windows entra em seu fluxo normal de Plug and Play. O sistema identifica o dispositivo e tenta localizar os componentes necessários para sua utilização.

O problema surge quando o software obtido automaticamente contém uma cadeia de execução insegura. Na demonstração, os pesquisadores mostraram situações envolvendo alteração de resolução DNS, download não criptografado de componentes e execução de código, culminando em um shell reverso com privilégios SYSTEM.

É importante destacar que esse cenário depende das condições específicas encontradas nos pacotes analisados. Não significa que simplesmente conectar qualquer USB desconhecido a uma máquina Windows concederá automaticamente privilégios SYSTEM.

A relevância está em outra questão: um mecanismo criado para eliminar etapas manuais pode fazer com que o sistema operacional tome decisões privilegiadas em nome do usuário.

Esse modelo reduz drasticamente a necessidade de interação humana. Não é preciso convencer a vítima a executar um arquivo suspeito quando o próprio sistema operacional inicia parte da cadeia como consequência da detecção de um dispositivo.

Ataque Plug and Pwn remoto via RDP: o cenário NoPlug and Pwn

A parte mais interessante da pesquisa talvez seja a possibilidade de remover o requisito físico.

Em ambientes corporativos, o Remote Desktop Protocol (RDP) permite redirecionar determinados dispositivos e recursos do computador cliente para a sessão remota. Entre esses mecanismos está o redirecionamento de dispositivos Plug and Play.

Os pesquisadores demonstraram que essa funcionalidade pode ser utilizada para apresentar ao computador remoto um dispositivo USB virtual, fazendo com que o alvo percorra o mesmo tipo de fluxo PnP que seria provocado por um equipamento conectado localmente.

Esse cenário foi apresentado como “NoPlug and Pwn”: não há necessidade de conectar fisicamente o dispositivo USB ao computador atacado.

A pesquisa utilizou, entre outros exemplos, uma câmera Intel RealSense como dispositivo fantasma. A ideia é importante porque muda a percepção tradicional sobre ataques USB. O risco não está restrito a portas USB acessíveis fisicamente.

Em uma infraestrutura com RDP habilitado e políticas permissivas de redirecionamento, o próprio protocolo remoto pode se tornar o caminho pelo qual um dispositivo chega ao sistema operacional.

A Microsoft documenta uma política específica chamada “Do not allow supported Plug and Play device redirection”, associada ao valor de registro fDisablePNPRedir. Isso confirma que o redirecionamento PnP é uma funcionalidade configurável do Remote Desktop Services.

Flipper Zero vs. Raspberry Pi: o que funciona no ataque?

A pesquisa também ajuda a separar uma questão frequentemente confundida no universo de hardware hacking: possuir uma ferramenta capaz de interagir com USB não significa necessariamente conseguir reproduzir qualquer ataque baseado em emulação.

O Flipper Zero, apesar de oferecer diversos recursos de exploração e experimentação de hardware, não possui atualmente a combinação necessária para reproduzir integralmente esse cenário de emulação USB complexa.

O Raspberry Pi, por outro lado, pode assumir funções de USB gadget em modelos e configurações compatíveis. O próprio ecossistema Facedancer documenta suporte a configurações baseadas em Raspberry Pi e também aponta computadores Linux com suporte a gadgetfs como possíveis plataformas para emulação.

Isso não significa que um Raspberry Pi seja, por si só, uma ferramenta de exploração. O diferencial está na capacidade de controlar como o computador se apresenta ao host USB e reproduzir diferentes características de um dispositivo.

Para pesquisadores, essa flexibilidade é extremamente útil. Para administradores, entretanto, ela reforça uma conclusão importante: um dispositivo USB malicioso não precisa ter aparência ou funcionamento convencional para ser reconhecido pelo sistema operacional.

Como mitigar e proteger os sistemas contra o Plug and Pwn

A primeira medida é reduzir a confiança depositada na instalação automática de componentes de terceiros.

Uma das configurações diretamente relacionadas à pesquisa é a política DisableCoInstallers. Administradores podem configurar o valor correspondente no Windows para impedir a utilização de co-instaladores associados à instalação de dispositivos. Essa mudança deve ser avaliada em ambientes de produção porque pode afetar funcionalidades legítimas de determinados periféricos e softwares de fabricantes.

Também é importante revisar o redirecionamento de dispositivos Plug and Play no RDP. Em ambientes onde essa funcionalidade não é necessária, a política fDisablePNPRedir pode ser utilizada para bloqueá-la. A Microsoft identifica oficialmente essa configuração na política de Remote Desktop Services.

Outra camada importante é restringir quais IDs de hardware podem ser instalados. Políticas de instalação de dispositivos podem reduzir a capacidade de uma máquina corporativa aceitar hardware desconhecido ou não autorizado.

Para ambientes empresariais, uma estratégia de defesa mais completa deve incluir:

  • Bloqueio ou restrição de dispositivos USB não autorizados;
  • Controle de instalação de drivers por políticas corporativas;
  • Redução do uso de co-instaladores quando não forem necessários;
  • Desativação do redirecionamento PnP no RDP quando não houver necessidade operacional;
  • Aplicação de políticas de allowlist para hardware e drivers;
  • Monitoramento de instalação de novos dispositivos;
  • Auditoria de pacotes de drivers de terceiros;
  • Atualização contínua de Windows, drivers e softwares dos fabricantes;
  • Segmentação de estações administrativas e servidores críticos;
  • Monitoramento de processos iniciados durante instalações automáticas de dispositivos.

Também é recomendável tratar RDP como uma superfície de ataque, e não apenas como uma ferramenta de administração remota. Reduzir funcionalidades desnecessárias do protocolo pode diminuir caminhos inesperados até componentes privilegiados.

Visão geral e conclusões

O ataque Plug and Pwn apresentado na DEF CON 34 expõe uma característica cada vez mais importante da segurança moderna: mecanismos de conveniência também podem se transformar em superfícies de ataque.

O Plug and Play foi criado para que o usuário não precise conhecer detalhes de drivers, identificadores de hardware ou procedimentos de instalação. Entretanto, essa conveniência depende de uma cadeia de confiança que envolve o sistema operacional, fabricantes, pacotes de drivers e componentes adicionais.

A pesquisa de Alejandro Hernando Sanz e Borja Martínez demonstra que essa cadeia merece atenção especial. O trabalho analisou como dispositivos USB podem ser emulados e como o mesmo mecanismo pode ser alcançado remotamente por meio do RDP, ampliando o problema para ambientes onde não existe acesso físico direto ao computador.

Mais do que um alerta sobre USB, a pesquisa é um lembrete sobre privilégios automáticos. Quando um sistema operacional instala componentes e executa determinadas rotinas sem exigir uma confirmação explícita, uma vulnerabilidade em qualquer elo dessa cadeia pode ter consequências muito maiores.

Para administradores de sistemas Windows e Linux, a principal lição é simples: hardware também precisa fazer parte da estratégia de segurança corporativa. Restringir USB, controlar drivers, revisar políticas de RDP e eliminar recursos desnecessários pode reduzir significativamente a superfície disponível para ataques desse tipo.

A pesquisa também mostra por que projetos abertos como Facedancer, Cynthion e plataformas Linux são tão relevantes para a comunidade de segurança: eles permitem reproduzir comportamentos reais de hardware e descobrir problemas que dificilmente seriam identificados apenas por meio de testes convencionais.