Chinese-Speaking Operator Uses AI Agents to Target Government and Education Systems Across Asia

Chinese-Speaking Operator Uses AI Agents to Target Government and Education Systems Across Asia

Published on

Chinese-Speaking Operator Uses AI Agents to Target Government and Education Systems in Taiwan, Indonesia, Vietnam and China

Disclosure note: Hunt.io disclosed these findings under TLP:AMBER to the relevant national CERTs for the affected jurisdictions and, following responsible disclosure, held publication until September 3, 2026.


In July, we published research on a Chinese-speaking operator who embedded Claude Code and DeepSeek into intrusions across four countries. This is a second, separate campaign with different infrastructure, tooling, and targets, but the same pattern: commercial AI models used as operational components. Targets included Taiwan's Kuomintang Party History Archives, Indonesia's Ministry of Foreign Affairs, government and education systems in mainland China, and industrial hosts in Da Nang, Vietnam.

The most extensive compromise hit a Fengtai District government environment, where the operator achieved command execution, collected LSASS and registry hives, accessed government and health records, and deployed multiple Windows implants. Separate activity exposed a Chinese education AI platform and obtained root database access to a university campus-card system.

SecFlow coordinated reconnaissance, exploitation, and reporting across Claude, Qwen, and DeepSeek workers. We connected five exposed workspaces by pivoting on a shared SOCKS endpoint, which surfaced in 120 file-content matches alongside common SecFlow and GLUTTON artifacts, reused accounts, and a direct second-stage payload link.

Below are the key findings from this investigation.

  • Five open directories, one campaign. The exposed directories map to an AI orchestration host, a Java/CAS exploitation workspace, a fake MySQL deserialization service, a Shellshock and credential-testing node, and a payload-distribution store.

  • AI workers with swappable models. SecFlow split reconnaissance, exploitation, collection, and reporting among specialist workers. The runtime could switch between Claude, Qwen, and DeepSeek profiles without changing the task interface.

  • Operator infrastructure under one handle. Private niestools.com endpoints proxied model traffic while target-facing requests used authenticated SOCKS relays. The username Nie appears across the model-service namespace and proxy accounts.

  • Fake MySQL as an initial access vector. The service selected serialized Java objects from the connecting username and directed vulnerable clients to a Linux second stage on 129.211.184[.]149. Delivery logs tie the two workspaces directly.

  • Eight CVEs in active workflows. Shellshock, Spring4Shell, Ghostcat, Shiro deserialization, Log4Shell, Grafana and Nexus path traversals, and a Nacos authentication bypass.

  • AI amplified a false positive. An unsupported Shiro success claim carried into later tasks. More than 27 follow-up tests failed, yet workers continued receiving GLUTTON assignments based on the earlier claim.

  • Confirmed compromises. Fengtai command execution and credential collection, education AI-platform data access, and root database plus Grafana admin access to a university campus-card environment.

Identifying the cluster

This campaign was discovered by inspecting the below open directory on 152.42.200[.]25, cloned on the 24th July 2026:

Fig. 01. Hunt.io AttackCapture page for 152.42.200[.]25

The Hunt.io Attack Report on the open directory 152.42.200[.]25:9999 assessed an actor primarily targeting Taiwanese and Indonesian government systems with multiple attempted initial access methods:

Fig. 02. Hunt.io AttackCapture Analysis Report

We observed a payload designed to target the KMT party archives with a Shellshock vulnerability. This script contained the SOCKS proxy IP address 103.45.65[.]93:35888:

Fig. 03. Hunt.io IP lookup for 103.45.65.93 showing "Code Search" pivot

An exact code and file-content search on our platform returned 120 matches across five indexed hosts:

Fig. 04. Pivoting on the shared SOCKS endpoint surfaces five open directories and a direct second-stage relationship between the fake MySQL server and the payload host.
AttackCapture dateIPASNDescription
2026-05-1581.70.240.170AS45090AI orchestrator for automated penetration testing.
2026-06-1143.99.61.170AS45102Hosted scanning and exploitation tools.
2026-07-24152.42.200.25AS14061Used for exploitation and data exfiltration.
2026-08-04129.211.184.149AS45090Payload distribution, C2, post-exploitation. Used in Fengtai government compromise
2026-08-04159.223.64.67AS14061Used for enumeration and payload delivery.

Across these five workspaces, the campaign touched six countries and nearly a dozen sectors.

Fig. 05. The campaign targeted government, political, education, consular, healthcare, industrial, commercial, technology, and consumer systems across Asia.

AI-powered intrusions

SecFlow connected short objectives to tool-using workers, a shared filesystem, target configuration, proxy routing, and a report pipeline. The AI component organized the work. The exploitation itself still depended on conventional scripts, public proof-of-concept code, leaked credentials, webshells, and custom implants.

The workspace on 81.70.240[.]170 preserved Claude, Qwen, and SecFlow state alongside target files, session history, generated evidence, and a versioned offensive skill. This gave later workers access to earlier discoveries and allowed one target to branch into several specialist tasks.

Fig. 06. SecFlow turned short objectives into specialist tasks, routed tools through layered egress, and fed collected evidence into later workers.

SecFlow workers and runtime wrappers

SecFlow, the operator's AI orchestration framework, converted campaign objectives into tasks for specialized AI agents and supplied them with tools, target information, shared storage, and network routes.

The runtime configuration exposed five model profiles. SecFlow launched either Claude ACP or Qwen Code, injected a model name and API route, and applied broad tool permissions. Private Claude and DeepSeek-compatible endpoints under niestools.com sat beside official provider routes.

SecFlow RuntimeWrapper and VersionAPI RouteExecution Profile
claude-acp@agentclientprotocol/claude-agent-acp@0.27.0https://claude.niestools.comClaude profile with bypassPermissions and sandbox enabled
deepseek-v4-pro@qwen-code/qwen-code@0.14.4https://deepseek.niestools.com/v1ACP, experimental skills, OpenAI auth, and approval-mode=yolo
deepseek-v4-pro-anthropic@agentclientprotocol/claude-agent-acp@0.27.0https://deepseek.niestools.com/anthropicDeepSeek-labelled model through an Anthropic-compatible relay with bypassPermissions
deepseek-v4-pro-official@qwen-code/qwen-code@0.14.4https://api.deepseek.comDirect provider route with ACP, experimental skills, and yolo mode
qwen-code@qwen-code/qwen-code@0.14.4Alibaba DashScope compatible APIDirect Qwen route with yolo mode

Prompting, skills, and MCPs

The External Pentest Skill acted as a master workflow. Its central policy file, SKILL.md, moved each target through initialization, reconnaissance, exploitation, post-exploitation, and reporting. Reconnaissance established the technology stack, authentication boundaries, response baselines, exposed services, and a ranked queue of possible attack paths.

The skill then routed each candidate to a vulnerability-specific playbook under references/vuln-types. These covered file upload, command execution and template injection, SQL injection, sensitive-data exposure, Java deserialization, SSRF and cloud metadata, unauthenticated services, IDOR and authentication bypass, known product vulnerabilities, supply-chain weaknesses, WAF bypass, source-code auditing, and advanced web attacks.

Each playbook defined how to test and validate its vulnerability class, while references/reporting/reflect-verify.md required control requests, reproducible results, impact evidence, and severity checks before a finding could be accepted.

Egress network routing was part of the skill's operating policy via references/tools/proxy-and-jumphost.md:

Fig. 07. Egress traffic proxy-and-jumphost.md skill

The recovered references/config/proxies.yaml designated 43.162.217.10:35888 as the primary SOCKS5 route and 103.45.65.93:35888 as the secondary route:

Fig. 08. Nie SOCKS proxy configuration

Webshell generation was handled by a dedicated GLUTTON capability described in references/tools/webshell.md. It could produce server components for Java, .NET Framework, .NET Core, and Node.js in formats including JSP, JSPX, ASPX, ASHX, ASMX, SOAP, Razor, and JavaScript-based loaders. Workers could select lightweight, compressed, or compatibility-focused variants and either use components stored under tools/webshell/glutton/ or request a customized payload through the GLUTTON MCP service.

GLUTTON provided traffic-concealment and code-obfuscation options. Its transport modes included XOR-encrypted data hidden inside PNG RGB channels, with the resulting image data carried as PNG, form, JSON, or XML traffic. Another mode combined XOR, compression, Base64, and JSON. Generated code could use Unicode or XML encoding, randomized identifiers, encoded strings, comment injection, invisible characters, and control-flow flattening to reduce static signatures and evade basic filtering.

The MCP integration, documented in references/tools/glutton-mcp.md, exposed payload generation and session operations to Claude while preserving the same routing policy for deployment and subsequent communication. Analysis of MCP binaries revealed functionality that was exposed to agents:

AreaMethods
Target managementlist_servers, get_server, save_server, delete_server, connect_server, disconnect_server, server_info
File operationslist_files, read_file, write_file, mkdir, copy_file, move_file, delete_file, upload_file, download_file
Command executionexecute_command, open_shell, shell_exec, close_shell
Process controllist_processes, kill_process
Databaseslist_database_configs, database_query, database_execute
Network pivotinglist_port_forwards, start_port_forward, stop_port_forward
Payload generationgenerate_server, generate_memshell
Config transferserver_to_link, server_to_encrypted_link, parse_share_link

After a foothold was established, the skill shifted from vulnerability discovery to proving impact. GLUTTON could manage the remote session, execute commands, handle files, inspect memory, access application database connections, collect credentials, inject memory-resident components, and provide network forwarding. The post-exploitation workflow was defined in references/vuln-types/12-postexploit.md.

The final stages preserved requests, responses, screenshots, command output, and data samples according to references/reporting/evidence-capture.md, then converted that material into standardized reports using the rules in references/reporting/report-format.md.

With the orchestration framework, tooling, and network routing established, the following sections walk through what the operator actually achieved against specific targets, starting with the most extensive confirmed compromise.

Fengtai Government compromise

The open directory on 129.211.184[.]149:8081 contained evidence of an end-to-end compromise of a Fengtai government Office Automation (OA) environment. The intrusion progressed from public web access to Windows command execution, internal discovery, credential theft, application persistence, attempted lateral movement, data exfiltration, and remote implant deployment.

Webshells were not used only for initial command execution. They formed the operational backbone of the intrusion, giving the operator a persistent HTTP-based interface for running commands, querying databases, stealing credentials, transferring files, and launching malware.

Fig. 09. Fengtai Government high-level kill-chain

