Com este artigo iniciamos uma série de publicações sobre malware evasivo. Os programas de hacking sem arquivo, também conhecidos como programas de hacking sem arquivo, normalmente usam o PowerShell em sistemas Windows para executar comandos silenciosamente para pesquisar e extrair conteúdo valioso. Detectar atividade hacker sem arquivos maliciosos é uma tarefa difícil, porque... antivírus e muitos outros sistemas de detecção funcionam com base na análise de assinaturas. Mas a boa notícia é que esse software existe. Por exemplo,
Quando comecei a pesquisar o tema dos hackers durões,
O grande e poderoso PowerShell
Já escrevi sobre algumas dessas ideias antes em
Além dos próprios exemplos, no site você pode ver o que esses programas fazem. A análise híbrida executa malware em sua própria sandbox e monitora chamadas do sistema, processos em execução e atividades de rede, além de extrair sequências de texto suspeitas. Para binários e outros arquivos executáveis, ou seja, onde você não consegue sequer olhar para o código real de alto nível, a análise híbrida decide se o software é malicioso ou apenas suspeito com base em sua atividade de tempo de execução. E depois disso a amostra já está avaliada.
No caso do PowerShell e de outros scripts de amostra (Visual Basic, JavaScript, etc.), consegui ver o próprio código. Por exemplo, me deparei com esta instância do PowerShell:
Você também pode executar o PowerShell na codificação base64 para evitar a detecção. Observe o uso de parâmetros Não interativos e Ocultos.
Se você leu minhas postagens sobre ofuscação, sabe que a opção -e especifica que o conteúdo é codificado em base64. A propósito, a análise híbrida também ajuda nisso, decodificando tudo de volta. Se você quiser tentar decodificar o PowerShell base64 (doravante denominado PS), precisará executar este comando:
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))
Vá mais fundo
Decodifiquei nosso script PS usando este método, abaixo está o texto do programa, embora ligeiramente modificado por mim:
Observe que o script estava vinculado à data de 4 de setembro de 2017 e transmitiu cookies de sessão.
Escrevi sobre esse estilo de ataque em
O que ele faz?
Para software de segurança que verifica logs de eventos ou firewalls do Windows, a codificação base64 evita que a string "WebClient" seja detectada por um padrão de texto simples para proteger contra a realização de tal solicitação da Web. E como todo o “mal” do malware é baixado e passado para o nosso PowerShell, essa abordagem nos permite escapar completamente da detecção. Ou melhor, foi o que pensei a princípio.
Acontece que com o Log Avançado do Windows PowerShell habilitado (veja meu artigo), você poderá ver a linha carregada no log de eventos. Eu sou como
Vamos adicionar cenários adicionais
Os hackers ocultam habilmente os ataques do PowerShell em macros do Microsoft Office escritas em Visual Basic e outras linguagens de script. A ideia é que a vítima receba uma mensagem, por exemplo de um serviço de entrega, com um relatório anexado em formato .doc. Você abre este documento que contém a macro e acaba iniciando o próprio PowerShell malicioso.
Freqüentemente, o próprio script do Visual Basic é ofuscado para escapar livremente de antivírus e outros scanners de malware. Seguindo o espírito acima, decidi codificar o PowerShell acima em JavaScript como um exercício. Abaixo estão os resultados do meu trabalho:
JavaScript ofuscado escondendo nosso PowerShell. Hackers reais fazem isso uma ou duas vezes.
Esta é outra técnica que vi circulando pela web: usar Wscript.Shell para executar o PowerShell codificado. A propósito, o próprio JavaScript é
No nosso caso, o script JS malicioso é incorporado como um arquivo com a extensão .doc.js. O Windows normalmente mostrará apenas o primeiro sufixo, portanto ele aparecerá para a vítima como um documento do Word.
O ícone JS aparece apenas no ícone de rolagem. Não é surpreendente que muitas pessoas abram este anexo pensando que é um documento do Word.
No meu exemplo, modifiquei o PowerShell acima para baixar o script do meu site. O script PS remoto apenas imprime "Evil Malware". Como você pode ver, ele não é nada mau. É claro que hackers reais estão interessados em obter acesso a um laptop ou servidor, digamos, por meio de um shell de comando. No próximo artigo, mostrarei como fazer isso usando o PowerShell Empire.
Espero que no primeiro artigo introdutório não tenhamos nos aprofundado muito no assunto. Agora vou deixar você respirar fundo e, da próxima vez, começaremos a examinar exemplos reais de ataques usando malware sem arquivo, sem quaisquer palavras introdutórias ou preparação desnecessárias.
Fonte: habr.com