TeamPCP envía versiones maliciosas de Telnyx a PyPI y oculta el ladrón en archivos WAV – CYBERDEFENSA.MX

TeamPCP, el actor de amenazas detrás del ataque a la cadena de suministro dirigido a Trivy, KICS y litellm, ahora ha comprometido la telnyx Paquete Python al impulsar dos versiones maliciosas para robar datos confidenciales.

Las dos versiones, 4.87.1 y 4.87.2, publicadas en el repositorio Python Package Index (PyPI) el 27 de marzo de 2026, ocultaron sus capacidades de recolección de credenciales dentro de un archivo .WAV. Se recomienda a los usuarios que bajen a la versión 4.87.0 inmediatamente. El proyecto PyPI se encuentra actualmente en cuarentena.

Varios informes de Aikido, Laboratorios Endor, Seguridad del águila pescadora, SafeDep, Enchufey PasoSeguridad indicar que el código malicioso es inyectado en «telnyx/_client.py», lo que hace que se invoque cuando el paquete se importa a una aplicación Python. El malware está diseñado para atacar sistemas Windows, Linux y macOS.

Ciberseguridad

«Nuestro análisis revela una cadena de ataque en tiempo de ejecución de tres etapas en Linux/macOS que consiste en la entrega mediante esteganografía de audio, la ejecución en memoria de un recolector de datos y la exfiltración cifrada», dijo Socket. «Toda la cadena está diseñada para operar dentro de un directorio temporal autodestructivo y dejar casi cero artefactos forenses en el host».

En Windows, el malware descarga un archivo llamado «hangup.wav» de un servidor de comando y control (C2) y extrae de los datos de audio un ejecutable que luego se coloca en la carpeta Inicio como «msbuild.exe». Esto le permite persistir durante los reinicios del sistema y ejecutarse automáticamente cada vez que un usuario inicia sesión en el sistema.

En caso de que el host comprometido se ejecute en Linux o macOS, recupera un archivo .WAV diferente («ringtone.wav») del mismo servidor para extraer un script recopilador de tercera etapa y ejecutarlo. El recolector de credenciales está diseñado para capturar una amplia gama de datos confidenciales y exfiltrar los datos en el formato «tpcp.tar.gz» a través de una solicitud HTTP POST al «83.142.209[.]203:8080.»

«La técnica destacada en esta muestra, y el motivo del título de la publicación, es el uso de esteganografía de audio para entregar la carga útil final», dijo Ossprey Security. «En lugar de alojar un ejecutable sin formato o un blob base64 en el C2 (ambos marcados trivialmente por la inspección de red y EDR), el atacante envuelve la carga útil dentro de un archivo .WAV».

Actualmente no se sabe cómo TeamPCP obtuvo el PYPI_TOKEN del paquete, pero es probable que haya sido a través de una operación previa de recolección de credenciales.

«Creemos que el vector más probable es el compromiso del litellm en sí», dijeron los investigadores de Endor Labs Kiran Raj y Rachana Misal. «El recolector de TeamPCP barrió variables de entorno, archivos .env e historiales de shell de cada sistema que importó litellm. Si algún desarrollador o canal de CI tenía litellm instalado y acceso al token PyPI de telnyx, ese token ya estaba en manos de TeamPCP».

Lo notable del ataque es la ausencia de un mecanismo de persistencia en Linux y macOS y el uso de un directorio temporal para realizar acciones maliciosas y eliminar recursivamente todo su contenido una vez que todo esté completo.

«La división estratégica es clara. Windows obtiene persistencia: un binario en la carpeta Inicio que sobrevive a los reinicios, proporcionando al actor de la amenaza un acceso repetible a largo plazo», explicó Socket. «Linux/macOS se vuelve devastador: una única operación de recolección de datos de alta velocidad que recopila todo lo de valor y lo exfiltra inmediatamente, luego desaparece».

El desarrollo se produce unos días después de que el actor de amenazas repartido Versiones troyanizadas del popular paquete Litellm Python para filtrar credenciales de la nube, secretos de CI/CD y claves de un dominio bajo su control.

El incidente de la cadena de suministro también refleja una nueva maduración, donde el actor de la amenaza ha infectado constantemente paquetes legítimos y confiables con bases de usuarios masivas para distribuir malware a usuarios intermedios y ampliar el radio de explosión, en lugar de publicar directamente typosquats maliciosos en repositorios de paquetes de código abierto.

