Selon Zscaler ThreatLabz, dans une publication de recherche sur une attaque de supply chain visant les développeurs Python, un package PyPI nommé termncolor importe une dépendance malveillante (colorinal) pour lancer une chaîne d’attaque sophistiquée affectant Windows et Linux.

L’attaque débute lorsque termncolor importe colorinal, dont le fichier unicode.py charge terminate.dll via ctypes.CDLL. La DLL utilise un chiffrement AES-CBC avec la clé “xterminalunicode” pour déchiffrer et déposer deux fichiers dans %LOCALAPPDATA%\vcpacket: vcpktsvr.exe (fichier signé légitime) et libcef.dll (charge utile malveillante). La persistance est assurée via la clé Run du Registre Windows.

La DLL malveillante libcef.dll effectue une reconnaissance système, communique avec le serveur de commande et contrôle via la plateforme Zulip en HTTPS, applique un algorithme de hachage personnalisé pour les API et exécute le shellcode reçu dans de nouveaux threads. Une variante Linux utilise un objet partagé terminate.so avec des fonctionnalités similaires.

IOC(s) clés:

  • Paquets PyPI: termncolor (malveillant), colorinal (dépendance)
  • Fichiers/Modules: unicode.py, terminate.dll, vcpktsvr.exe (légitime signé), libcef.dll (malveillant), terminate.so (Linux)
  • Emplacement: %LOCALAPPDATA%\vcpacket
  • Persistance: clé Run du Registre Windows
  • Crypto: AES-CBC (clé: xterminalunicode)
  • C2: plateforme Zulip via HTTPS

TTPs observées (MITRE ATT&CK):

  • Compromission de la chaîne d’approvisionnement (PyPI)
  • DLL sideloading pour le chargement de la charge utile
  • Persistance via clé Run du Registre
  • Communication C2 via service légitime (Zulip) en HTTPS
  • Évasion via hachage d’API et abus de binaire signé légitime (vcpktsvr.exe)
  • Reconnaissance système et exécution de shellcode dans de nouveaux threads

Il s’agit d’une publication de recherche détaillant une campagne de supply chain et ses mécanismes techniques.


🔗 Source originale : https://www.zscaler.com/blogs/security-research/supply-chain-risk-python-termncolor-and-colorinal-explained

🖴 Archive : https://web.archive.org/web/20250817164527/https://www.zscaler.com/blogs/security-research/supply-chain-risk-python-termncolor-and-colorinal-explained