What Was Targeted

The operator targeted a connected group of Fengtai District government systems:

  • A staff-facing OA application used for administrative workflows and file management

  • A related public-health application

  • Internal Windows web and database servers

  • Oracle and Microsoft SQL Server services

  • Windows credential stores and registry hives

  • The OA user-account database and attachment repository

  • Government administrative records and patient-related health documents

Webshells Across the Intrusion Chain

Intrusion stageWebshells and server-side filesRole
Initial executioncmd.aspx and several ASP/ASPX command pagesEstablished Windows command execution through the public web applications
DiscoveryCommand-execution pages and WMI-enabled ASPX filesEnumerated the host, processes, services, accounts, network connections, and internal systems
Privilege escalationpotato.aspx, potato3.aspx, potato4.aspx, potato4r.aspxAttempted to convert an IIS or service token into SYSTEM execution
Credential theftdown.aspx, downx.aspx, and extract.aspxRetrieved the LSASS dump and registry hives and searched for password-hash material
OA account accesssqldump.aspx and sql6.aspxQueried the OA user database, extracted account records, and supported creation of a privileged OA account
Lateral movementstat_orq3_f0.aspx,winrm51.aspx, winrm52.aspx, sql_xp.aspx, sql_xp2.aspxLaunched SMB, WinRM, database, and remote-process activity against internal systems
Data exfiltrationdoc_helper.aspx, doc_view_666b2dde.aspx, down.aspx, and downx.aspxRead arbitrary files, exported database rows, and transferred large files in validated chunks
Implant deploymentdl_e6.aspx, dl_v11.aspx, and other staging filesStaged, launched, and repeatedly restarted the Windows implant

Initial Access via Office Automation Web tier

The OA web tier was the internet-facing IIS application through which government employees accessed file-management and administrative functions.

The OA FileManage handler accepted uploaded ASPX files and returned web-accessible locations. This gave the operator a route for placing server-side tooling inside the application. Other retained pages wrote cmd.aspx into the related health-system application.

cmd.aspx accepted an HTTP parameter, passed it to cmd.exe /c, and returned the command output. Classic ASP variants used WScript.Shell.Exec for interactive output or WScript.Shell.Run for hidden execution.

Additional ASPX pages called CreateProcessW with CREATE_NO_WINDOW or invoked Win32_Process.Create through WMI.

Lateral movement from IIS to the database tier

The initial IIS server acted as a foothold for the agent to move laterally. The agent uploaded an ASPX webshell that would allow it to run SQL commands to internal Oracle or SQL services. These could be used for extraction of data, but also execution of commands.

A malicious Oracle Java class invoked the Windows command interpreter and returned both standard output and error output. A web-accessible SQL bridge forwarded encoded commands to the internal Oracle service.

Retained responses confirmed execution within a Windows Server 2012 R2-era database environment. The workspace also contained a Microsoft SQL Server route using xp_cmdshell, although the strongest command responses came from the IIS webshells and Oracle channel.

Discovery Conducted Through Webshell Access

Once the webshells produced stable command output, the operator issued a compact Windows discovery sequence:

whoami
whoami /all
echo %USERDOMAIN%\%USERNAME%
ver
hostname
tasklist
net use
sc query

                
Copy

These commands identified the operating-system version, execution identity, running processes, network mappings, services, and available staging locations.

Additional tooling enumerated scheduled tasks, startup locations, user profiles, temporary storage, and previous persistence activity. The webshells were then used to launch scripts that scanned the internal environment for SMB, WinRM, web, and database services.

Follow-up activity included DNS lookups, raw TCP probes, directory enumeration, virtual-host testing, and searches for writable webroots. This connected the public OA application to internal database servers, IIS application pools, VPN infrastructure, and other office systems.

Privilege-Escalation Attempts

The operator staged several ASPX implementations of Potato-style privilege-escalation techniques. These pages were designed to convert an IIS or service token with impersonation rights into SYSTEM-level execution.

The variants attempted coercion through Windows printing, EFSRPC, and LSARPC mechanisms. After obtaining an impersonated token, they attempted to duplicate it and launch a process using CreateProcessWithTokenW.

This demonstrates how the operator used webshells not only as command shells but also as delivery mechanisms for local privilege-escalation code.

Credential Theft Through Web-Accessible Handlers

The credential-theft evidence began in the open directory with an existing LSASS memory dump. The approximately 75.8 MB object appeared in the OA attachment repository under dump-like filenames.

The operator deployed down.aspx in a web-accessible attachment location. It accepted parameters controlling the source file, starting offset, and requested length, allowing an arbitrary file to be downloaded in sections.

A companion handler, downx.aspx, applied a bytewise XOR operation (key 0xAA) before returning the data. This provided a lightly obfuscated alternative if the direct transfer was blocked or inspected.

The operator divided the LSASS dump into 37 blocks, requested each block through an authenticated SOCKS route, verified the expected byte count, and reconstructed the complete file.

The operator also collected the SAM and SYSTEM registry hives. Another server-side page, extract.aspx, scanned sections of the memory dump for Windows password-hash material.

OA Account Access and Application Persistence

Credential collection was paired with direct access to the OA database.

sqldump.aspx queried the OA user table directly. sql6.aspx accepted encoded SQL statements and returned database rows in batches. Two retained result sets contained 500 and 322 records, producing a total of 822 OA account records.

The operator then inserted and verified a new active OA account with elevated application privileges. This created a persistence route at the application layer that was separate from the Windows webshells and implant.

Even if individual command shells were removed, the newly created OA account could potentially preserve access to administrative functions and stored information.

Data Collection and Exfiltration

The operator built several HTTP-based collection channels around the compromised OA application:

  • sqldump.aspx and sql6.aspx streamed database records.

  • doc_helper.aspx and doc_view_666b2dde.aspx read arbitrary files and returned Base64-encoded content.

  • down.aspx supported resumable binary transfer.

  • downx.aspx provided an XOR-obfuscated transfer option.

These web-accessible handlers turned the compromised OA application into an exfiltration platform. Data could be requested through ordinary HTTP traffic, returned in manageable sections, and reconstructed after transfer.

The OA inventory contained 949 attachments totaling approximately 1.28 GB.

Recovered material included:

  • Government workflow and administrative information

  • 822 OA account records

  • Selected health-related documents

  • A chronic-disease report containing patient information

  • Windows credential material

Implant deployment via Webshells

The initial beachhead allowed the agent to gain command execution on the IIS server. This command-execution was used to download, stage and execute a Go-based implant we have called "SecBox":

  • dl_icn.aspx - downloads hXXp://158.247.234[.]124:18000/c22.exe and writes to C:\Windows\Temp\fw.exe

  • launchfw.aspx - downloads hXXp://158.247.234[.]124:18000/c22.exe and writes to C:\Windows\Temp\fw.exe then executes using Process.Start() and WMI Win32_Process.Create

Different SecBox binaries and other methods for staging were also used via various ASPX files, although we will not be covering these all for brevity.

The ASPX files were observed staging from the IP address 158.247.234[.]124. Our platform intelligence allowed us to enrich this indicator:

Fig. 10. Hunt.io platform intelligence for 158.247.234[.]124

The "Code Search" tab revealed additional linked payloads, configurations and log files containing this IP:

Fig. 11. Code search pivot for 158.247.234[.]124

SecBox implant analysis

SecBox is a privately built or customized Go remote-access and network-pivot framework. Named "SecBox" from binary strings, it was deployed via Webshells for an additional layer of endpoint control.

The Windows implants masquerade as Microsoft-style system components via the binary metadata:

Metadata fieldValue
CompanyWindows Infrastructure Services
ProductSystem Configuration Utility
File descriptionSystem Configuration Utility
Original filenamesyscfg.exe
Internal namesyscfg
File version3.1.0.2
Product version3.1

C2 beaconing

On execution, SecBox selects an embedded or DDR-supplied endpoint and establishes a long-lived connection using TCP, TLS, WebSocket, KCP, or QUIC. Yamux multiplexing allows tasking, file transfer, and pivot traffic to share the same connection.

Initial registration includes a client identifier and basic host information such as operating system, architecture, and hostname. The controller can subsequently replace or clear the implant's active endpoints.

Route or URIPurpose
129.211.184[.]149:64288Primary endpoint embedded in several Windows builds
129.211.184[.]149:8443Controller backend and payload-distribution service
158.247.234[.]124:18000DDR-supplied TCP/WebSocket redirector
207.148.109[.]245:18000Earlier plaintext DDR redirector
*.trycloudflare.com:443Short-lived DDR alternatives using TCP or secure WebSockets
GET /task/{id}Retrieve task information
POST /taskCreate or submit a task
PUT /task/{id}Update task state
DELETE /task/{id}Terminate or remove a task
POST /uploadTransfer files to the controller
/public/uploads/Retrieve staged files

Capabilities

SecBox supports remote shell execution, task control, file upload and download, download-and-execute, process and token access, Windows service management, host discovery, TCP port scanning, SOCKS5 proxying, port forwarding, bind pivots, and self-removal. No automatic persistence mechanism was confirmed in the reviewed builds.

Dead Drop Resolver

SecBox has capabilities to leverage a Dead Drop Resolver mechanism via Pastebin or Github. It allows an implant to obtain replacement C2 routes without requiring a new binary.

The implant contains a build-specific AES key and can retrieve an encrypted routing value from a dead-drop service. The recovered DDR data uses:

Base64(nonce || AES-256-GCM ciphertext || authentication tag)

                
Copy

After authenticated decryption, the plaintext contains one or more comma-separated endpoints, for example TCP, WebSocket, or TryCloudflare routes. Different builds use different embedded DDR keys and can therefore receive separate infrastructure configurations.

The recovered ddr*.txt files are captured or test copies of hosted DDR responses. Pastebin and GitHub Gist retrieval templates are present within the SecBox binaries, but the campaign-specific public URLs were not recovered.

DDR supplied routes included:

tcp://imported-concerns-listening-typing.trycloudflare.com:443
tcp://158.247.234.124:18000
tcp://marriage-step-wave-heavy.trycloudflare.com:443
wss://wins-say-charm-social.trycloudflare.com/c2
ws://158.247.234.124:18000/

                
Copy

The Fengtai compromise was the deepest confirmed intrusion, but the campaign reached other targets through different entry points. The AI orchestrator host at 81.70.240[.]170 also contained evidence of a separate compromise.

Chinese education AI platform and related services