«La selección de objetivos en esta campaña se centra en herramientas con acceso elevado a canalizaciones automatizadas: un escáner de contenedores (Trivy), una herramienta de escaneo de infraestructura (KICS) y una biblioteca de enrutamiento de modelos de IA (litellm)», Snyk dicho. «Cada una de estas herramientas requiere un amplio acceso de lectura a los sistemas en los que opera (credenciales, configuraciones, variables de entorno) por diseño».

Ciberseguridad

Para mitigar la amenaza, se recomienda a los desarrolladores que realicen las siguientes acciones:

  • Audite los entornos Python y los archivos requisitos.txt para telnyx==4.87.1 o telnyx==4.87.2. Si los encuentra, reemplácelos con una versión limpia.
  • Asuma un compromiso y rote todos los secretos.
  • Busque un archivo llamado «msbuild.exe» en la carpeta de inicio de Windows.
  • Bloquear el dominio C2 y de exfiltración («83.142.209[.]203»).

El compromiso es parte de una campaña más amplia y en curso emprendida por EquipoPCP que abarca múltiples ecosistemas, y el actor de amenazas anuncia colaboraciones con otros grupos de ciberdelincuentes como LAPSUS$ y un grupo de ransomware emergente llamado vector para realizar operaciones de extorsión y ransomware.

Esto también indica un cambio en el que las bandas de ransomware, que históricamente se han centrado en métodos de acceso inicial como el phishing y la explotación de fallos de seguridad, ahora están utilizando como arma los ataques a la cadena de suministro dirigidos a la infraestructura de código abierto como punto de entrada para ataques posteriores.

«Esto pone de relieve cualquier cosa en entornos CI/CD que no esté bloqueado», dijo Socket. «A los escáneres de seguridad, las extensiones IDE, las herramientas de construcción y los entornos de ejecución se les otorga amplio acceso porque se espera que lo necesiten. Cuando los atacantes apuntan a las herramientas mismas, cualquier cosa que se ejecute en el proceso debe ser tratada como un punto de entrada potencial».

TeamPCP Backdoors LiteLLM Versiones 1.82.7–1.82.8 Probablemente a través del compromiso Trivy CI/CD – CYBERDEFENSA.MX

TeamPCP, el actor de amenazas detrás de los recientes compromisos de Trivy y KICS, ahora ha comprometido un popular paquete de Python llamado litelmoimpulsando dos versiones maliciosas que contienen un recolector de credenciales, un conjunto de herramientas de movimiento lateral de Kubernetes y una puerta trasera persistente.

Múltiples proveedores de seguridad, incluidos Laboratorios Endor y JFrogreveló que las versiones 1.82.7 y 1.82.8 de Litellm eran publicado el 24 de marzo de 2026, probablemente debido a la uso del paquete de Trivy en su flujo de trabajo CI/CD. Desde entonces, ambas versiones con puerta trasera se han eliminado de PyPI.

«La carga útil es un ataque de tres etapas: un recolector de credenciales que barre claves SSH, credenciales de nube, secretos de Kubernetes, billeteras de criptomonedas y archivos .env; un conjunto de herramientas de movimiento lateral de Kubernetes que implementa pods privilegiados en cada nodo; y una puerta trasera persistente systemd (sysmon.service) que sondea ‘checkmarx[.]zona/sin procesar’ para binarios adicionales», dijo el investigador de Endor Labs, Kiran Raj.

Ciberseguridad

Como se observó en casos anteriores, los datos recopilados se extraen como un archivo cifrado («tpcp.tar.gz») a un dominio de comando y control llamado «models.litellm».[.]nube» a través de una solicitud HTTPS POST.

En el caso de 1.82.7, el código malicioso está incrustado en el archivo «litellm/proxy/proxy_server.py», y la inyección se realiza durante o después del proceso de creación de la rueda. El código está diseñado para ejecutarse en el momento de la importación del módulo, de modo que cualquier proceso que importe «litellm.proxy.proxy_server» active la carga útil sin requerir ninguna interacción del usuario.

La siguiente iteración del paquete agrega un «vector más agresivo» al incorporar un «litellm_init.pth» malicioso en la raíz de la rueda, lo que hace que la lógica se ejecute automáticamente en cada inicio de proceso Python en el entorno, no solo cuando se importa litellm.

