
Técnicas de Phishing XLL
Com o recente anúncio da Microsoft sobre o bloqueio de macros em documentos originados da internet (e-mail E download da web), os atacantes começaram a explorar agressivamente outras opções para obter acesso orientado pelo usuário (UDA). Existem várias considerações a serem ponderadas e equilibradas ao buscar um método viável de phishing para acesso:
Estas são as principais questões, mas certamente há mais. As coisas se tornam mais complexas à medida que você percebe que esses fatores se agravam mutuamente; por exemplo, se um cliente possui um proxy web que proíbe o download de executáveis ou DLLs, você pode precisar colocar seu payload dentro de um contêiner (ZIP, ISO, etc.). Fazer isso pode apresentar mais problemas no futuro quando se trata de detecção. Defesas mais robustas exigem combinações mais complexas de técnicas para serem derrotadas.
Este artigo será escrito tendo em mente uma organização alvo fictícia; esta organização empregou várias medidas defensivas, incluindo regras de filtragem de e-mail, bloqueio de certos tipos de arquivo de serem baixados, lista de permissões de aplicativos em endpoints e Microsoft Defender for Endpoint como solução EDR.
Organizações reais podem não empregar nenhuma dessas, algumas, ou até mais defesas, o que pode simplificar ou complicar as técnicas descritas nesta pesquisa. Como sempre, conheça seu alvo.
XLLs são DLLs, especificamente criadas para o Microsoft Excel. Para olhos não treinados, elas se parecem muito com documentos normais do Excel.

XLLs fornecem uma opção muito atraente para UDA, já que são executadas pelo Microsoft Excel, um software muito comum em redes de clientes; como bônus adicional, como são executadas pelo Excel, nosso payload quase certamente contornará as regras de lista de permissões de aplicativos porque um aplicativo confiável (Excel) o está executando. XLLs podem ser escritas em C, C++ ou C#, o que proporciona muito mais flexibilidade e poder (e sanidade) do que macros VBA, o que as torna ainda mais desejáveis.
A desvantagem, é claro, é que existem muito poucos usos legítimos para XLLs, então DEVERIA ser uma caixa muito fácil de marcar para as organizações bloquearem o download dessa extensão de arquivo tanto por e-mail quanto por download da web. Infelizmente, muitas organizações estão anos atrasadas e, como resultado, as XLLs continuam sendo um método viável de phishing por algum tempo.
Há uma série de eventos diferentes que podem ser usados para executar código dentro de uma XLL, o mais notável dos quais é xlAutoOpen. A lista completa pode ser vista aqui:

Ao clicar duas vezes em uma XLL, o usuário é recebido por esta tela:

Esta única caixa de diálogo é tudo o que separa o usuário da execução de código; com engenharia social bastante sutil, a execução de código é praticamente garantida.
Algo que deve ser lembrado é que as XLLs, sendo executáveis, são específicas da arquitetura. Isso significa que você deve conhecer seu alvo; a versão do Microsoft Office/Excel que a organização alvo utiliza (geralmente) ditará para qual arquitetura você precisa construir seu payload.
Há uma divisão bastante clara nas versões do Office que pode ser usada como regra prática:
Office 2016 ou anterior: x86
Office 2019 ou posterior: x64
Deve-se notar que é possível instalar a outra arquitetura para cada produto, no entanto essas são as arquiteturas padrão instaladas e, na maioria dos casos, essa deve ser uma maneira confiável de decidir para qual arquitetura preparar sua XLL. É claro que, dependendo do método de entrega e do pretexto usado na campanha de phishing, é possível fornecer ambas as versões e contar com a vítima para selecionar a versão apropriada para seu sistema.
O payload XLL que foi construído durante esta pesquisa foi baseado neste projeto de edparcell. O repositório dele tem boas instruções sobre como começar com XLLs no Visual Studio, e usei o código dele como ponto de partida para desenvolver um arquivo XLL malicioso.
Um desvio notável do repositório dele é que, caso você queira criar seu próprio projeto XLL, precisará baixar o SDK mais recente do Excel e depois seguir as instruções do repositório vinculado usando esta versão, em vez da versão 2010 do SDK mencionada no README.
A entrega do payload é uma consideração séria no contexto de UDA. Existem dois métodos principais nos quais vamos focar:
Seja anexando um arquivo ou incluindo um link para um site onde um arquivo pode ser baixado, o e-mail é uma parte crítica do processo de UDA. Ao longo dos anos, muitas organizações (e provedores de e-mail) amadureceram e impuseram regras para proteger usuários e organizações contra anexos maliciosos. O resultado varia, mas as organizações agora têm a capacidade de:
Fuzzer as regras de e-mail de uma organização pode ser uma parte importante de um engajamento, no entanto, deve-se sempre ter cuidado para não revelar que uma operação de Red Team está em andamento e que informações estão sendo ativamente coletadas.
Para os fins deste artigo, será assumido que a organização alvo possui regras robustas de anexos de e-mail que impedem a entrega de um payload XLL. Vamos mudar e analisar a entrega pela web.
O e-mail ainda será usado neste vetor de ataque, no entanto, em vez de enviar um anexo, ele será usado para enviar um link para um site. As regras de proxy web e mitigações de rede que controlam os tipos de arquivo permitidos para download podem diferir daquelas aplicadas em relação a anexos de e-mail. Para os fins deste artigo, assume-se que a organização impede o download de arquivos executáveis (cabeçalhos MZ) da web. Sendo este o caso, vale a pena explorar empacotadores/contêineres.
A premissa é que podemos colocar nosso executável dentro de outro tipo de arquivo e contrabandeá-lo pelas políticas da organização. Uma consideração importante aqui é o suporte nativo ao tipo de arquivo; arquivos 7Z, por exemplo, não podem ser abertos pelo Windows sem instalar software de terceiros, então não são uma boa escolha. Formatos como ZIP, ISO e IMG são escolhas atraentes porque são suportados nativamente pelo Windows e, como bônus adicional, adicionam muito poucos passos extras para a vítima.