The open directory on 81.70.240[.]170, the AI orchestrator host, targeted a Chinese education AI platform's exposed systems enabling a confirmed compromise of its AI application-management and data layer. The exposed service was the management plane used to configure and operate production AI assistants. Its unauthenticated backend returned 23 agent configurations, 14 populated secret fields, internal service addresses and 104 complete AI dialogue records, including user prompts, model responses and execution metadata.

Fig. 12. Hunt.io AttackCapture page for 81.70.240.170

The exposed configurations disclosed multiple downstream AI-platform credentials, including Dify application keys, a Coze private key and platform AI credential material. The Dify credentials were then used successfully against the production Dify API. The retained collection contains 169 conversations and 339 message/query entries from topic-selection, study-partner, job-recommendation and résumé assistants. These records included educational and career-related prompts and, in 92 message entries, structured student-profile information covering two distinct students, including names, student numbers, advisers, departments, grades and majors.

The exposed credentials were also used to invoke a production model, consuming 631 tokens, and an evidence summary records a successful file upload. Separately, the unauthenticated platform backend accepted a request for a new agent configuration and returned a success response. This confirms a suspected unauthenticated configuration-write capability and creates a credible risk of AI-agent tampering, redirection of user requests, malicious downstream integrations and supply-chain abuse. However, the retained evidence does not show that the new configuration persisted or that its external URL was dereferenced; SSRF and backend code execution therefore remain unproven.

Overall, this should be described as a compromise of the platform's AI control and data plane, rather than a confirmed server takeover. Confidentiality was affected through disclosure of AI conversations, student information, application configuration and reusable credentials. Integrity was affected because the management service accepted an unauthenticated configuration write. Model invocation also demonstrates that the leaked credentials could be used to consume the organisation's AI resources.

Other exposed and targeted services

Other services on the same platform exposed substantial security-sensitive information without producing evidence of host-level execution. The portal disclosed CAS private-key material, client-side cryptographic material, test credentials and internal addresses. Retained Shiro, AJP and SSRF testing did not achieve code execution or authenticated access to protected data.

A separate Chinese online platform disclosed account-existence behaviour but did not accept a login. Huazhong Agricultural University's recruitment system appears only in logs showing proxy fallback and should not be described as compromised. Domains belonging to an English-language dating platform operator received DNS, ColdFusion, OAuth, CORS, host-header, cache and path testing. Client configuration was exposed, but the retained evidence contains no member-account access, session theft or private member data.

A separate workspace on 159.223.64[.]67 took a different approach to initial access.

Fake MySQL deserialization and Afghan enumeration

The open directory on 159.223.64[.]67 contained fakeserver_new.py which operated a malicious MySQL-compatible service on port 3306. When a vulnerable Java application connected, the service returned crafted data designed to trigger unsafe object processing within the client. In practice, this allowed the server to use an outbound database connection as an initial execution vector and launch a platform-aware downloader on the affected host.

Fig. 13. Hunt.io AttackCapture page for 159.223.64.67

Five payloads ran the same shell downloader. They selected a temporary path, detected Linux OS and architecture, fetched an implant from:

hxxp://129.211.184[.]149:8443/999b4e8c/public/dnc/a6d28ebe?os=<os>&arch=<arch>

                
Copy

The platform-aware downloader that queried the operator's staging endpoint using the victim's operating system and architecture. The recovered outputs associated with this infrastructure are statically linked Go Linux agents belonging to the SecBox-compatible/GO-SYSCFG family.

Separately this open-directory showed evidence of targeted enumeration of an Afghan telecommunications operator's corporate network ranges.

On the 3rd of August, the actor leveraged nmap to perform targeted scanning of whole /24 ranges and a specific IP address:

nmap -Pn -sT -T4 --max-retries 1 --host-timeout 12s -p 21,22,80,443,4899,5900,3389,8443,8990,2775,1401 -oN /tmp/svc_scan.txt <operator /24 range> <operator host>

                
Copy

The /24 range is linked to the operator's corporate network. Many IP addresses within this range resolve to subdomains used for services such as Jira, Helpdesk, VPN, and Outlook. An additional host in the same range was scanned that was linked to the operator's call-back ringtone management domain.

Notably, the nmap command specified scanning port 2775 (SMPP), a standard telecommunications protocol used to transfer SMS messages. Along with the exclusive scanning of the operator's IP ranges, this might suggest a strategic interest in Afghan telecommunications networks.

Across the campaign, SecFlow workers were directed to deploy GLUTTON webshells after gaining access. The recovered skill backup reveals how those payloads were built.

Steganographic GLUTTON webshells

The recovered skill backup contains ten server-side GLUTTON loader templates plus MethodInvoker.class. The templates cover JSPX, ASP.NET Web Forms, ASP.NET handlers, SOAP services, and .NET Core Razor. Raw variants expose the loading logic, confusion variants contain obfuscated versions, with code split across CDATA blocks and random fragments, and a Unicode JSPX variant further changes the on-disk representation to resist signature matching.

Each loader accepts a PNG in the request body, or as base64 data in the SOAP variant. It reads pixels in row-major order, concatenates the red, green, and blue channel bytes, XORs the stream with a repeating 16-byte ASCII key, and scans backward for the three-byte FF 88 00 terminator:

Fig. 14. Steganographic webshell source code

Across all variants, an identical XOR key "d0c41072a0dc784c" was used. Additionally, each variant would search for the byte sequence "FF 88 00" within the decoded bytes to specify where the payload ended.

Java variants define the recovered class through a new class loader. .NET variants use Assembly.Load. The loader then caches the resulting runtime object in application state, AppDomain data, or a static table.

The PNG is therefore a transport container for executable bytecode. The small web-facing page remains a generic decoder while the functional stage arrives inside image pixels and loads directly into memory. This separates the visible server file from the implant body and can bypass controls that permit image uploads or inspect only extensions and MIME types.

SecFlow assignments explicitly connected this tooling to exploitation. Workers were directed to load the GLUTTON guide, check the MCP wrapper, generate server components, and attempt memory-shell injection.

The remaining workspace on 152.42.200[.]25 contained the campaign's broadest geographic spread.

KMT, Indonesia, and the Da Nang business cluster

The open directory on 152.42.200.25 contained artefacts relating to targeting of the KMT party, Taiwanese government, Indonesian Foreign Ministry and Vietnamese organisations.

Fig. 15. Hunt.io AttackCapture page for 152.42.200.25

Shellshock payloads were used against the Taiwan KMT party archives domain, against the exact /gs32/kmt/index.htm path. They sent the Shellshock function prefix in the User-Agent header and tried to execute /bin/bash -c:

User-Agent: () { :;}; /bin/bash -c '<command>'

                
Copy

The script used had hardcoded post-exploitation commands designed to perform enumeration:

Fig. 16. Post-exploitation Linux enumeration commands

The script xor_bd.py acted as a webshell client, with a hardcoded URI to an Indonesian Foreign Ministry domain. This would allow the threat actor to interact with a webshell /webservice/sync_data.php, sending commands XOR encoded:

Fig. 17. Webshell client used against Indonesian Foreign Ministry URI

The script deploy_all.sh was designed to run on a compromised web-hosting server. It would write PHP webshells masqueraded as Wordpress files to the below URIs:

wp-content/plugins/class-wp-settings.php
wp-content/cache/cache-main.php
wp-content/uploads/maintenance-check.php
wp-includes/class-wp-l10n.php

                
Copy

All 20 deployments contained the identical webshell. Once decoded, the PHP read an encrypted command from the raw HTTP request body, decrypted it with AES-256-CBC, passed the plaintext to shell_exec() and returned encrypted command output:

Fig. 18. AES Webshell impersonating Wordpress sites

Across all five workspaces, the operator tested or deployed eight named CVEs alongside several application-specific techniques.

Vulnerabilities exploited or staged

8 named CVEs were used in active workflows. The table records how the operator used each active workflow and separates a successful access path from a probe or prepared payload.

Fig. 19. The campaign paired target-specific CVE workflows with application-specific deserialization, credential attacks, webshell staging, and post-exploitation tooling.
CVETarget or ContextObserved Activity
CVE-2014-6271KMT Party History ArchivesExplicit Shellshock function prefix and Bash command chains
CVE-2020-1938Liuzhou public-service applicationsAJP/Ghostcat file-read and JSP-processing probes against hostnames and direct IPs
CVE-2022-22965Liuzhou public-service applicationsSpring4Shell AccessLogValve data-binding payloads with encoded JSP/JSPX variants
CVE-2016-4437AI-task Shiro targetrememberMe default-key, serialized-gadget, and OOB callback tests
CVE-2021-43798Grafana task workflowPlugin-path directory-traversal variants
CVE-2024-4956Nexus task workflowNexus Repository path-traversal requests
CVE-2021-29441Nacos task workflowAuthFilter User-Agent: Nacos-Server bypass probe
CVE-2021-44228Log4j target setLocal HTTP, RMI, and LDAP JNDI service with a callback command

Beyond the CVEs and tooling, a recurring handle tied the campaign's infrastructure together.

Nie's infrastructure

Across the campaign, the handle "Nie" kept recurring. We discovered this cluster of open-directories as they all used a SOCKS proxy IP address 103.45.65[.]93, often with the credential Nie as the username.

From the recovered initial AI agent skills, we observed explicit tasking that would leverage this IP and credentials. The "GLUTTON" webshell MCP binaries were also hardcoded with build paths linked to this handle:

C:\Users\nie\.cargo\...
/Users/nie/Project/glutton/...

                
Copy

All "GLUTTON" MCP binaries also hardcode the domain https://glutton.niestools.com for authorization.

Furthermore, SecFlow was configured to route requests through claude.niestools[.]com and deepseek.niestools[.]com. Using our platform, we can pivot on the initial domain to discover further relevant subdomains:

Fig. 20. Hunt.io platform showing subdomains of niestools.com

We can see multiple domains, including proxy.niestools[.]com:

Fig. 21. proxy.niestools.com SOCKS proxy pool

This is a Chinese proxy-pool management console for collecting, monitoring, filtering, and exporting HTTP and SOCKS5 IP proxies.

The domain chatgpt.niestools[.]com returns a 401 Unauthorized. We can observe from the HTTP response that this domain is running the Sub2API AI gateway:

Fig. 22. chatgpt.niestools.com running Sub2API AI pool

