惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
LangChain Blog
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
A
About on SuperTechFans
J
Java Code Geeks
量子位
博客园 - 三生石上(FineUI控件)
博客园 - Franky
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
IT之家
IT之家
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
雷峰网
雷峰网
D
DataBreaches.Net
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

Ctrl-Alt-Intel

Behind the CAPTCHA: ClickFix, WallStealer and a Hidden Miner The Gentlemen RaaS: Origins, OPSEC & OSINT The Gentlemen RaaS: Origins, OPSEC & OSINT INC Ransomware affiliate targets ESXi & NAS Devices in AD environment INC Ransomware affiliate targets ESXi & NAS Devices in AD environment Burnt by Burgers: Highlighting Void Blizzard’s Russian State Links Burnt by Burgers: Highlighting Void Blizzard’s Russian State Links Wordpress Exploitation Exposure Checker Chinese actor compromises thousands of Wordpress sites Wordpress Exploitation Exposure Checker Chinese actor compromises thousands of Wordpress sites South-East Asian Military Entities Targeted via cPanel (CVE-2026-41940) South-East Asian Military Entities Targeted via cPanel (CVE-2026-41940) Watch Guard! Qilin affiliate exploits network appliances for initial access Watch Guard! Qilin affiliate exploits network appliances for initial access KongTuke on compromised WordPress sites, DDOS Botnets and Cybercriminal Feuds KongTuke on compromised WordPress sites, DDOS Botnets and Cybercriminal Feuds Dissecting FudCrypt: A Real-World Malware Crypting Service Analysis Dissecting FudCrypt: A Real-World Malware Crypting Service Analysis Supply-Chain Attacks, TP-Link devices & a pair of socks Supply-Chain Attacks, TP-Link devices & a pair of socks The BuddyBoss Attack: Claude’s Supply-Chain Attack The BuddyBoss Attack: Full Incident Analysis Inside the UPMI Phishing-as-a-Service Platform FancyBear Exposed: Major OPSEC Blunder Inside Russian Espionage Ops MuddyWater Exposed: Inside an Iranian APT operation Investigating Suspected DPRK-Linked Crypto Intrusions Diesel Vortex: Exploring connections to Russian LLCs Aeternum Loader: When your C2 lives forever Aeternum Loader: Inside the binary
RUSTGate: A Drone-Swarm Lure Points to Potential Defence-...
Ctrl-Alt-Intel · 2026-09-13 · via Ctrl-Alt-Intel

Overview

We identified the staging server at 5[.]252[.]177[.]210:8090 through Hunt.io’s Attack Capture File Manager. Its open directory exposed a complete Windows infection chain: a PDF-themed shortcut, a drone-swarm research decoy, a batch downloader and an unsigned Rust implant that identifies itself as RUSTGate Client v2.0.

Hunt.io Attack Capture showing the RUSTGate staging server and four exposed files

Hunt.io capture of the staging server, showing the malicious shortcut, drone-swarm decoy, batch downloader and RUSTGate implant.

The drone-themed document name and delivery chain suggest potential targeting of people working with unmanned systems or defence research. We have not identified a victim or independently confirmed the server’s targeting, so we treat this as a lure-based assessment rather than attribution. The implant itself is a remote-access trojan with built-in collection and exfiltration. It can execute arbitrary shell commands, move files in both directions and automatically search every logical drive for documents, archives, images, configuration files, logs and backups.

RUSTGate is not a conventional information stealer with dedicated browser-password, cookie, wallet or session-token extraction. Its native theft logic is file-oriented. However, its unrestricted command execution and controller-to-host transfer capability allow an operator to deploy additional tooling after compromise.

We later sent a small set of protocol-compatible requests from a synthetic identity to the known command-and-control server. The server accepted registration, but four polls returned no commands and delivered no payload.

From Shortcut to Scheduled Task

The chain begins with ABCD.pdf.lnk, which uses a Microsoft Edge icon to appear document-related. Its real target is rundll32.exe, configured to invoke shell32.dll!ShellExec_RunDLL, start a minimised command shell and retrieve test.bat from 5[.]252[.]177[.]210:8090.

The downloaded batch file then:

  1. Retrieves Multicluster_Swarm_Drone_Network.pdf and opens it as a decoy.
  2. Downloads NetworkDiagnostics.exe to C:\Windows\Temp and launches it.
  3. Creates a scheduled task named NetworkDiagnostics, described as Network Diagnostics Service, which starts the implant immediately and repeats every 15 minutes.
  4. Deletes the batch file from disk.

