
Os hackers exploram a credulidade e o descuido humanos há décadas. A maioria dos usuários, sem hesitação, abre um anexo de email inócuo, à primeira vista, e, sem saber, lança malware. Para se proteger de tais ataques, você precisa conhecer o inimigo pessoalmente. Hoje, tentaremos descobrir como as três novas técnicas de execução de código em aplicativos de escritório descobertas este ano são organizadas e que métodos de proteção contra elas existem.
Macros Xlm
Os especialistas do Outflank introduziram uma nova maneira de executar código no MS Office Excel por meio das chamadas macros XLM (para não confundir com XML). Embora a tecnologia macro XLM exista há mais de 26 anos (apareceu pela primeira vez no Excel 4.0 para Windows 3.0 / 3.1), ela ainda é suportada por todas as versões do Microsoft Office Excel até o Office 2016.
Para criar uma macro XLM no Excel, siga estas etapas:
No menu de contexto da planilha do Excel, selecione "Inserir".

Em seguida, selecione "MS Excel 4.0".

Como resultado, a planilha “Macro1” aparecerá, em qualquer célula da qual, usando a função “EXEC”, o processo desejado possa ser iniciado. Para executar automaticamente uma macro, a primeira célula deve ser renomeada para “Auto_open” (semelhante ao procedimento AutoOpen () nas macros do VBA).
Depois de abrir um documento salvo, uma notificação padrão aparece com uma solicitação para executar uma macro.

A folha de macro pode ser oculta selecionando "Ocultar" no menu de contexto.
Além da capacidade de iniciar processos, as macros XLM podem acessar a API do Win32 usando as funções REGISTER e CALL. A seguir, o código PoC para uma macro que implementa uma técnica de injeção de código de shell.

Ao mesmo tempo, a função de codificação CHAR é usada para armazenar os caracteres do código do shell dentro da célula de macro. Para remover bytes nulos, você pode usar o utilitário msfvenom, que faz parte do Metasploit Framework.
Pelo método de armazenamento em um arquivo do Excel, as macros XLM são significativamente diferentes das macros VBA clássicas que apareceram um ano depois no Excel 5.0. No novo formato .xlsm do Excel, que é um arquivo ZIP, as macros XLM são armazenadas em um arquivo XML no diretório de macrosheets. No formato .xsl (Excel 97-2003), a macro é armazenada dentro de um fluxo OLE.
Além disso, é visto que a macro VBA é armazenada em um contêiner separado (na figura à esquerda), enquanto as macros XLM estão localizadas no mesmo contêiner de dados.

Essas diferenças nos métodos de armazenamento de macros afetam significativamente a qualidade de sua detecção por antivírus, em particular a tecnologia AMSI (Antimalware Scanning Interface) não oferece suporte ao XLM, apesar do suporte reivindicado pelo Office 365.
Por exemplo, o código web_delivery do Metasploit powershell foi implementado no Excel usando macros VBA e XLM (nas figuras abaixo).


No Virustotal, um documento do Excel com uma macro VBA acionou 21 de 59 antivírus.

Ao mesmo tempo, um documento semelhante com uma macro XLM não suscitou suspeitas de antivírus.

Demonstração
Execução de código através de macros XLM no Office
Vídeo Online do Microsoft Office
A equipe de pesquisa da Cumulate descobriu uma nova maneira de executar código no Word inserindo vídeo usando o Vídeo Online. Usando esse elemento, você pode adicionar um vídeo do YouTube ao documento e substituir o link por um código JavaScript que será executado no Internet Explorer quando você abrir o documento e clicar no vídeo. Os seguintes vetores parecem mais adequados para engenharia social:
- Adicionando um código de exploração para o IE / Flash em um iframe com um vídeo do YouTube.
- Adicionando código JavaScript no iframe ao vídeo do YouTube usando o método msSaveOrOpenBlob, através do qual será sugerido o download e a execução do arquivo malicioso. O corpo do arquivo está contido no javascript base64.
Para criar um arquivo com a extensão docx. com a carga descrita, você deve executar as seguintes etapas:
1. Adicione um vídeo do YouTube através de “Inserir - Vídeo Online”.

2. Salve o arquivo docx criado.
3.Descompacte o docx salvo. Formato Docx é um arquivo zip do seguinte conteúdo:

4.No diretório do Word no arquivo document.xml no elemento embeddedHtml, adicione seu código JavaScript inserindo-o no corpo do iframe ou substituindo o link correspondente (src) no iframe.
5. Crie um arquivo zip (com a extensão docx) com as alterações feitas.
Além disso, ao abrir o arquivo docx gerado, o usuário deve clicar no link do vídeo e iniciar o arquivo baixado. Como alternativa, você pode exibir uma captura de tela com uma proposta para atualizar o Flash Player, solicitando ao usuário que baixe e execute o arquivo. Nenhum aviso de segurança é exibido.

Como no caso das macros XLM, essa técnica de execução de código não é detectada por nenhum antivírus no Virustotal e parece muito atraente para criadores de vírus, e também é comum na engenharia social como parte dos testes de penetração.
Demonstração
Execução de código através do vídeo online no Office
Vba stomping
Na conferência Derbycon 2018, foi introduzida uma técnica para iniciar macros VBA em documentos do Office, chamada VBA Stomping. A essência da técnica é excluir / modificar (como uma alternativa ao preenchimento de zeros) o código-fonte do VBA no corpo do documento do escritório, deixando intocado o código de macro compilado chamado código-p. O código VBA, bem como sua versão compilada, estão localizados no arquivo vbaProject.bin localizado no arquivo zip (arquivo com a extensão .docm, .xslm).

Assim, a técnica se resume a excluir / preencher com zeros parte do arquivo vbaProject.bin.

Como resultado, o documento não causa suspeitas entre antivírus que analisam uma macro apenas pelo seu código-fonte. Por exemplo, usando essa técnica, os pesquisadores conseguiram reduzir o número de respostas antivírus ao Trojan bancário Emotet, distribuído por arquivos do escritório, de 36/59 para 7/58 no Virustotal.


Além disso, essa técnica dificulta a análise do arquivo, pois nenhuma ferramenta, sem recorrer à descompilação, poderá extrair o código-fonte do VBA, que também não será exibido no editor de macro do Office até que seja resolvido.
Protecção
As recomendações para combater as técnicas descritas são tradicionais para proteção contra métodos de engenharia social:
- Aumentar a conscientização dos funcionários sobre questões de segurança da informação.
- Proibir o uso de macros no Microsoft Office.
- Uma abordagem integrada para garantir a segurança das informações, incluindo o uso de soluções Endpoint, bem como ferramentas de segurança de perímetro (firewalls de próxima geração, soluções UTM, gateways de correio).