Sub2API is an open-source AI API gateway that pools multiple upstream subscriptions or API keys and redistributes their capacity through a single endpoint. It handles authentication, billing, load balancing, rate limits, and request forwarding to providers such as OpenAI, Anthropic, and Google. Although it can be used legitimately, operators may use it to resell subscription access, conceal account sharing, or bypass regional restrictions.

With knowledge of this response, we can use HuntSQL to uncover additional IP addresses running Sub2API AI gateways:

SELECT
  ip
FROM
  httpv2
WHERE
  http.headers.bytes.content LIKE '%Sub2API Admin%'
GROUP BY
  ip

                
Copy

This specific query returned two additional IP addresses: 82.156.42[.]112 and 47.253.191[.]55. These are unrelated to this specific campaign.

MITRE ATT&CK mapping

TechniqueIDObserved Use
Active ScanningT1595Multi-worker port, subdomain, service, API, Nuclei, and framework discovery
Exploit Public-Facing ApplicationT1190Shellshock, Spring4Shell, Ghostcat, Shiro, Log4Shell, Grafana, Nexus, Nacos, and application-specific attempts
Valid AccountsT1078Root jump access, proxy credentials, application accounts, Dify keys, database and Grafana access
External Remote ServicesT1133Public VPN, SSH, database, appliance, and management services
ProxyT1090Authenticated L1 SOCKS relays and L2 SSH dynamic forwarding
SSHT1021.004Root SSH to 81.70.240.170 for tunneling and tool access
OS Credential DumpingT1003LSASS acquisition & registry-hive export
Unsecured Credentials: FilesT1552.001Secrets collected from configuration, frontend bundles, reports, container material, and application files
Web ShellT1505.003GLUTTON, PHP, ASPX, JSP, CGI, and PNG-carried loaders prepared or delivered across access workflows
Ingress Tool TransferT1105Implant download from 129.211.184[.]149, staged scanners, JARs, and GLUTTON components
Data from Information RepositoriesT1213OA records, AI conversations, sessions, files, agent definitions, and database content
Exfiltration Over Web ServiceT1567API pagination and export, HTTP PUT, and callback-driven collection

Indicators and observables

Table 1: operator and support infrastructure

IndicatorRole
81.70.240[.]170Open directory containing the SecFlow workspace; AI execution host, SSH jump host, Layer 2 egress point, and out-of-band listener
43.99.61[.]170Open directory containing the Java/CAS exploitation workspace, GLUTTON tooling, and JNDI listener
152.42.200[.]25Open directory containing the Shellshock and credential-testing workspace and callback listener
129.211.184[.]149Open directory used as a payload-distribution, C2, and post-exploitation store
159.223.64[.]67Open directory containing the fake MySQL deserialization server, scanner, and callback tooling
129.211.184[.]149:64288Primary SecBox C2 endpoint embedded in several Windows implant builds
129.211.184[.]149:8443SecBox controller backend and payload-distribution service
158.247.234[.]124:18000SecBox DDR-supplied TCP and WebSocket redirector
207.148.109[.]245:18000Earlier plaintext SecBox DDR redirector
tcp://imported-concerns-listening-typing[.]trycloudflare[.]com:443Short-lived SecBox DDR-supplied TCP route
tcp://marriage-step-wave-heavy[.]trycloudflare[.]com:443Short-lived SecBox DDR-supplied TCP route
wss://wins-say-charm-social[.]trycloudflare[.]com/c2Short-lived SecBox DDR-supplied secure WebSocket route
103.45.65[.]93:35888Shared authenticated SOCKS5 route
43.162.217[.]10:35888Primary authenticated SOCKS5h route configured in SecFlow tasks
211.159.155[.]240SecFlow gateway
*.niestools[.]comOperator-controlled domain family supporting SecFlow and related infrastructure, including private model relays, AI gateways, proxy-pool management, the Outline knowledge base, and GLUTTON authorization. Observed hosts included claude, deepseek, chatgpt, proxy, wiki, and glutton

Table 2: Victim-executed file and payload indicators

Filename or observable SHA-256 Function
agent_new.out 20a8ed7d235cf6419e2d4b1e439595ef96961adaecf3c990c5cd507eb4a74ca4 Windows SecBox-compatible multiprotocol implant
e6475722.exe / v11.exe 0b3d76cf1ac6648d4cfbe39c8fea67c6b28a361ea6de86a92cc7d54a0181cc9e Windows SecBox payload staged and executed on the Fengtai OA host as C:\Windows\Temp\v11.exe
av2_chk_cn-44.exe and aliases 3c9b2ec423f91642d2d09031d47e50d7ebe77a8b12ec5e393405f85da11a0f6a Windows implant build staged under multiple filenames; associated PE metadata includes the deceptive internal name syscfg.exe
bf57c009.bin 4ecbdaedf9040dbbb33ce7a96ad961dce0f3ffb2c41285606a27a7c5ab3d2273 Linux SecBox-compatible implant variant
c22.exe / fw.exe / fw_c049574c.exe eef30bb6834bf349d1b1f4401aa0b8e73631ea632a884c6498a5b3a9e069d412 Retained Windows implant sample matching the size of fw.exe in execution telemetry; assessed candidate for the c22.exe → C:\Windows\Temp\fw.exe deployment path
cmd.aspx Not retained as a standalone sample Victim-side HTTP command shell accepting parameter c, executing it through cmd.exe /c, and returning standard output
down.aspx dcd59349bd6cc29e59da5105f2f08f606ece8dfac4e369e052eca1786450f541 Victim-side arbitrary-file range reader supporting resumable binary exfiltration
downx.aspx 135b33b289d481d60fa2527aeae5882d33adcb6756df89ea7684f4af3567b141 Victim-side arbitrary-file range reader applying bytewise XOR with 0xAA
extract.aspx 9ef85857ed2b53a23eb41ce5769b4fb5b8b2225404b227a776520771df86706e Victim-side LSASS-dump scanner searching for username and NT-hash material
sqldump.aspx 797676d3becc124bb6705ebd76189e8decedae3abf978434d730459133351064 Victim-side OA database reconnaissance and extraction payload targeting SysUserinf, permissions, linked servers, and SQL Agent jobs
sql6.aspx af6404a125d1e4eb67425ec17f2abeec7242fb6f7377de739e47cb7f5d147eee Victim-side Base64-encoded arbitrary SQL interface capable of returning up to 500 rows per request
doc_helper.aspx 053c8dfb147262aaedf0d9cdce631ad73cfd5b1a808114c12bbe5adfe4796302 Key-protected victim-side file-management webshell supporting arbitrary read, write, append, and existence checks
doc_view_666b2dde.aspx 053c8dfb147262aaedf0d9cdce631ad73cfd5b1a808114c12bbe5adfe4796302 Renamed duplicate of doc_helper.aspx with identical victim-side functionality
dl_e6.aspx 80d778c9d9e44896f08b1a196254527e39da4e8ce5edebf8d296b7dec6b7b3e0 Victim-side loader that copies e6475722.exe to C:\Windows\Temp\v11.exe and attempts execution through WScript.Shell or Shell.Application
dl_v11.aspx f7c233df3423912296a4e78dd1fa7a1f6412606177336be0762961c93e8fae3c Victim-side downloader that copies e6475722.exe to C:\Windows\Temp\v11.exe
dl_icn.aspx 548df87041ea2cbe99fc519fd89c5b7cdfe935d87a803a80a5f747aa9f076091 Victim-side downloader that retrieves hxxp://158.247.234[.]124:18000/c22.exe and writes it as C:\Windows\Temp\fw.exe
launchfw.aspx 79cc5855375b5c840bae8263dc3dc5a9fd9cbd7920ab4ed65d407fd830d3eda1 Victim-side loader that downloads c22.exe as fw.exe, then executes it through Process.Start and WMI
potato4.aspx a407f540f4eb0c8fae5cd83fa6e210df6c4ed7fca6aedb6ebc5efbf031989ac4 Victim-side EFSRPC named-pipe token-impersonation and privilege-escalation payload
cb1_glutton.bin 00759d29178baabcbe9682a953c64e179fd24d86dac0d6abdc8e5070216923f2 Primary Tomcat or Undertow GLUTTON injector intended for execution inside a victim Java application
cb1_glutton_wl.bin f51ab15a89155ce4d3bcd0a65cf6a3ccf62115f502e0863c19baf93d11c57acc WebLogic or CAS ticket-interception GLUTTON variant
cb1_redis_glutton.bin 853222ffdcc74dd606f6ff79ff353ce3626d50e54e9aa1a87fb03e2121e82aaf Redis-assisted GLUTTON payload writer targeting victim Java applications
MethodInvoker.class 218d8508c2035c78b49d33e087e33643f4f906af5694be68cf939f17fa4b5ffd Tomcat or Undertow in-memory filter component
confusion_d0c41072a0dc784c.jsp 2deac4ab60f6cb1bb65fa4df5dbd9dcf7b7bc27e16bea55c3ddbe47154720277 Obfuscated JSP loader that decodes and loads a PNG-carried in-memory payload on the victim
confusion_d0c41072a0dc784c_nodejs.html e6ee24c6775867714d1e4b586d75c0168e61ba49b36e0a29b73cbc925df6ae47 Obfuscated Node.js loader for a PNG-carried in-memory payload
CommonsBeanutils1.bin 1c00ce5354c91a9db878e2b4db750c2a74140e0d15aeac9b8cecf4599598b736 Java deserialization payload executed by the victim JVM to download a second-stage implant
CommonsCollections6.bin 27fae1b7be68b0c27c5dad33aaed9de5b38406fb20b971757b6be386e3ffc7a6 Victim-executed Java deserialization callback and second-stage downloader payload
Spring1.bin 77f5b5321e2f5c18b3c610e50084b98201fb6214e13665cc49da5afbf3f49611 Victim-executed Spring gadget-chain downloader delivered through the fake MySQL workflow

Conclusion

A single SOCKS pivot expanded into five exposed open directories spanning six countries and nearly a dozen sectors. The underlying activity was connected through recurring infrastructure, shared tooling, reused accounts, and the Nie handle across proxy credentials, build paths, and the niestools.com domain family.

SecFlow made the campaign faster and broader by splitting work across specialist AI workers and carrying context between them. But that same shared context amplified a false premise when an unsupported Shiro claim persisted and drove follow-on GLUTTON assignments that never should have happened. The confirmed compromises still came down to familiar weaknesses: exposed services, unpatched applications, stolen credentials, and conventional post-exploitation tooling.