The decoy PDF supplied was not retrieved. The file name suggests a potential targeting relating to the defence sector.

The shortcut also preserves authoring metadata: the hostname server was used, a Public Pictures source path and a UUID node using VMware’s 00:50:56 organisationally unique identifier.

Inside RUSTGate

NetworkDiagnostics.exe is a stripped 64-bit Rust executable compiled on 12 May 2026. It is not conventionally packed and retains dependency and source-path evidence consistent with cross-compilation from Linux. Embedded product text names it RUSTGate CLIENT v2.0 and an Enterprise Remote Access Tool.

Its implemented capabilities are:

  • Arbitrary command execution through cmd.exe /C, with stdout, stderr, exit status and execution time returned to the controller.
  • Controller-to-host file writes, allowing an operator to place additional files at a chosen local path.
  • Host-to-controller file transfer in 10 MiB chunks.
  • Recursive discovery across all logical drives.
  • Automatic collection every five minutes, enabled by default.
  • Live changes to the command-polling interval.
  • Basic host profiling using the client ID, hostname, username, Windows label, implant version and encryption state.
  • Local logging to rustG.log and file-tracking state in upload_state.json.

The automatic collector targets 28 extensions, including Office documents, PDFs, text and configuration files, JSON, XML, images, compressed archives and backups. It records the path, size, modification time and MD5 of files it has processed, allowing it to avoid repeat uploads or notice changes.

The malware excludes many system, temporary, security-product, browser-cache, cloud-sync, virtual-machine, developer and gaming paths. This reduces noise and access errors while focusing collection on user and business data. It does not make collection narrow: eligible files elsewhere on attached drives remain in scope.

Client Identity and C2 Protocol

RUSTGate accepts a client identifier through --client-id or the CLIENT_ID environment variable. Without an override, it reads the hostname, generates a version-4 UUID from 128 random bits, formats the UUID as 32 lowercase hexadecimal characters and joins the values with a hyphen:

<hostname>-<uuid_v4_without_hyphens>

Unless the identifier is supplied or persisted outside the implant, each new generation can create a separate server-side record for the same host.

The default controller is hxxp://5[.]252[.]177[.]215:8080. RUSTGate uses HTTP/1.1 and JSON, with four routes:

Method and route Purpose
POST /register Register host metadata and the client identifier
GET /poll/<client_id> Retrieve a command and updated polling interval
POST /result Return command output, status and timing
POST /receive_file Exfiltrate Base64-encoded file chunks

Application messages are protected with AES-256-GCM using a hardcoded shared key. Each encrypted JSON envelope contains an encrypted flag, a Base64-encoded 12-byte nonce and Base64 ciphertext with the authentication tag appended. The outer transport remains plain HTTP, and possession of one sample is sufficient to recover the shared secret; this is message obfuscation and integrity protection, not strong controller authentication.

A Live but Idle Controller

Between 23:00 and 23:02 UTC on 31 August 2026, we sent bounded requests to the controller using a clearly synthetic client. The probe used only the implant’s known routes.

The server accepted the arbitrary client identifier without a cookie, bearer token, client certificate or other observed authentication. Its encrypted response decrypted to a successful registration object, validating the recovered key, nonce and authentication-tag layout, message envelope and registration schema.

Four subsequent polls returned encrypted HTTP 404 responses. Each decrypted to:

{
  "error": "No commands",
  "polling_interval": 5
}

No command, file, executable, script, URL or second-stage payload was delivered during the short observation window.

Response headers identified waitress as the server, while automatic route handling and permissive Access-Control-Allow-Origin: * responses were consistent with a Python Flask application behind the Waitress WSGI server. The server used a new nonce for every identical encrypted poll response and closed each HTTP connection.

Public Reporting and Attribution

The exact implant hash appears in a Triage sandbox report submitted on 12 June 2026 and in Hybrid Analysis. These records show that the sample has been publicly available, but neither establishes a reliable malware-family or actor attribution.

We found no indexed vendor report tying the RUSTGate name, its protocol and this execution chain to an established family. We therefore use the malware’s own internal name descriptively.

Both delivery and C2 addresses sit in 5[.]252[.]177[.]0/24, announced by AS39798 MivoCloud. Shared hosting proximity supports an infrastructure relationship between these two addresses, but not attribution to other tenants on the network.

