Malicious PyPI Packages Deliver SilentSync RAT
IntroductionZscaler ThreatLabz regularly monitors for threats in the popular Python Package Index (PyPI), which contains open source libraries that are frequently used by many Python developers. In July 2025, a malicious Python package named termncolor was identified by ThreatLabz. Just a few weeks later, on August 4, 2025, ThreatLabz uncovered two more malicious Python packages named sisaws and secmeasure. The former Python package leverages typosquatting for the legitimate sisa package, which integrates with the public APIs for Sistema Integrado de Información Sanitaria Argentino (SISA), which is Argentina’s national health information system. Interestingly, ThreatLabz discovered another malicious package named secmeasure, which was created by the same author. Both Python packages deliver a Remote Access Trojan (RAT) that ThreatLabz dubbed SilentSync, which is retrieved from Pastebin. SilentSync’s capabilities include remote command execution, file exfiltration, screen capturing, and web browser data theft.Key TakeawaysOn August 4, 2025, ThreatLabz uncovered two malicious Python packages named sisaws and secmeasure that deliver SilentSync, a Python-based RAT, that were created by the same author.SilentSync is capable of remote command execution, file exfiltration, and screen capturing.SilentSync also extracts web browser data, including credentials, history, autofill data, and cookies from web browsers like Chrome, Brave, Edge, and Firefox.The malicious Python packages currently only infect Windows systems.SilentSync communicates with a command-and-control (C2) server using HTTP, with periodic beaconing and task polling.Technical AnalysisIn the following section, we examine how the sisaws and secmeasure PyPI packages deliver SilentSync RAT. The figure below illustrates the attack sequence for both of these Python packages after they are installed from PyPI and the malicious functions are invoked.Figure 1: Attack chain for two malicious Python packages discovered by ThreatLabz in the PyPI repository.Similarities between the sisaws and sisa packagesThe sisaws package imitates the behavior of the legitimate Python package sisa, which includes the modules puco and renaper that act as wrappers around public government APIs for healthcare information. These modules enable applications to request the user’s National Identity Document (DNI) number, call the corresponding SISA web service, and return structured responses. For example, the puco module can be used to verify a citizen’s health coverage in the Unified Registry of Health Coverage (PUCO) database. The module provides functions to validate the DNI, query the puco endpoint, parse the XML response, and return the result as a Python dictionary. Similarly, the renaper module performs lookups against the National Registry of Persons (RENAPER) database. The output includes name, surname, date of birth, and social security coverage.The sisaws package superficially mimics the behavior of the legitimate modules (puco and renaper). The sisaws package validates inputs just like the real package. For example, DNIs must be numeric and eight digits long, the tokens must be correct, and responses are wrapped in dictionaries. Even the success path imitates the real API’s responses by returning structured user data, expiration timestamps, and access roles. At a very quick glance, the sisaws package appears to be a legitimate Python library to interface with Argentina’s healthcare services.However, the similarities are only surface-level. The sisaws package contains a function named gen_token in the initialization script (__init__.py) that acts as a backdoor malware downloader. This function contains a hardcoded token value (f5d3a8c2-4c01-47e2-a1a4-4dcb9a3d7e65) that must be provided as input. Any other input results in an error response. If the correct token is provided, the function returns a forged API-like response. This response contains structured data that mimics SISA services, including a user profile with a msal.gov.ar email address, assigned roles, and a token expiration timestamp. Additionally, a secondary static token (VAS7VSD89BDS86AFHASDBA9SD1) is issued for subsequent operations. A fake API response example is shown below: {
“status”: “success”,
“message”: “Token válido”,
“user”: {
“id”: 842,
“username”: “Jorge [removed]”,
“email”: “[removed]@msal.gov.ar”,
“roles”: [“user”, “api_access”, “webservices”],
“token_expires”: “2025-09-09T11:45:32.123456Z”
},
“token”: “VAS7VSD89BDS86AFHASDBA9SD1”
}The sisaws package’s search() function enforces the use of the secondary token. When the token is present, the function sends an HTTP GET request to a hardcoded endpoint, as shown in the example below:http://200.58.107[.]25:2104/datalist?dni=
ConclusionThe discovery of the malicious PyPI packages sisaws and secmeasure highlight the growing risk of supply chain attacks within public software repositories. By leveraging typosquatting and impersonating legitimate packages, threat actors can gain access to personally identifiable information (PII). Our analysis highlights the importance of scrutinizing all software packages, even those sourced from trusted repositories, to detect and prevent hidden threats.Zscaler CoverageZscaler’s multilayered cloud security platform detects indicators related to this threat at various levels. The figure below depicts the Zscaler Cloud Sandbox, showing detection details for this threat.Figure 3: Zscaler Cloud Sandbox report for SilentSync RAT.In addition to sandbox detections, Zscaler’s multilayered cloud security platform detects indicators related to this threat at various levels with the following threat name:Python.RAT.SilentSyncIndicators Of Compromise (IOCs)MD5Name327233d73236ca4d7c18ffd8f9924127Sisaws PyPI package9a092bbfc5325cbfca2f9807d074616aSecmeasure PyPI package3918cace55342909c8309ec37d0207fdSilentSync RAThttps://pastebin[.]com/raw/jaH2uRE1Downloading URLl200.58.107[.]25C2 server MITRE ATT&CK TechniquesTacticIDTechnique NameDescriptionPersistenceT1547Boot or Logon Autostart ScriptsEnables persistence by executing scripts during boot or logon activities.Credential AccessT1555Credentials from Password StoresAllows attackers to extract credentials stored in software for later misuse.Command and ControlT1071Application Layer ProtocolCommunicates with the C2 server using application-level protocols (e.g., HTTP/HTTPS).Defense EvasionT1140Deobfuscate/Decode Files or InformationDecodes or deobfuscates malicious payloads to evade detection during runtime.DiscoveryT1082System Information DiscoveryCollects information about the victim’s system to tailor further actions.
*** This is a Security Bloggers Network syndicated blog from Security Research | Blog authored by Manisha Ramcharan Prajapati (Sr. Security Researcher). Read the original post at: https://www.zscaler.com/blogs/security-research/malicious-pypi-packages-deliver-silentsync-rat