The open directories, attacker tooling, and infrastructure pivots covered in this research were discovered through our AttackCapture and Code Search capabilities. To see how these workflows apply to your own investigations, book a demo.

Disclosure note: Hunt.io disclosed these findings under TLP:AMBER to the relevant national CERTs for the affected jurisdictions and, following responsible disclosure, held publication until September 3, 2026.


In July, we published research on a Chinese-speaking operator who embedded Claude Code and DeepSeek into intrusions across four countries. This is a second, separate campaign with different infrastructure, tooling, and targets, but the same pattern: commercial AI models used as operational components. Targets included Taiwan's Kuomintang Party History Archives, Indonesia's Ministry of Foreign Affairs, government and education systems in mainland China, and industrial hosts in Da Nang, Vietnam.

The most extensive compromise hit a Fengtai District government environment, where the operator achieved command execution, collected LSASS and registry hives, accessed government and health records, and deployed multiple Windows implants. Separate activity exposed a Chinese education AI platform and obtained root database access to a university campus-card system.

SecFlow coordinated reconnaissance, exploitation, and reporting across Claude, Qwen, and DeepSeek workers. We connected five exposed workspaces by pivoting on a shared SOCKS endpoint, which surfaced in 120 file-content matches alongside common SecFlow and GLUTTON artifacts, reused accounts, and a direct second-stage payload link.

Below are the key findings from this investigation.

  • Five open directories, one campaign. The exposed directories map to an AI orchestration host, a Java/CAS exploitation workspace, a fake MySQL deserialization service, a Shellshock and credential-testing node, and a payload-distribution store.

  • AI workers with swappable models. SecFlow split reconnaissance, exploitation, collection, and reporting among specialist workers. The runtime could switch between Claude, Qwen, and DeepSeek profiles without changing the task interface.

  • Operator infrastructure under one handle. Private niestools.com endpoints proxied model traffic while target-facing requests used authenticated SOCKS relays. The username Nie appears across the model-service namespace and proxy accounts.

  • Fake MySQL as an initial access vector. The service selected serialized Java objects from the connecting username and directed vulnerable clients to a Linux second stage on 129.211.184[.]149. Delivery logs tie the two workspaces directly.

  • Eight CVEs in active workflows. Shellshock, Spring4Shell, Ghostcat, Shiro deserialization, Log4Shell, Grafana and Nexus path traversals, and a Nacos authentication bypass.

  • AI amplified a false positive. An unsupported Shiro success claim carried into later tasks. More than 27 follow-up tests failed, yet workers continued receiving GLUTTON assignments based on the earlier claim.

  • Confirmed compromises. Fengtai command execution and credential collection, education AI-platform data access, and root database plus Grafana admin access to a university campus-card environment.

Identifying the cluster

This campaign was discovered by inspecting the below open directory on 152.42.200[.]25, cloned on the 24th July 2026:

Fig. 01. Hunt.io AttackCapture page for 152.42.200[.]25

The Hunt.io Attack Report on the open directory 152.42.200[.]25:9999 assessed an actor primarily targeting Taiwanese and Indonesian government systems with multiple attempted initial access methods:

Fig. 02. Hunt.io AttackCapture Analysis Report

We observed a payload designed to target the KMT party archives with a Shellshock vulnerability. This script contained the SOCKS proxy IP address 103.45.65[.]93:35888:

Fig. 03. Hunt.io IP lookup for 103.45.65.93 showing "Code Search" pivot

An exact code and file-content search on our platform returned 120 matches across five indexed hosts:

Fig. 04. Pivoting on the shared SOCKS endpoint surfaces five open directories and a direct second-stage relationship between the fake MySQL server and the payload host.
AttackCapture dateIPASNDescription
2026-05-1581.70.240.170AS45090AI orchestrator for automated penetration testing.
2026-06-1143.99.61.170AS45102Hosted scanning and exploitation tools.
2026-07-24152.42.200.25AS14061Used for exploitation and data exfiltration.
2026-08-04129.211.184.149AS45090Payload distribution, C2, post-exploitation. Used in Fengtai government compromise
2026-08-04159.223.64.67AS14061Used for enumeration and payload delivery.

Across these five workspaces, the campaign touched six countries and nearly a dozen sectors.

Fig. 05. The campaign targeted government, political, education, consular, healthcare, industrial, commercial, technology, and consumer systems across Asia.

AI-powered intrusions

SecFlow connected short objectives to tool-using workers, a shared filesystem, target configuration, proxy routing, and a report pipeline. The AI component organized the work. The exploitation itself still depended on conventional scripts, public proof-of-concept code, leaked credentials, webshells, and custom implants.

The workspace on 81.70.240[.]170 preserved Claude, Qwen, and SecFlow state alongside target files, session history, generated evidence, and a versioned offensive skill. This gave later workers access to earlier discoveries and allowed one target to branch into several specialist tasks.

Fig. 06. SecFlow turned short objectives into specialist tasks, routed tools through layered egress, and fed collected evidence into later workers.

SecFlow workers and runtime wrappers

SecFlow, the operator's AI orchestration framework, converted campaign objectives into tasks for specialized AI agents and supplied them with tools, target information, shared storage, and network routes.

The runtime configuration exposed five model profiles. SecFlow launched either Claude ACP or Qwen Code, injected a model name and API route, and applied broad tool permissions. Private Claude and DeepSeek-compatible endpoints under niestools.com sat beside official provider routes.

SecFlow RuntimeWrapper and VersionAPI RouteExecution Profile
claude-acp@agentclientprotocol/claude-agent-acp@0.27.0https://claude.niestools.comClaude profile with bypassPermissions and sandbox enabled
deepseek-v4-pro@qwen-code/qwen-code@0.14.4https://deepseek.niestools.com/v1ACP, experimental skills, OpenAI auth, and approval-mode=yolo
deepseek-v4-pro-anthropic@agentclientprotocol/claude-agent-acp@0.27.0https://deepseek.niestools.com/anthropicDeepSeek-labelled model through an Anthropic-compatible relay with bypassPermissions
deepseek-v4-pro-official@qwen-code/qwen-code@0.14.4https://api.deepseek.comDirect provider route with ACP, experimental skills, and yolo mode
qwen-code@qwen-code/qwen-code@0.14.4Alibaba DashScope compatible APIDirect Qwen route with yolo mode

Prompting, skills, and MCPs

The External Pentest Skill acted as a master workflow. Its central policy file, SKILL.md, moved each target through initialization, reconnaissance, exploitation, post-exploitation, and reporting. Reconnaissance established the technology stack, authentication boundaries, response baselines, exposed services, and a ranked queue of possible attack paths.

The skill then routed each candidate to a vulnerability-specific playbook under references/vuln-types. These covered file upload, command execution and template injection, SQL injection, sensitive-data exposure, Java deserialization, SSRF and cloud metadata, unauthenticated services, IDOR and authentication bypass, known product vulnerabilities, supply-chain weaknesses, WAF bypass, source-code auditing, and advanced web attacks.

Each playbook defined how to test and validate its vulnerability class, while references/reporting/reflect-verify.md required control requests, reproducible results, impact evidence, and severity checks before a finding could be accepted.

Egress network routing was part of the skill's operating policy via references/tools/proxy-and-jumphost.md:

Fig. 07. Egress traffic proxy-and-jumphost.md skill

The recovered references/config/proxies.yaml designated 43.162.217.10:35888 as the primary SOCKS5 route and 103.45.65.93:35888 as the secondary route:

Fig. 08. Nie SOCKS proxy configuration

Webshell generation was handled by a dedicated GLUTTON capability described in references/tools/webshell.md. It could produce server components for Java, .NET Framework, .NET Core, and Node.js in formats including JSP, JSPX, ASPX, ASHX, ASMX, SOAP, Razor, and JavaScript-based loaders. Workers could select lightweight, compressed, or compatibility-focused variants and either use components stored under tools/webshell/glutton/ or request a customized payload through the GLUTTON MCP service.

GLUTTON provided traffic-concealment and code-obfuscation options. Its transport modes included XOR-encrypted data hidden inside PNG RGB channels, with the resulting image data carried as PNG, form, JSON, or XML traffic. Another mode combined XOR, compression, Base64, and JSON. Generated code could use Unicode or XML encoding, randomized identifiers, encoded strings, comment injection, invisible characters, and control-flow flattening to reduce static signatures and evade basic filtering.

The MCP integration, documented in references/tools/glutton-mcp.md, exposed payload generation and session operations to Claude while preserving the same routing policy for deployment and subsequent communication. Analysis of MCP binaries revealed functionality that was exposed to agents:

AreaMethods
Target managementlist_servers, get_server, save_server, delete_server, connect_server, disconnect_server, server_info
File operationslist_files, read_file, write_file, mkdir, copy_file, move_file, delete_file, upload_file, download_file
Command executionexecute_command, open_shell, shell_exec, close_shell
Process controllist_processes, kill_process
Databaseslist_database_configs, database_query, database_execute
Network pivotinglist_port_forwards, start_port_forward, stop_port_forward
Payload generationgenerate_server, generate_memshell
Config transferserver_to_link, server_to_encrypted_link, parse_share_link

After a foothold was established, the skill shifted from vulnerability discovery to proving impact. GLUTTON could manage the remote session, execute commands, handle files, inspect memory, access application database connections, collect credentials, inject memory-resident components, and provide network forwarding. The post-exploitation workflow was defined in references/vuln-types/12-postexploit.md.

The final stages preserved requests, responses, screenshots, command output, and data samples according to references/reporting/evidence-capture.md, then converted that material into standardized reports using the rules in references/reporting/report-format.md.

With the orchestration framework, tooling, and network routing established, the following sections walk through what the operator actually achieved against specific targets, starting with the most extensive confirmed compromise.

Fengtai Government compromise

The open directory on 129.211.184[.]149:8081 contained evidence of an end-to-end compromise of a Fengtai government Office Automation (OA) environment. The intrusion progressed from public web access to Windows command execution, internal discovery, credential theft, application persistence, attempted lateral movement, data exfiltration, and remote implant deployment.

Webshells were not used only for initial command execution. They formed the operational backbone of the intrusion, giving the operator a persistent HTTP-based interface for running commands, querying databases, stealing credentials, transferring files, and launching malware.

Fig. 09. Fengtai Government high-level kill-chain

What Was Targeted

