Pacote python armado "Termncolor" Usa a chave do Windows Run para persistência

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