A evolução de shell scripts maliciosos

Nós tomamos nota das formas como os shell scripts mudaram nas mãos dos cibercriminosos e como podem ser empregados no desenvolvimento de cargas de malware em rotinas maliciosas.

A comunidade de programação Unix normalmente usa shell scripts como uma maneira simples de executar vários comandos do Linux em um único arquivo. Muitos usuários fazem isso como parte de um workload operacional regular, manipulando arquivos, executando programas e imprimindo textos.

No entanto, como um interpretador de shell está disponível em todas as máquinas Unix, também é uma ferramenta interessante e dinâmica usada por agentes mal-intencionados. Escrevemos anteriormente sobre payloads implantados por meio de shell scripts para abusar de instâncias do Redis configuradas incorretamente, expor APIs do Docker ou remover mineradores de criptomoedas rivais. Aqui, observamos as formas como os shell scripts mudaram nas mãos dos cibercriminosos e como podem ser empregados no desenvolvimento de cargas de malware em rotinas maliciosas.

Alterando comandos e técnicas de programação

A técnica de abusar do interpretador de linha de comando não é nova. Na verdade, é amplamente explorada in the wild. Porém, começamos a notar o aumento nas mudanças e na qualidade dos scripts.

No passado, os shell scripts eram combinações relativamente diretas de comandos e links simples, implantando diretamente o payload. Mas, à medida que as ameaças começaram a evoluir, os agentes mal-intencionados agora usam comandos e técnicas de programação mais avançados.

Figura 1. Evolução do script de texto simples (esquerda) para payload codificado em Base64 (direita).

Links de texto simples foram substituídos por texto codificado em Base64, enquanto algumas partes de código foram baixadas ou payloads codificados. Isso provavelmente é feito para ocultar links diretos de payloads, evitar regras de segurança usadas para sua identificação e tornar a análise mais difícil.

Figura 2. Substituição da parte de código com codificação Base64

O texto codificado é decodificado usando Base64 e alterado para um interpretador de shell bash com a finalidade de executar o shell script.

Figura 3. Parte do payload decodificado – codificada por Base64

Os comandos eram executados anteriormente independentemente do serviço de destino em execução no servidor. Hoje em dia, o script é capaz de verificar se o serviço está rodando ou não e economizar tempo da CPU para suas cargas. Ele pode ser executado junto com versões mais recentes também codificadas com Base64. Ele também pode substituir variáveis para links específicos.

Figura 4. Comandos que desinstalam o serviço sem verificar se ele está instalado

Figura 5. Comandos que desinstalam o serviço quando ele é encontrado em execução

Figura 6. O URL do wget substituído por uma variável

Também percebemos outro desenvolvimento no uso do Pastebin para armazenar partes do script, como na URL e todo o payload ou aplicação auxiliar, como neste caso de uma rotina maliciosa que libera um minerador de criptomoedas XMrig.

Figura 7. Configuração codificada em Base64 e URLs Pastebin

Figura 8. XMrig codificado em Base64

 

Conclusão

Agentes mal-intencionados aprimoram e otimizam constantemente suas rotinas e técnicas, como a capacidade de seus shell scripts de ofuscar e entregar payloads. Para maximizar os lucros e evitar o aprimoramento das tecnologias de detecção e mitigação, os cibercriminosos utilizarão até mesmo técnicas previamente documentadas e descobertas para outros sistemas operacionais ou combiná-las com novos. Embora algumas das técnicas tenham sido usadas em rotinas ou ambientes de malware observados anteriormente, elas são bastante novas para shell scripts e famílias de malware.

No passado, a maioria das implantações de payloads era em texto simples e focada em suas tarefas específicas. Agora estamos começando a ver mecanismos de ofuscação dentro de shell scripts. Devemos esperar ainda mais ofuscação à medida que os autores de malware tentam ocultar payloads reais no futuro.

Ainda é cedo para afirmar que essas técnicas significam que as ofuscações do Linux estão se tornando mais sofisticadas. No entanto, esta evolução de scripts shell, onde eles estão sendo usados para entregar payloads, é digna de nota para mais cautela e observação. Além disso, os pesquisadores podem esperar que o texto simples não seja mais tão comum: eles vão precisar decodificar várias camadas de uma vez para obter uma análise completa.

 

Soluções Trend Micro

As soluções Trend Micro com base na segurança XGen™, como ServerProtect para Linux e Trend Micro Network Defense, podem detectar arquivos maliciosos e URLs relacionados e proteger os sistemas dos usuários. O Trend Micro Smart Protection Suites e o Trend Micro Worry-Free™ Business Security, que possuem recursos de monitoramento de comportamento, podem também se defender contra esses tipos de ameaças, detectando arquivos maliciosos, impedindo comportamentos e rotinas associados a atividades maliciosas, bem como bloqueando todos os programas maliciosos relacionados URLs.

 

Indicadores de comprometimento (IoCs)

 

SHA256

Detection Name

1aaf7bc48ff75e870db4fe6ec0b3ed9d99876d7e2fb3d5c4613cca92bbb95e1b Trojan.SH.MALXMR.UWEKK
bea4008c0f7df9941121ddedc387429b2f26a718f46d589608b993c33f69b828
0742efecbd7af343213a50cc5fd5cd2f8475613cfe6fb51f4296a7ec4533940d Trojan.SH.HADGLIDER.TSE
3c7faf7512565d86b1ec4fe2810b2006b75c3476b4a5b955f0141d9a1c237d38

Coinminer.Linux.MALXMR.UWELH

3eeaa9d4a44c2e1da05decfce54975f7510b31113d8361ff344c98d3ddd30bf4
543ceebd292e0e2c324372f3ab82401015f78b60778c6e38f438f98861fd9a2d
882473c3100389e563b05051ae1b843f8dd24c807a30acf0c6749cd38137876b
c82074344cf24327fbb15fd5b8276a7681f77ccacef7acc146b4cffa46dabf62
eaf9dd8efe43dcf606ec0a531d5a46a9d84e80b54aa4a019fa93884f18c707c3
f65bea9c1242ca92d4038a05252a70cf70f16618cf548b78f120783dfb9ccd0e