Especialistas em segurança cibernética descobriram um complexo ataque da cadeia de suprimentos que se originou do Python Package Index (PYPI) em uma recente divulgação do ZSCaler AmeaMlabz.
O pacote em questão, denominado “TermNColor”, se disfarça de utilitário de cores benignas para terminais Python, mas importa secretamente uma dependência maliciosa chamada “Colorinal”.
Essa dependência serve como o vetor de infecção inicial, desencadeando uma implantação de malware em vários estágios que aproveita DLL SideloadingCargas úteis criptografadas da AES e comunicações disfarçadas de comando e controle (C2).
A cadeia de ataque começa com a execução de “Unicode.py” em “Colorinal”, que carrega um arquivo DLL incorporado chamado “Termine.dll”.
Essa DLL descriptografa e implanta cargas úteis subsequentes, garantindo a integração furtiva do malware no sistema de destino.
Vetor de ataque da cadeia de suprimentos maliciosos
Notavelmente, ambos os pacotes foram eliminados de Pypi após a descoberta, ressaltando os riscos em andamento em ecossistemas de código aberto, onde os atores de ameaças exploram árvores de dependência para distribuir o código armado.
A dissecção técnica revela que o “TermNColor” parece inócuo na primeira inspeção, funcionando apenas como uma ferramenta de coloração terminal sem indicadores maliciosos abertos.
No entanto, sua dependência de “colorinal” apresenta a carga útil através do método “is_color_supported” em “Unicode.py”, que utiliza a biblioteca ctypes.cdll para carregar “termine.dll” na memória.
A DLL é proveniente do diretório do script usando os.path.dirname (arquivo), e ele interfina com uma função exportada “Envir”, aprovando uma string codificada UTF-8 “XterMinalUnicode”.
Essa interação consulta os recursos do terminal enquanto inicia simultaneamente o processo de descriptografia.
Empregando os AES no modo CBC com a mesma tecla “XterMinalUnicode”, “Termine.dll” revela dois arquivos críticos: um legítimo executável assinado “vcpktsvr.exe” e um “libcef.dll”.
Estes são encenados no diretório %LocalAppData % VCPacket, onde “vcpktsvr.exe” facilita a DLL lateral para executar “libcef.dll” secretamente. Para Evade de detecçãoo malware auto-delides “unicode.py” e “encerrinate.dll” pós-execução, minimizando pegadas forenses.
Execução de vários estágios
Avançando para o segundo estágio, o reconhecimento do sistema “libcef.dll” orquestra, colhendo detalhes como nome do computador, nome de usuário e versão do sistema operacional, que são formatados e transmitidos a um servidor C2 via HTTPS.
A comunicação imita os padrões legítimos de mensagens do Zulip, misturando-se ao tráfego benigno para evitar a detecção baseada em rede.
A persistência é engenhosamente alcançada por meio de uma modificação do registro sob hkey_current_user software microsoft windows currentVersion run, criando uma entrada chamada “pkt-update” que exclui automaticamente “vcpktsvr.exe” na startup.
Essa exploração de teclas de execução do Windows garante residência a longo prazo, permitindo que o malware resolva as APIs usando um algoritmo de hash personalizado uma função leve com base em valores ASCII, multiplicação e operações bitwise para ofuscar nomes de DLL e API, complicando a análise estática.
A ameaça se estende aos recursos de plataforma cruzada, com uma variante Linux empregando “encerrar.so” como um arquivo de objeto compartilhado para replicar a funcionalidade do Windows.
O perfil de atores de ameaças via análise Zulip indica operações a partir de 10 de julho de 2025, envolvendo um email “Symtee@proton.me” e ID do usuário 937950, com uso de API de Python pesado para transmissão de mensagens.
A atividade atingiu o pico no final de julho, abrangendo 90.692 mensagens em canais privados, embora a infraestrutura C2 esteja agora offline.
De acordo com o relatórioAs defesas do ZScaler, incluindo a caixa de areia em nuvem, detectam indicadores relacionados em nomes de ameaças como python.backdoor.pypi e win64.backdoor.xterminal, fornecendo proteção multicamada contra tais intrusões.
Esse incidente exemplifica a sofisticação em evolução das ameaças da cadeia de suprimentos, onde os atacantes armam dependências para descriptografia, carga lateral e RCE, enfatizando a necessidade de rigorosos veteres de pacotes e monitoramento de tempo de execução em oleodutos de desenvolvimento.
Indicadores de compromisso (IOCs)
MD5 | Nome |
---|---|
381022E5FD0cede7146F9922E1ED30A3 | libcef.dll |
9267D9A72207DF3217014F206BA18560 | vcpktsvr.exe |
1995682D600E329B7833003A01609252 | termine.dll |
C5F0425DABD01D7BA80DFC3D5CA19841 | Pacote colorinal (.Whl – Pypi) |
7857238199018EDC0AD7CD4D851C5A9B | TermNColor (pacote .Whl – Pypi) |
5152410AEEF667FFAF42D40746AF4D84 | Pacote Linux Python |
38B75AF6CBDB60127DECD59140D10640 | terminal.so |
DB69C6BFBF6575E0D887351265165E6E | Backdoor de elfo malicioso |
C2: helper.zulpichat.com |
AWS Security Services:10-Point Executive Checklist -Download for Free