Otro aspecto que hace que 1.82.8 sea más peligroso es el hecho de que el iniciador .pth genera un proceso secundario de Python a través de subproceso.Popenque permite que la carga útil se ejecute en segundo plano.

«Los archivos Python .pth colocados en los paquetes del sitio son procesados ​​automáticamente por site.py al iniciar el intérprete», dijo Endor Labs. «El archivo contiene una sola línea que importa un subproceso e inicia un proceso Python independiente para decodificar y ejecutar la misma carga útil Base64».

La carga útil se decodifica en un orquestador que descomprime un recolector de credenciales y un cuentagotas de persistencia. El recolector también aprovecha el token de la cuenta de servicio de Kubernetes (si está presente) para enumerar todos los nodos del clúster e implementar un pod privilegiado en cada uno de ellos. La vaina entonces chroots en el sistema de archivos del host e instala el cuentagotas de persistencia como un servicio de usuario systemd en cada nodo.

El servicio systemd está configurado para iniciar un script de Python («~/.config/sysmon/sysmon.py»), el mismo nombre utilizado en el compromiso Trivy, que llega a «checkmarx[.]zona/raw» cada 50 minutos para obtener una URL que apunte a la carga útil de la siguiente etapa. Si la URL contiene youtube[.]com, el script aborta la ejecución, un patrón de interrupción común a todos los incidentes observados hasta ahora.

«Es casi seguro que esta campaña no ha terminado», dijo Endor Labs. «TeamPCP ha demostrado un patrón consistente: cada entorno comprometido genera credenciales que desbloquean el siguiente objetivo. El giro de CI/CD (ejecutores de GitHub Actions) a producción (paquetes PyPI que se ejecutan en clústeres de Kubernetes) es una escalada deliberada».

Con el último desarrollo, TeamPCP ha emprendido una incesante campaña de ataque a la cadena de suministro que ha generado cinco ecosistemas, incluidos GitHub Actions, Docker Hub, npm, Open VSX y PyPI, para expandir su huella de objetivos y poner cada vez más sistemas bajo su control.

«TeamPCP está intensificando una campaña coordinada dirigida a herramientas de seguridad e infraestructura de desarrollo de código abierto, y ahora se está atribuyendo abiertamente el mérito de múltiples ataques posteriores en todos los ecosistemas», Socket dicho. «Esta es una operación sostenida que apunta a puntos de alto apalancamiento en la cadena de suministro de software».

en un mensaje al corriente En su canal de Telegram, TeamPCP dijo: «Estas empresas fueron creadas para proteger sus cadenas de suministro, pero ni siquiera pueden proteger las suyas propias, el estado de la investigación de seguridad moderna es una broma, como resultado, estaremos por mucho tiempo robando terrabytes». [sic] de secretos comerciales con nuestros nuevos socios».

«El efecto bola de nieve de esto será enorme, ya nos estamos asociando con otros equipos para perpetuar el caos, muchas de sus herramientas de seguridad favoritas y proyectos de código abierto serán atacados en los próximos meses, así que estén atentos», dijo el actor de amenazas. agregado.

Ciberseguridad

Se recomienda a los usuarios que realicen las siguientes acciones para contener la amenaza:

  • Audite todos los entornos para las versiones 1.82.7 o 1.82.8 de Litellm y, si los encuentra, vuelva a una versión limpia.
  • Aislar los huéspedes afectados
  • Verifique la presencia de pods no autorizados en los clústeres de Kubernetes
  • Revise los registros de red para ver el tráfico de salida a «models.litellm[.]nube» y «checkmarx[.]zona»
  • Eliminar los mecanismos de persistencia.
  • Audite las canalizaciones de CI/CD para detectar el uso de herramientas como Trivy y KICS durante las ventanas de compromiso.
  • Revocar y rotar todas las credenciales expuestas

«La cadena de suministro de código abierto se está derrumbando sobre sí misma», dijo Gal Nagli, jefe de exposición a amenazas en Wiz, propiedad de Google. dicho en una publicación en X. «Trivy se ve comprometido → LiteLLM se ve comprometido → las credenciales de decenas de miles de entornos terminan en manos de atacantes → y esas credenciales conducen al siguiente compromiso. Estamos atrapados en un bucle».