The operator targeted a connected group of Fengtai District government systems:

  • A staff-facing OA application used for administrative workflows and file management

  • A related public-health application

  • Internal Windows web and database servers

  • Oracle and Microsoft SQL Server services

  • Windows credential stores and registry hives

  • The OA user-account database and attachment repository

  • Government administrative records and patient-related health documents

Webshells Across the Intrusion Chain

Intrusion stageWebshells and server-side filesRole
Initial executioncmd.aspx and several ASP/ASPX command pagesEstablished Windows command execution through the public web applications
DiscoveryCommand-execution pages and WMI-enabled ASPX filesEnumerated the host, processes, services, accounts, network connections, and internal systems
Privilege escalationpotato.aspx, potato3.aspx, potato4.aspx, potato4r.aspxAttempted to convert an IIS or service token into SYSTEM execution
Credential theftdown.aspx, downx.aspx, and extract.aspxRetrieved the LSASS dump and registry hives and searched for password-hash material
OA account accesssqldump.aspx and sql6.aspxQueried the OA user database, extracted account records, and supported creation of a privileged OA account
Lateral movementstat_orq3_f0.aspx,winrm51.aspx, winrm52.aspx, sql_xp.aspx, sql_xp2.aspxLaunched SMB, WinRM, database, and remote-process activity against internal systems
Data exfiltrationdoc_helper.aspx, doc_view_666b2dde.aspx, down.aspx, and downx.aspxRead arbitrary files, exported database rows, and transferred large files in validated chunks
Implant deploymentdl_e6.aspx, dl_v11.aspx, and other staging filesStaged, launched, and repeatedly restarted the Windows implant

Initial Access via Office Automation Web tier

The OA web tier was the internet-facing IIS application through which government employees accessed file-management and administrative functions.

The OA FileManage handler accepted uploaded ASPX files and returned web-accessible locations. This gave the operator a route for placing server-side tooling inside the application. Other retained pages wrote cmd.aspx into the related health-system application.

cmd.aspx accepted an HTTP parameter, passed it to cmd.exe /c, and returned the command output. Classic ASP variants used WScript.Shell.Exec for interactive output or WScript.Shell.Run for hidden execution.

Additional ASPX pages called CreateProcessW with CREATE_NO_WINDOW or invoked Win32_Process.Create through WMI.

Lateral movement from IIS to the database tier

The initial IIS server acted as a foothold for the agent to move laterally. The agent uploaded an ASPX webshell that would allow it to run SQL commands to internal Oracle or SQL services. These could be used for extraction of data, but also execution of commands.

A malicious Oracle Java class invoked the Windows command interpreter and returned both standard output and error output. A web-accessible SQL bridge forwarded encoded commands to the internal Oracle service.

Retained responses confirmed execution within a Windows Server 2012 R2-era database environment. The workspace also contained a Microsoft SQL Server route using xp_cmdshell, although the strongest command responses came from the IIS webshells and Oracle channel.

Discovery Conducted Through Webshell Access

Once the webshells produced stable command output, the operator issued a compact Windows discovery sequence:

whoami
whoami /all
echo %USERDOMAIN%\%USERNAME%
ver
hostname
tasklist
net use
sc query

                
Copy

These commands identified the operating-system version, execution identity, running processes, network mappings, services, and available staging locations.

Additional tooling enumerated scheduled tasks, startup locations, user profiles, temporary storage, and previous persistence activity. The webshells were then used to launch scripts that scanned the internal environment for SMB, WinRM, web, and database services.

Follow-up activity included DNS lookups, raw TCP probes, directory enumeration, virtual-host testing, and searches for writable webroots. This connected the public OA application to internal database servers, IIS application pools, VPN infrastructure, and other office systems.

Privilege-Escalation Attempts

The operator staged several ASPX implementations of Potato-style privilege-escalation techniques. These pages were designed to convert an IIS or service token with impersonation rights into SYSTEM-level execution.

The variants attempted coercion through Windows printing, EFSRPC, and LSARPC mechanisms. After obtaining an impersonated token, they attempted to duplicate it and launch a process using CreateProcessWithTokenW.

This demonstrates how the operator used webshells not only as command shells but also as delivery mechanisms for local privilege-escalation code.

Credential Theft Through Web-Accessible Handlers

The credential-theft evidence began in the open directory with an existing LSASS memory dump. The approximately 75.8 MB object appeared in the OA attachment repository under dump-like filenames.

The operator deployed down.aspx in a web-accessible attachment location. It accepted parameters controlling the source file, starting offset, and requested length, allowing an arbitrary file to be downloaded in sections.

A companion handler, downx.aspx, applied a bytewise XOR operation (key 0xAA) before returning the data. This provided a lightly obfuscated alternative if the direct transfer was blocked or inspected.

The operator divided the LSASS dump into 37 blocks, requested each block through an authenticated SOCKS route, verified the expected byte count, and reconstructed the complete file.

The operator also collected the SAM and SYSTEM registry hives. Another server-side page, extract.aspx, scanned sections of the memory dump for Windows password-hash material.

OA Account Access and Application Persistence

Credential collection was paired with direct access to the OA database.

sqldump.aspx queried the OA user table directly. sql6.aspx accepted encoded SQL statements and returned database rows in batches. Two retained result sets contained 500 and 322 records, producing a total of 822 OA account records.

The operator then inserted and verified a new active OA account with elevated application privileges. This created a persistence route at the application layer that was separate from the Windows webshells and implant.

Even if individual command shells were removed, the newly created OA account could potentially preserve access to administrative functions and stored information.

Data Collection and Exfiltration

The operator built several HTTP-based collection channels around the compromised OA application:

  • sqldump.aspx and sql6.aspx streamed database records.

  • doc_helper.aspx and doc_view_666b2dde.aspx read arbitrary files and returned Base64-encoded content.

  • down.aspx supported resumable binary transfer.

  • downx.aspx provided an XOR-obfuscated transfer option.

These web-accessible handlers turned the compromised OA application into an exfiltration platform. Data could be requested through ordinary HTTP traffic, returned in manageable sections, and reconstructed after transfer.

The OA inventory contained 949 attachments totaling approximately 1.28 GB.

Recovered material included:

  • Government workflow and administrative information

  • 822 OA account records

  • Selected health-related documents

  • A chronic-disease report containing patient information

  • Windows credential material

Implant deployment via Webshells

The initial beachhead allowed the agent to gain command execution on the IIS server. This command-execution was used to download, stage and execute a Go-based implant we have called "SecBox":

  • dl_icn.aspx - downloads hXXp://158.247.234[.]124:18000/c22.exe and writes to C:\Windows\Temp\fw.exe

  • launchfw.aspx - downloads hXXp://158.247.234[.]124:18000/c22.exe and writes to C:\Windows\Temp\fw.exe then executes using Process.Start() and WMI Win32_Process.Create

Different SecBox binaries and other methods for staging were also used via various ASPX files, although we will not be covering these all for brevity.

The ASPX files were observed staging from the IP address 158.247.234[.]124. Our platform intelligence allowed us to enrich this indicator:

Fig. 10. Hunt.io platform intelligence for 158.247.234[.]124

The "Code Search" tab revealed additional linked payloads, configurations and log files containing this IP:

Fig. 11. Code search pivot for 158.247.234[.]124

SecBox implant analysis

SecBox is a privately built or customized Go remote-access and network-pivot framework. Named "SecBox" from binary strings, it was deployed via Webshells for an additional layer of endpoint control.

The Windows implants masquerade as Microsoft-style system components via the binary metadata:

Metadata fieldValue
CompanyWindows Infrastructure Services
ProductSystem Configuration Utility
File descriptionSystem Configuration Utility
Original filenamesyscfg.exe
Internal namesyscfg
File version3.1.0.2
Product version3.1

C2 beaconing

On execution, SecBox selects an embedded or DDR-supplied endpoint and establishes a long-lived connection using TCP, TLS, WebSocket, KCP, or QUIC. Yamux multiplexing allows tasking, file transfer, and pivot traffic to share the same connection.

Initial registration includes a client identifier and basic host information such as operating system, architecture, and hostname. The controller can subsequently replace or clear the implant's active endpoints.

Route or URIPurpose
129.211.184[.]149:64288Primary endpoint embedded in several Windows builds
129.211.184[.]149:8443Controller backend and payload-distribution service
158.247.234[.]124:18000DDR-supplied TCP/WebSocket redirector
207.148.109[.]245:18000Earlier plaintext DDR redirector
*.trycloudflare.com:443Short-lived DDR alternatives using TCP or secure WebSockets
GET /task/{id}Retrieve task information
POST /taskCreate or submit a task
PUT /task/{id}Update task state
DELETE /task/{id}Terminate or remove a task
POST /uploadTransfer files to the controller
/public/uploads/Retrieve staged files

Capabilities

SecBox supports remote shell execution, task control, file upload and download, download-and-execute, process and token access, Windows service management, host discovery, TCP port scanning, SOCKS5 proxying, port forwarding, bind pivots, and self-removal. No automatic persistence mechanism was confirmed in the reviewed builds.

Dead Drop Resolver

SecBox has capabilities to leverage a Dead Drop Resolver mechanism via Pastebin or Github. It allows an implant to obtain replacement C2 routes without requiring a new binary.

The implant contains a build-specific AES key and can retrieve an encrypted routing value from a dead-drop service. The recovered DDR data uses:

Base64(nonce || AES-256-GCM ciphertext || authentication tag)

                
Copy

After authenticated decryption, the plaintext contains one or more comma-separated endpoints, for example TCP, WebSocket, or TryCloudflare routes. Different builds use different embedded DDR keys and can therefore receive separate infrastructure configurations.

The recovered ddr*.txt files are captured or test copies of hosted DDR responses. Pastebin and GitHub Gist retrieval templates are present within the SecBox binaries, but the campaign-specific public URLs were not recovered.

DDR supplied routes included:

tcp://imported-concerns-listening-typing.trycloudflare.com:443
tcp://158.247.234.124:18000
tcp://marriage-step-wave-heavy.trycloudflare.com:443
wss://wins-say-charm-social.trycloudflare.com/c2
ws://158.247.234.124:18000/

                
Copy

The Fengtai compromise was the deepest confirmed intrusion, but the campaign reached other targets through different entry points. The AI orchestrator host at 81.70.240[.]170 also contained evidence of a separate compromise.

Chinese education AI platform and related services

