
Este artigo faz parte da série Fileless Malware. Todas as outras partes da série:
Sou fã do site de
análise híbrida (HA). Esse é um tipo de zoológico de malware, onde você pode assistir com segurança "predadores" selvagens a uma distância segura, sem ser atacado. O HA lança malware em ambientes seguros, registra chamadas do sistema, arquivos gerados e tráfego da Internet e exibe todos esses resultados para cada amostra que você analisa. Assim, você não pode desperdiçar seu tempo e energia resolvendo o código confuso, mas entenda imediatamente todas as intenções dos hackers.
Os exemplos de alta disponibilidade que chamaram minha atenção usam scripts codificados em JavaScript ou VBA (Visual Basic for Applications) incorporados como macros em documentos do Word ou Excel e anexados a emails de phishing. Quando abertas, essas macros iniciam uma sessão do PowerShell no computador da vítima. Os hackers normalmente enviam fluxos de comando codificados em Base64 ao PowerShell. Tudo isso é feito para dificultar a detecção do ataque com filtros da Web e software antivírus que respondem a palavras-chave específicas.
Felizmente, o HA decodifica automaticamente o Base64 e mostra imediatamente tudo de forma legível. Essencialmente, você não precisa se concentrar em como esses scripts funcionam, porque você pode ver a saída completa dos comandos para a execução de processos na seção de alta disponibilidade correspondente. Veja um exemplo abaixo:

A análise híbrida intercepta comandos codificados em Base64 enviados ao PowerShell:

... e depois os decodifica para você. # magicamente
Em uma
postagem anterior, criei meu próprio contêiner JavaScript ligeiramente ofuscado para iniciar uma sessão do PowerShell. Então, meu script, como muitos malwares baseados no PowerShell, baixa o seguinte script do PowerShell de um site remoto. Então, como exemplo, baixei um PS inofensivo imprimindo uma mensagem na tela. Mas os tempos estão mudando, e agora me proponho a complicar o cenário.
Império PowerShell e Shell Reverso
Um objetivo deste exercício é mostrar com que facilidade (relativamente) um hacker consegue contornar as defesas de perímetro e antivírus clássicos. Se um blogueiro de TI sem habilidades de programação como eu puder
criar um malware totalmente não detectado (FUD) em algumas noites, imagine as possibilidades de um jovem hacker interessado nisso!
E se você é uma pessoa que fornece segurança de TI, mas seu gerente não está ciente das possíveis consequências dessas ameaças, basta mostrar a ele este artigo.
Os hackers sonham em obter acesso direto ao laptop ou servidor da vítima. É muito simples fazer isso: tudo o que o hacker precisa é obter alguns arquivos confidenciais no laptop do CEO.
De alguma forma, eu já
escrevi sobre o tempo de execução do PowerShell Empire pós-operacional. Vamos lembrar o que é isso.
Em essência, é uma ferramenta de teste de penetração baseada no PowerShell que, entre muitos outros recursos, facilita a execução de um shell reverso. Você pode aprender mais sobre isso na
página inicial do PSE .
Vamos fazer um pequeno experimento. Configurei um ambiente seguro de teste de malware na nuvem Amazon Web Services. Você pode seguir o meu exemplo para mostrar com rapidez e segurança um exemplo de funcionamento dessa vulnerabilidade (e não ser acionado para iniciar vírus dentro do perímetro da empresa).
Se você iniciar o console do PowerShell Empire, verá algo como o seguinte:

Primeiro, você inicia o processo de ouvinte no seu computador hacker. Digite o comando "listener" e especifique o endereço IP do seu sistema usando "set Host". Em seguida, inicie o processo do ouvinte com o comando execute (abaixo). Portanto, da sua parte, comece a aguardar uma conexão de rede a partir do shell remoto:

Por outro lado, você precisará gerar o código do agente digitando o comando do iniciador (veja abaixo). Isso irá gerar o código do PowerShell para o agente remoto. Observe que ele é codificado em Base64 e representa a segunda fase da carga útil. Em outras palavras, meu código JavaScript agora puxa esse agente para executar o PowerShell em vez de uma saída de texto inofensiva na tela e se conecta ao nosso servidor PSE remoto para executar o shell reverso.
A magia da concha reversa. Este comando codificado do PowerShell se conectará ao meu ouvinte e iniciará o shell remoto.Para mostrar esse experimento, assumi o papel de vítima inocente e abri o Evil.doc, lançando nosso JavaScript. Lembra da primeira parte? O PowerShell foi configurado para que sua janela não apareça, para que a vítima não note nada de incomum. No entanto, se você abrir o Gerenciador de Tarefas do Windows, verá o processo em segundo plano do PowerShell, que ainda não causará nenhum alarme para a maioria. Porque é o PowerShell comum, não é?

Agora, quando você executa o Evil.doc, um processo em segundo plano oculto será conectado ao servidor com o PowerShell Empire. Depois de colocar o chapéu branco do hacker-pentester, voltei ao console do PowerShell Empire e agora vejo uma mensagem de que meu agente remoto está ativo.

Então eu entrei no comando "interagir" para abrir o shell no PSE - e aqui estou eu! Em resumo, invadi um servidor Taco, que eu mesmo configurei uma vez.

O que acabei de demonstrar não exige muito trabalho de você. Você pode fazer tudo isso com segurança durante um intervalo de almoço de uma a duas horas para melhorar seu conhecimento sobre segurança da informação. É também uma ótima maneira de entender como os hackers evitam a proteção do perímetro de segurança externa e implanta secretamente em seus sistemas.
Os gerentes de TI que acreditam que eles criaram proteção indestrutível contra qualquer penetração também provavelmente acharão informativo - bem, se, é claro, você puder convencê-los a ficar ao seu lado por um longo tempo.
De volta à realidade
Como eu esperava, um hack real que não é visível para o usuário médio é apenas uma variação do que acabei de descrever. Para coletar material para a próxima publicação, comecei a procurar uma amostra de HA que funcionasse da mesma maneira que meu exemplo inventado. E não precisei procurá-lo por um longo tempo - o site tem muitas opções para essa técnica de ataque.
O malware que acabei encontrando no HA é o script \ VBA que foi incorporado ao documento do Word. Ou seja, nem preciso falsificar a extensão do documento, esse malware é realmente o documento do Microsoft Word mais comum. Se você estiver interessado, eu escolhi este exemplo, chamado
rfq.doc .
Eu descobri rapidamente que muitas vezes você não pode extrair diretamente scripts VBA maliciosos de um documento. Os hackers os compactam e ocultam, e eles não são visíveis nas ferramentas de macro internas do Word. Você precisará de uma ferramenta especial para extraí-la. Felizmente, me deparei com o
OfficeMalScanner de Frank Baldwin. Obrigado Frank.
Usando essa ferramenta, consegui extrair um código VBA muito confuso. Parecia algo assim:
A ofuscação foi realizada por profissionais. Fiquei impressionado!Os atacantes são realmente bons em atrapalhar o código, não como meus esforços para criar o Evil.doc. Bem, ok, na próxima parte, obteremos nossos depuradores de VBA, aprofundaremos mais esse código e compararemos nossa análise com os resultados de HA.