Detection Priorities

Defenders should prioritise the chain rather than any single filename: a PDF-themed shortcut launching rundll32.exe, ShellExec_RunDLL spawning a minimised command shell, curl.exe writing a batch file or executable beneath C:\Windows\Temp, and PowerShell registering a scheduled task whose action also points into that directory.

On a suspected host, preserve upload_state.json before remediation. Its tracked paths may help establish which files the implant evaluated or transferred. Network telemetry for the two exact IP-and-port pairs and the four URI paths can identify staging, registration, polling, command results and exfiltration. Because the controller uses plain HTTP, preserved full-packet captures may also support retrospective decryption when complete envelopes are available.

IOCs

Indicator Type Context
5[.]252[.]177[.]210:8090 IP:port RUSTGate staging service used to deliver the batch file, decoy PDF and implant.
5[.]252[.]177[.]215:8080 IP:port RUSTGate v2 HTTP command-and-control service; responsive during a bounded probe on 31 August 2026.
hxxp://5[.]252[.]177[.]210:8090/test.bat URL Stage-one batch downloader requested by the malicious shortcut.
hxxp://5[.]252[.]177[.]210:8090/Multicluster_Swarm_Drone_Network.pdf URL Decoy PDF requested by the batch file; the supplied local placeholder was empty.
hxxp://5[.]252[.]177[.]210:8090/NetworkDiagnostics.exe URL RUSTGate implant download requested by the batch file.
48365f098666a9bb6773bbf04b19b8dd23f27845308931aa6e457807b58624de SHA256 ABCD.pdf.lnk: PDF-themed shortcut that starts the delivery chain.
5d77718a81a4cd8fd2c9b61b1df5c021d6785bbfcf32b93fbc70d864b16d342f SHA256 test.bat: Downloader, launcher and scheduled-task installer.
45693dd865f7dcf30638e0f9bed22d2aebfff1ab4e0831f6c7745b07281cf0f6 SHA256 NetworkDiagnostics.exe: RUSTGate Client v2.0 implant.
C:\Windows\Temp\test.bat File path Stage-one batch file written by the shortcut and deleted after installation.
C:\Windows\Temp\NetworkDiagnostics.exe File path Implant path used by the downloader and scheduled-task action.
NetworkDiagnostics Scheduled task Persistence task created by the batch file with a 15-minute repetition interval.
upload_state.json Filename RUSTGate collection-state file; may preserve paths and metadata for processed files.
rustG.log Filename Default local log filename embedded in RUSTGate.
/register URI path RUSTGate client-registration endpoint on the C2 service.
/poll/<client_id> URI path RUSTGate command-polling endpoint; the client ID is embedded in the path.
/result URI path RUSTGate command-result endpoint.
/receive_file URI path RUSTGate chunked file-exfiltration endpoint.

MITRE ATT&CK

These mappings describe behaviour recovered from the supplied artefacts. The malware chain itself was not executed.

Tactic ID Technique Observed use
Execution T1204.002 User Execution: Malicious File A PDF-themed shortcut requires user activation.
Defence Evasion T1218.011 Signed Binary Proxy Execution: Rundll32 The shortcut invokes ShellExec_RunDLL through rundll32.exe.
Execution T1059.003 Windows Command Shell The delivery chain and implant execute commands through cmd.exe.
Execution T1059.001 PowerShell The batch file uses PowerShell to register persistence.
Persistence T1053.005 Scheduled Task/Job: Scheduled Task NetworkDiagnostics repeats every 15 minutes.
Command and Control T1071.001 Application Layer Protocol: Web Protocols The implant uses HTTP and JSON for C2.
Command and Control T1573.001 Encrypted Channel: Symmetric Cryptography Inner messages use a shared AES-256-GCM key.
Command and Control T1105 Ingress Tool Transfer The chain downloads stages and the controller can write files to the host.
Discovery T1083 File and Directory Discovery The automatic collector recursively walks logical drives.
Collection T1005 Data from Local System RUSTGate reads selected local documents, archives, images and configuration files.
Exfiltration T1041 Exfiltration Over C2 Channel Files are transferred to /receive_file in Base64-encoded chunks.
Defence Evasion T1036 Masquerading The chain uses a PDF lure, Edge icon and diagnostic-themed names.
Defence Evasion T1070.004 Indicator Removal: File Deletion The batch file deletes itself after installation.