The open directory on 81.70.240[.]170, the AI orchestrator host, targeted a Chinese education AI platform's exposed systems enabling a confirmed compromise of its AI application-management and data layer. The exposed service was the management plane used to configure and operate production AI assistants. Its unauthenticated backend returned 23 agent configurations, 14 populated secret fields, internal service addresses and 104 complete AI dialogue records, including user prompts, model responses and execution metadata.

Fig. 12. Hunt.io AttackCapture page for 81.70.240.170

The exposed configurations disclosed multiple downstream AI-platform credentials, including Dify application keys, a Coze private key and platform AI credential material. The Dify credentials were then used successfully against the production Dify API. The retained collection contains 169 conversations and 339 message/query entries from topic-selection, study-partner, job-recommendation and résumé assistants. These records included educational and career-related prompts and, in 92 message entries, structured student-profile information covering two distinct students, including names, student numbers, advisers, departments, grades and majors.

The exposed credentials were also used to invoke a production model, consuming 631 tokens, and an evidence summary records a successful file upload. Separately, the unauthenticated platform backend accepted a request for a new agent configuration and returned a success response. This confirms a suspected unauthenticated configuration-write capability and creates a credible risk of AI-agent tampering, redirection of user requests, malicious downstream integrations and supply-chain abuse. However, the retained evidence does not show that the new configuration persisted or that its external URL was dereferenced; SSRF and backend code execution therefore remain unproven.

Overall, this should be described as a compromise of the platform's AI control and data plane, rather than a confirmed server takeover. Confidentiality was affected through disclosure of AI conversations, student information, application configuration and reusable credentials. Integrity was affected because the management service accepted an unauthenticated configuration write. Model invocation also demonstrates that the leaked credentials could be used to consume the organisation's AI resources.

Other exposed and targeted services

Other services on the same platform exposed substantial security-sensitive information without producing evidence of host-level execution. The portal disclosed CAS private-key material, client-side cryptographic material, test credentials and internal addresses. Retained Shiro, AJP and SSRF testing did not achieve code execution or authenticated access to protected data.

A separate Chinese online platform disclosed account-existence behaviour but did not accept a login. Huazhong Agricultural University's recruitment system appears only in logs showing proxy fallback and should not be described as compromised. Domains belonging to an English-language dating platform operator received DNS, ColdFusion, OAuth, CORS, host-header, cache and path testing. Client configuration was exposed, but the retained evidence contains no member-account access, session theft or private member data.

A separate workspace on 159.223.64[.]67 took a different approach to initial access.

Fake MySQL deserialization and Afghan enumeration

The open directory on 159.223.64[.]67 contained fakeserver_new.py which operated a malicious MySQL-compatible service on port 3306. When a vulnerable Java application connected, the service returned crafted data designed to trigger unsafe object processing within the client. In practice, this allowed the server to use an outbound database connection as an initial execution vector and launch a platform-aware downloader on the affected host.

Fig. 13. Hunt.io AttackCapture page for 159.223.64.67

Five payloads ran the same shell downloader. They selected a temporary path, detected Linux OS and architecture, fetched an implant from:

hxxp://129.211.184[.]149:8443/999b4e8c/public/dnc/a6d28ebe?os=<os>&arch=<arch>

                
Copy

The platform-aware downloader that queried the operator's staging endpoint using the victim's operating system and architecture. The recovered outputs associated with this infrastructure are statically linked Go Linux agents belonging to the SecBox-compatible/GO-SYSCFG family.

Separately this open-directory showed evidence of targeted enumeration of an Afghan telecommunications operator's corporate network ranges.

On the 3rd of August, the actor leveraged nmap to perform targeted scanning of whole /24 ranges and a specific IP address:

nmap -Pn -sT -T4 --max-retries 1 --host-timeout 12s -p 21,22,80,443,4899,5900,3389,8443,8990,2775,1401 -oN /tmp/svc_scan.txt <operator /24 range> <operator host>

                
Copy

The /24 range is linked to the operator's corporate network. Many IP addresses within this range resolve to subdomains used for services such as Jira, Helpdesk, VPN, and Outlook. An additional host in the same range was scanned that was linked to the operator's call-back ringtone management domain.

Notably, the nmap command specified scanning port 2775 (SMPP), a standard telecommunications protocol used to transfer SMS messages. Along with the exclusive scanning of the operator's IP ranges, this might suggest a strategic interest in Afghan telecommunications networks.

Across the campaign, SecFlow workers were directed to deploy GLUTTON webshells after gaining access. The recovered skill backup reveals how those payloads were built.

Steganographic GLUTTON webshells

The recovered skill backup contains ten server-side GLUTTON loader templates plus MethodInvoker.class. The templates cover JSPX, ASP.NET Web Forms, ASP.NET handlers, SOAP services, and .NET Core Razor. Raw variants expose the loading logic, confusion variants contain obfuscated versions, with code split across CDATA blocks and random fragments, and a Unicode JSPX variant further changes the on-disk representation to resist signature matching.

Each loader accepts a PNG in the request body, or as base64 data in the SOAP variant. It reads pixels in row-major order, concatenates the red, green, and blue channel bytes, XORs the stream with a repeating 16-byte ASCII key, and scans backward for the three-byte FF 88 00 terminator:

Fig. 14. Steganographic webshell source code

Across all variants, an identical XOR key "d0c41072a0dc784c" was used. Additionally, each variant would search for the byte sequence "FF 88 00" within the decoded bytes to specify where the payload ended.

Java variants define the recovered class through a new class loader. .NET variants use Assembly.Load. The loader then caches the resulting runtime object in application state, AppDomain data, or a static table.

The PNG is therefore a transport container for executable bytecode. The small web-facing page remains a generic decoder while the functional stage arrives inside image pixels and loads directly into memory. This separates the visible server file from the implant body and can bypass controls that permit image uploads or inspect only extensions and MIME types.

SecFlow assignments explicitly connected this tooling to exploitation. Workers were directed to load the GLUTTON guide, check the MCP wrapper, generate server components, and attempt memory-shell injection.

The remaining workspace on 152.42.200[.]25 contained the campaign's broadest geographic spread.

KMT, Indonesia, and the Da Nang business cluster

The open directory on 152.42.200.25 contained artefacts relating to targeting of the KMT party, Taiwanese government, Indonesian Foreign Ministry and Vietnamese organisations.

Fig. 15. Hunt.io AttackCapture page for 152.42.200.25

Shellshock payloads were used against the Taiwan KMT party archives domain, against the exact /gs32/kmt/index.htm path. They sent the Shellshock function prefix in the User-Agent header and tried to execute /bin/bash -c:

User-Agent: () { :;}; /bin/bash -c '<command>'

                
Copy

The script used had hardcoded post-exploitation commands designed to perform enumeration:

Fig. 16. Post-exploitation Linux enumeration commands

The script xor_bd.py acted as a webshell client, with a hardcoded URI to an Indonesian Foreign Ministry domain. This would allow the threat actor to interact with a webshell /webservice/sync_data.php, sending commands XOR encoded:

Fig. 17. Webshell client used against Indonesian Foreign Ministry URI

The script deploy_all.sh was designed to run on a compromised web-hosting server. It would write PHP webshells masqueraded as Wordpress files to the below URIs:

wp-content/plugins/class-wp-settings.php
wp-content/cache/cache-main.php
wp-content/uploads/maintenance-check.php
wp-includes/class-wp-l10n.php

                
Copy

All 20 deployments contained the identical webshell. Once decoded, the PHP read an encrypted command from the raw HTTP request body, decrypted it with AES-256-CBC, passed the plaintext to shell_exec() and returned encrypted command output:

Fig. 18. AES Webshell impersonating Wordpress sites

Across all five workspaces, the operator tested or deployed eight named CVEs alongside several application-specific techniques.

Vulnerabilities exploited or staged

8 named CVEs were used in active workflows. The table records how the operator used each active workflow and separates a successful access path from a probe or prepared payload.

Fig. 19. The campaign paired target-specific CVE workflows with application-specific deserialization, credential attacks, webshell staging, and post-exploitation tooling.
CVETarget or ContextObserved Activity
CVE-2014-6271KMT Party History ArchivesExplicit Shellshock function prefix and Bash command chains
CVE-2020-1938Liuzhou public-service applicationsAJP/Ghostcat file-read and JSP-processing probes against hostnames and direct IPs
CVE-2022-22965Liuzhou public-service applicationsSpring4Shell AccessLogValve data-binding payloads with encoded JSP/JSPX variants
CVE-2016-4437AI-task Shiro targetrememberMe default-key, serialized-gadget, and OOB callback tests
CVE-2021-43798Grafana task workflowPlugin-path directory-traversal variants
CVE-2024-4956Nexus task workflowNexus Repository path-traversal requests
CVE-2021-29441Nacos task workflowAuthFilter User-Agent: Nacos-Server bypass probe
CVE-2021-44228Log4j target setLocal HTTP, RMI, and LDAP JNDI service with a callback command

Beyond the CVEs and tooling, a recurring handle tied the campaign's infrastructure together.

Nie's infrastructure

Across the campaign, the handle "Nie" kept recurring. We discovered this cluster of open-directories as they all used a SOCKS proxy IP address 103.45.65[.]93, often with the credential Nie as the username.

From the recovered initial AI agent skills, we observed explicit tasking that would leverage this IP and credentials. The "GLUTTON" webshell MCP binaries were also hardcoded with build paths linked to this handle:

C:\Users\nie\.cargo\...
/Users/nie/Project/glutton/...

                
Copy

All "GLUTTON" MCP binaries also hardcode the domain https://glutton.niestools.com for authorization.

Furthermore, SecFlow was configured to route requests through claude.niestools[.]com and deepseek.niestools[.]com. Using our platform, we can pivot on the initial domain to discover further relevant subdomains:

Fig. 20. Hunt.io platform showing subdomains of niestools.com

We can see multiple domains, including proxy.niestools[.]com:

Fig. 21. proxy.niestools.com SOCKS proxy pool

This is a Chinese proxy-pool management console for collecting, monitoring, filtering, and exporting HTTP and SOCKS5 IP proxies.

The domain chatgpt.niestools[.]com returns a 401 Unauthorized. We can observe from the HTTP response that this domain is running the Sub2API AI gateway:

Fig. 22. chatgpt.niestools.com running Sub2API AI pool

Sub2API is an open-source AI API gateway that pools multiple upstream subscriptions or API keys and redistributes their capacity through a single endpoint. It handles authentication, billing, load balancing, rate limits, and request forwarding to providers such as OpenAI, Anthropic, and Google. Although it can be used legitimately, operators may use it to resell subscription access, conceal account sharing, or bypass regional restrictions.

