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 |