Frebniis abusa do recurso Microsoft IIS para estabelecer backdoor

Frebniis abusa do recurso Microsoft IIS para estabelecer backdoor. O malware injeta código malicioso no módulo Failed Request Event Buffering para monitorar as solicitações HTTP do invasor.

A Symantec, da Broadcom Software , observou um novo malware que abusa de um recurso do Internet Information Services (IIS) da Microsoft para implantar um backdoor nos sistemas visados.

O malware, apelidado de Frebniis (Backdoor.Frebniis), foi usado por um agente de ameaça atualmente desconhecido contra alvos em Taiwan.

A técnica usada pelo Frebniis envolve a injeção de código malicioso na memória de um arquivo DLL (iisfreb.dll) relacionado a um recurso do IIS usado para solucionar problemas e analisar solicitações de página da web com falha. Isso permite que o malware monitore furtivamente todas as solicitações HTTP e reconheça solicitações HTTP especialmente formatadas enviadas pelo invasor, permitindo a execução remota de código. Para usar essa técnica, um invasor precisa obter acesso ao sistema Windows que executa o servidor IIS por outros meios. Neste caso particular, não está claro como esse acesso foi obtido.

Buffer de evento de solicitação com falha

O IIS é um servidor da Web de uso geral executado em sistemas Windows para atender a páginas ou arquivos HTML solicitados. Um servidor da Web IIS aceita solicitações de computadores clientes remotos e retorna a resposta apropriada. O IIS possui um recurso conhecido como Failed Request Event Buffering (FREB) que coleta dados e detalhes sobre solicitações, como endereço IP e porta de origem, cabeçalhos HTTP com cookies, etc.

Um recurso chamado Failed Request Tracing pode ser usado para solucionar problemas de solicitações com falha do IIS. Rastreamento de solicitação com falha armazena em buffer os eventos de rastreamento de uma solicitação e os libera no disco se a solicitação atender à definição de “falha” definida pelo usuário. O rastreamento de solicitação com falha pode, por exemplo, ser usado para saber por que as solicitações estão retornando um código de status HTTP específico (401 ou 404 etc.) ou por que uma solicitação está demorando muito para ser processada ou não está respondendo.

Sequestro de código furtivo do IIS

Frebniis garante que o Failed Request Tracing esteja ativado e então acessa a memória do processo w3wp.exe (IIS), obtendo o endereço de onde o código Failed Request Event Buffering (iisfreb.dll) está carregado. Com esse endereço de início de código, Frebniis procura a partir daí uma tabela de ponteiros de função para sequestrar a execução do código.

Os autores do Frebniis determinaram que um ponteiro de função específico dentro do iisfreb.dll é chamado pelo iiscore.dll sempre que qualquer solicitação HTTP é feita ao IIS a partir de um cliente da web. Essa função normalmente verifica se o conteúdo da solicitação HTTP corresponde às regras de rastreamento de solicitação com falha. 

Figura 1. Tabela de ponteiros de função usada para sequestrar a execução
Figura 1. Tabela de ponteiros de função usada para sequestrar a execução

O Frebniis sequestra essa função injetando seu próprio código malicioso na memória do processo IIS e, em seguida, substituindo esse ponteiro de função pelo endereço de seu próprio código malicioso. Esse ponto de sequestro permite que o Frebniis receba e inspecione furtivamente todas as solicitações HTTP para o servidor IIS antes de retornar à função original.

Figura 2. Depois de executar seu próprio código malicioso, o Frebniis retorna à função original
Figura 2. Depois de executar seu próprio código malicioso, o Frebniis retorna à função original

Porta dos fundos

O código malicioso injetado do Frebniis analisa todas as solicitações HTTP POST recebidas para /logon.aspx ou /default.aspx junto com uma senha de parâmetro definida como ‘7ux4398!’. Se a senha corresponder, o Frebniis descriptografa e executa uma seção do código injetado, que é um código executável .NET que consiste na principal funcionalidade backdoor. Nenhum executável é salvo em disco neste processo, mantendo o backdoor completamente furtivo.

O código .NET fornece funcionalidade de proxy e execução remota de código controlada por um segundo parâmetro HTTP fornecido que é uma cadeia de caracteres codificada em Base64.

Para habilitar o proxy, a string codificada é decodificada em Base64 e depois descriptografada (xor 0x08), com o primeiro caractere representando um comando de proxy seguido pelos parâmetros esperados. O proxy é usado para enviar e receber dados codificados em Base64 de outros sistemas de computador. Isso permite que os invasores se comuniquem com recursos internos que normalmente podem ser bloqueados na Internet por meio do servidor IIS comprometido.

Tabela 1. Comandos Frebniis – os nomes das funções foram digitados incorretamente pelo autor do malware
ComandoNome da funçãoParâmetroDescrição
1CreateConnectHost:PortaConecte-se a um sistema remoto para proxy, retorna um UUID representando o sistema remoto
2ReadScoketUuidLeia uma string Base64 de um sistema remoto
3WritescoketUuid, string Base64Escreva uma string Base64 em um sistema remoto
4CloseScoketUuidFeche a conexão

O código backdoor .NET também oferece suporte à execução remota. Se uma chamada HTTP para logon.aspx ou default.aspx for recebida sem o parâmetro de senha, mas com a string Base64, a string Base64 será considerada um código C# que será executado diretamente na memória. A string Base64 é decodificada e depois descriptografada (xor 0x08) e espera-se que seja um documento XML com o código C# a ser executado no nó ‘/doc’ sob o atributo ‘data’ (por exemplo, <doc data=C# code>) . O código C# é extraído e executado. Isso permite que Frebniis execute furtivamente código arbitrário no sistema.

Figura 3. Exemplo de como Frebniis é usado
Figura 3. Exemplo de como Frebniis é usado

Ao seqüestrar e modificar o código do servidor web IIS, Frebniis é capaz de interceptar o fluxo regular de tratamento de solicitações HTTP e procurar por solicitações HTTP especialmente formatadas. Essas solicitações permitem a execução remota de código e o proxy para sistemas internos de maneira furtiva. Nenhum arquivo ou processo suspeito será executado no sistema, tornando o Frebniis um tipo relativamente único e raro de backdoor HTTP visto na natureza.

Proteção/Mitigação

Para obter as atualizações de proteção mais recentes, visite o Symantec Protection Bulletin .

Indicadores de compromisso

Se um IOC for malicioso e o arquivo estiver disponível para nós, os produtos Symantec Endpoint detectarão e bloquearão esse arquivo.

6464f9a5da26aa53fb2221255e908fd4da8edf0633f94051beee74a14b9b001c – Backdoor.Frebniis

b81c177c440e84635f22dc97b0411de93a24a983a41af676ffbbb4439487aaef – Backdoor.Frebniis

Fonte: Symantec

Veja também:

About mindsecblog 2793 Articles
Blog patrocinado por MindSec Segurança e Tecnologia da Informação Ltda.