With knowledge of this response, we can use HuntSQL to uncover additional IP addresses running Sub2API AI gateways:

SELECT
  ip
FROM
  httpv2
WHERE
  http.headers.bytes.content LIKE '%Sub2API Admin%'
GROUP BY
  ip

                
Copy

This specific query returned two additional IP addresses: 82.156.42[.]112 and 47.253.191[.]55. These are unrelated to this specific campaign.

MITRE ATT&CK mapping

TechniqueIDObserved Use
Active ScanningT1595Multi-worker port, subdomain, service, API, Nuclei, and framework discovery
Exploit Public-Facing ApplicationT1190Shellshock, Spring4Shell, Ghostcat, Shiro, Log4Shell, Grafana, Nexus, Nacos, and application-specific attempts
Valid AccountsT1078Root jump access, proxy credentials, application accounts, Dify keys, database and Grafana access
External Remote ServicesT1133Public VPN, SSH, database, appliance, and management services
ProxyT1090Authenticated L1 SOCKS relays and L2 SSH dynamic forwarding
SSHT1021.004Root SSH to 81.70.240.170 for tunneling and tool access
OS Credential DumpingT1003LSASS acquisition & registry-hive export
Unsecured Credentials: FilesT1552.001Secrets collected from configuration, frontend bundles, reports, container material, and application files
Web ShellT1505.003GLUTTON, PHP, ASPX, JSP, CGI, and PNG-carried loaders prepared or delivered across access workflows
Ingress Tool TransferT1105Implant download from 129.211.184[.]149, staged scanners, JARs, and GLUTTON components
Data from Information RepositoriesT1213OA records, AI conversations, sessions, files, agent definitions, and database content
Exfiltration Over Web ServiceT1567API pagination and export, HTTP PUT, and callback-driven collection

Indicators and observables

Table 1: operator and support infrastructure

IndicatorRole
81.70.240[.]170Open directory containing the SecFlow workspace; AI execution host, SSH jump host, Layer 2 egress point, and out-of-band listener
43.99.61[.]170Open directory containing the Java/CAS exploitation workspace, GLUTTON tooling, and JNDI listener
152.42.200[.]25Open directory containing the Shellshock and credential-testing workspace and callback listener
129.211.184[.]149Open directory used as a payload-distribution, C2, and post-exploitation store
159.223.64[.]67Open directory containing the fake MySQL deserialization server, scanner, and callback tooling
129.211.184[.]149:64288Primary SecBox C2 endpoint embedded in several Windows implant builds
129.211.184[.]149:8443SecBox controller backend and payload-distribution service
158.247.234[.]124:18000SecBox DDR-supplied TCP and WebSocket redirector
207.148.109[.]245:18000Earlier plaintext SecBox DDR redirector
tcp://imported-concerns-listening-typing[.]trycloudflare[.]com:443Short-lived SecBox DDR-supplied TCP route
tcp://marriage-step-wave-heavy[.]trycloudflare[.]com:443Short-lived SecBox DDR-supplied TCP route
wss://wins-say-charm-social[.]trycloudflare[.]com/c2Short-lived SecBox DDR-supplied secure WebSocket route
103.45.65[.]93:35888Shared authenticated SOCKS5 route
43.162.217[.]10:35888Primary authenticated SOCKS5h route configured in SecFlow tasks
211.159.155[.]240SecFlow gateway
*.niestools[.]comOperator-controlled domain family supporting SecFlow and related infrastructure, including private model relays, AI gateways, proxy-pool management, the Outline knowledge base, and GLUTTON authorization. Observed hosts included claude, deepseek, chatgpt, proxy, wiki, and glutton

Table 2: Victim-executed file and payload indicators

Filename or observable SHA-256 Function
agent_new.out 20a8ed7d235cf6419e2d4b1e439595ef96961adaecf3c990c5cd507eb4a74ca4 Windows SecBox-compatible multiprotocol implant
e6475722.exe / v11.exe 0b3d76cf1ac6648d4cfbe39c8fea67c6b28a361ea6de86a92cc7d54a0181cc9e Windows SecBox payload staged and executed on the Fengtai OA host as C:\Windows\Temp\v11.exe
av2_chk_cn-44.exe and aliases 3c9b2ec423f91642d2d09031d47e50d7ebe77a8b12ec5e393405f85da11a0f6a Windows implant build staged under multiple filenames; associated PE metadata includes the deceptive internal name syscfg.exe
bf57c009.bin 4ecbdaedf9040dbbb33ce7a96ad961dce0f3ffb2c41285606a27a7c5ab3d2273 Linux SecBox-compatible implant variant
c22.exe / fw.exe / fw_c049574c.exe eef30bb6834bf349d1b1f4401aa0b8e73631ea632a884c6498a5b3a9e069d412 Retained Windows implant sample matching the size of fw.exe in execution telemetry; assessed candidate for the c22.exe → C:\Windows\Temp\fw.exe deployment path
cmd.aspx Not retained as a standalone sample Victim-side HTTP command shell accepting parameter c, executing it through cmd.exe /c, and returning standard output
down.aspx dcd59349bd6cc29e59da5105f2f08f606ece8dfac4e369e052eca1786450f541 Victim-side arbitrary-file range reader supporting resumable binary exfiltration
downx.aspx 135b33b289d481d60fa2527aeae5882d33adcb6756df89ea7684f4af3567b141 Victim-side arbitrary-file range reader applying bytewise XOR with 0xAA
extract.aspx 9ef85857ed2b53a23eb41ce5769b4fb5b8b2225404b227a776520771df86706e Victim-side LSASS-dump scanner searching for username and NT-hash material
sqldump.aspx 797676d3becc124bb6705ebd76189e8decedae3abf978434d730459133351064 Victim-side OA database reconnaissance and extraction payload targeting SysUserinf, permissions, linked servers, and SQL Agent jobs
sql6.aspx af6404a125d1e4eb67425ec17f2abeec7242fb6f7377de739e47cb7f5d147eee Victim-side Base64-encoded arbitrary SQL interface capable of returning up to 500 rows per request
doc_helper.aspx 053c8dfb147262aaedf0d9cdce631ad73cfd5b1a808114c12bbe5adfe4796302 Key-protected victim-side file-management webshell supporting arbitrary read, write, append, and existence checks
doc_view_666b2dde.aspx 053c8dfb147262aaedf0d9cdce631ad73cfd5b1a808114c12bbe5adfe4796302 Renamed duplicate of doc_helper.aspx with identical victim-side functionality
dl_e6.aspx 80d778c9d9e44896f08b1a196254527e39da4e8ce5edebf8d296b7dec6b7b3e0 Victim-side loader that copies e6475722.exe to C:\Windows\Temp\v11.exe and attempts execution through WScript.Shell or Shell.Application
dl_v11.aspx f7c233df3423912296a4e78dd1fa7a1f6412606177336be0762961c93e8fae3c Victim-side downloader that copies e6475722.exe to C:\Windows\Temp\v11.exe
dl_icn.aspx 548df87041ea2cbe99fc519fd89c5b7cdfe935d87a803a80a5f747aa9f076091 Victim-side downloader that retrieves hxxp://158.247.234[.]124:18000/c22.exe and writes it as C:\Windows\Temp\fw.exe
launchfw.aspx 79cc5855375b5c840bae8263dc3dc5a9fd9cbd7920ab4ed65d407fd830d3eda1 Victim-side loader that downloads c22.exe as fw.exe, then executes it through Process.Start and WMI
potato4.aspx a407f540f4eb0c8fae5cd83fa6e210df6c4ed7fca6aedb6ebc5efbf031989ac4 Victim-side EFSRPC named-pipe token-impersonation and privilege-escalation payload
cb1_glutton.bin 00759d29178baabcbe9682a953c64e179fd24d86dac0d6abdc8e5070216923f2 Primary Tomcat or Undertow GLUTTON injector intended for execution inside a victim Java application
cb1_glutton_wl.bin f51ab15a89155ce4d3bcd0a65cf6a3ccf62115f502e0863c19baf93d11c57acc WebLogic or CAS ticket-interception GLUTTON variant
cb1_redis_glutton.bin 853222ffdcc74dd606f6ff79ff353ce3626d50e54e9aa1a87fb03e2121e82aaf Redis-assisted GLUTTON payload writer targeting victim Java applications
MethodInvoker.class 218d8508c2035c78b49d33e087e33643f4f906af5694be68cf939f17fa4b5ffd Tomcat or Undertow in-memory filter component
confusion_d0c41072a0dc784c.jsp 2deac4ab60f6cb1bb65fa4df5dbd9dcf7b7bc27e16bea55c3ddbe47154720277 Obfuscated JSP loader that decodes and loads a PNG-carried in-memory payload on the victim
confusion_d0c41072a0dc784c_nodejs.html e6ee24c6775867714d1e4b586d75c0168e61ba49b36e0a29b73cbc925df6ae47 Obfuscated Node.js loader for a PNG-carried in-memory payload
CommonsBeanutils1.bin 1c00ce5354c91a9db878e2b4db750c2a74140e0d15aeac9b8cecf4599598b736 Java deserialization payload executed by the victim JVM to download a second-stage implant
CommonsCollections6.bin 27fae1b7be68b0c27c5dad33aaed9de5b38406fb20b971757b6be386e3ffc7a6 Victim-executed Java deserialization callback and second-stage downloader payload
Spring1.bin 77f5b5321e2f5c18b3c610e50084b98201fb6214e13665cc49da5afbf3f49611 Victim-executed Spring gadget-chain downloader delivered through the fake MySQL workflow

Conclusion

A single SOCKS pivot expanded into five exposed open directories spanning six countries and nearly a dozen sectors. The underlying activity was connected through recurring infrastructure, shared tooling, reused accounts, and the Nie handle across proxy credentials, build paths, and the niestools.com domain family.

SecFlow made the campaign faster and broader by splitting work across specialist AI workers and carrying context between them. But that same shared context amplified a false premise when an unsupported Shiro claim persisted and drove follow-on GLUTTON assignments that never should have happened. The confirmed compromises still came down to familiar weaknesses: exposed services, unpatched applications, stolen credentials, and conventional post-exploitation tooling.

The open directories, attacker tooling, and infrastructure pivots covered in this research were discovered through our AttackCapture and Code Search capabilities. To see how these workflows apply to your own investigations, book a demo.