CTIPilot

Hades

tool · tool:hades-implant single-source

Previously-unreported Go-based cross-platform (Windows/Linux) implant providing persistence (Registry Run key + scheduled task on Windows, cron on Linux) with HTTPS C2 disguised as static JavaScript-asset requests and AES-256-GCM-encrypted payloads, plus built-in kill-dates and working-hours scheduling. Recovered alongside Hermes AI-agent tooling targeting Thailand's Ministry of Finance (Hunt.io, 2026-07-23).

Coverage timeline
3
first 2026-06-02 → last 2026-07-25
Peak priority
high
2 high · 1 notable
Sources cited
14
9 hosts
Sections touched
1
active-threats
Co-occurring entities
8
see Co-occurring entities below
ATT&CK techniques
9
pinned v19.2 · see below
2026-06-023 appearances2026-07-25

ATT&CK techniques

9 techniques observed across 2 entries, derived from entry metadata and body evidence, never asserted without a published entry behind it · pinned to MITRE ATT&CK v19.2 · compare on the matrix · Navigator layer (JSON)

Initial Access TA0001

T1190Exploit Public-Facing Application×1

Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network. The weakness in the system can be a software bug, a temporary glitch, or a misconfiguration.

Evidence: 2026-07-25/thailand-mof-hermes-ai-agent-post-exploitation · ATT&CK page ↗

Execution TA0002

T1053.005Scheduled Task/Job: Scheduled Task×1

Adversaries may abuse the Windows Task Scheduler to perform task scheduling for initial or recurring execution of malicious code. There are multiple ways to access the Task Scheduler in Windows. The schtasks utility can be run directly on the command line, or the Task Scheduler can be opened through the GUI within the Administrator Tools section of the Control Panel. In some cases, adversaries have used a .NET wrapper for the Windows Task Scheduler, and alternatively, adversaries have used the Windows netapi32 library and Windows Management Instrumentation (WMI) to create a scheduled task. Adversaries may also utilize the Powershell Cmdlet `Invoke-CimMethod`, which leverages WMI class `PS_ScheduledTask` to create a scheduled task via an XML path.

Evidence: 2026-07-25/thailand-mof-hermes-ai-agent-post-exploitation · ATT&CK page ↗

T1059.007Command and Scripting Interpreter: JavaScript×1

Adversaries may abuse various implementations of JavaScript for execution. JavaScript (JS) is a platform-independent scripting language (compiled just-in-time at runtime) commonly associated with scripts in webpages, though JS can be executed in runtime environments outside the browser.

Evidence: 2026-06-02/miasma-worm-backdoors-32-red-hat-cloud-services-npm-packages · ATT&CK page ↗

Persistence TA0003

T1053.005Scheduled Task/Job: Scheduled Task×1

Adversaries may abuse the Windows Task Scheduler to perform task scheduling for initial or recurring execution of malicious code. There are multiple ways to access the Task Scheduler in Windows. The schtasks utility can be run directly on the command line, or the Task Scheduler can be opened through the GUI within the Administrator Tools section of the Control Panel. In some cases, adversaries have used a .NET wrapper for the Windows Task Scheduler, and alternatively, adversaries have used the Windows netapi32 library and Windows Management Instrumentation (WMI) to create a scheduled task. Adversaries may also utilize the Powershell Cmdlet `Invoke-CimMethod`, which leverages WMI class `PS_ScheduledTask` to create a scheduled task via an XML path.

Evidence: 2026-07-25/thailand-mof-hermes-ai-agent-post-exploitation · ATT&CK page ↗

T1505.003Server Software Component: Web Shell×1

Adversaries may backdoor web servers with web shells to establish persistent access to systems. A Web shell is a Web script that is placed on an openly accessible Web server to allow an adversary to access the Web server as a gateway into a network. A Web shell may provide a set of functions to execute or a command-line interface on the system that hosts the Web server.

Evidence: 2026-07-25/thailand-mof-hermes-ai-agent-post-exploitation · ATT&CK page ↗

T1547.001Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder×1

Adversaries may achieve persistence by adding a program to a startup folder or referencing it with a Registry run key. Adding an entry to the "run keys" in the Registry or startup folder will cause the program referenced to be executed when a user logs in. These programs will be executed under the context of the user and will have the account's associated permissions level.

Evidence: 2026-07-25/thailand-mof-hermes-ai-agent-post-exploitation · ATT&CK page ↗

T1547.013Boot or Logon Autostart Execution: XDG Autostart Entries×1

Adversaries may add or modify XDG Autostart Entries to execute malicious programs or commands when a user’s desktop environment is loaded at login. XDG Autostart entries are available for any XDG-compliant Linux system. XDG Autostart entries use Desktop Entry files (`.desktop`) to configure the user’s desktop environment upon user login. These configuration files determine what applications launch upon user login, define associated applications to open specific file types, and define applications used to open removable media.

Evidence: 2026-06-02/miasma-worm-backdoors-32-red-hat-cloud-services-npm-packages · ATT&CK page ↗

Privilege Escalation TA0004

T1053.005Scheduled Task/Job: Scheduled Task×1

Adversaries may abuse the Windows Task Scheduler to perform task scheduling for initial or recurring execution of malicious code. There are multiple ways to access the Task Scheduler in Windows. The schtasks utility can be run directly on the command line, or the Task Scheduler can be opened through the GUI within the Administrator Tools section of the Control Panel. In some cases, adversaries have used a .NET wrapper for the Windows Task Scheduler, and alternatively, adversaries have used the Windows netapi32 library and Windows Management Instrumentation (WMI) to create a scheduled task. Adversaries may also utilize the Powershell Cmdlet `Invoke-CimMethod`, which leverages WMI class `PS_ScheduledTask` to create a scheduled task via an XML path.

Evidence: 2026-07-25/thailand-mof-hermes-ai-agent-post-exploitation · ATT&CK page ↗

T1068Exploitation for Privilege Escalation×1

Adversaries may exploit software vulnerabilities in an attempt to elevate privileges. Exploitation of a software vulnerability occurs when an adversary takes advantage of a programming error in a program, service, or within the operating system software or kernel itself to execute adversary-controlled code. Security constructs such as permission levels will often hinder access to information and use of certain techniques, so adversaries will likely need to perform privilege escalation to include use of software exploitation to circumvent those restrictions.

Evidence: 2026-07-25/thailand-mof-hermes-ai-agent-post-exploitation · ATT&CK page ↗

T1547.001Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder×1

Adversaries may achieve persistence by adding a program to a startup folder or referencing it with a Registry run key. Adding an entry to the "run keys" in the Registry or startup folder will cause the program referenced to be executed when a user logs in. These programs will be executed under the context of the user and will have the account's associated permissions level.

Evidence: 2026-07-25/thailand-mof-hermes-ai-agent-post-exploitation · ATT&CK page ↗

T1547.013Boot or Logon Autostart Execution: XDG Autostart Entries×1

Adversaries may add or modify XDG Autostart Entries to execute malicious programs or commands when a user’s desktop environment is loaded at login. XDG Autostart entries are available for any XDG-compliant Linux system. XDG Autostart entries use Desktop Entry files (`.desktop`) to configure the user’s desktop environment upon user login. These configuration files determine what applications launch upon user login, define associated applications to open specific file types, and define applications used to open removable media.

Evidence: 2026-06-02/miasma-worm-backdoors-32-red-hat-cloud-services-npm-packages · ATT&CK page ↗

Credential Access TA0006

T1555Credentials from Password Stores×1

Adversaries may search for common password storage locations to obtain user credentials. Passwords are stored in several places on a system, depending on the operating system or application holding the credentials. There are also specific applications and services that store passwords to make them easier for users to manage and maintain, such as password managers and cloud secrets vaults. Once credentials are obtained, they can be used to perform lateral movement and access restricted information.

Evidence: 2026-06-02/miasma-worm-backdoors-32-red-hat-cloud-services-npm-packages · ATT&CK page ↗

Command and Control TA0011

T1071.001Application Layer Protocol: Web Protocols×1

Adversaries may communicate using application layer protocols associated with web traffic to avoid detection/network filtering by blending in with existing traffic. Commands to the remote system, and often the results of those commands, will be embedded within the protocol traffic between the client and server.

Evidence: 2026-07-25/thailand-mof-hermes-ai-agent-post-exploitation · ATT&CK page ↗

Story timeline

  1. 2026-07-25Unattended AI agent in 'YOLO mode' automated post-exploitation against Thailand's Finance Ministry, a transferable government-network TTP
    active-threatsExposed operator infrastructure shows an open-source AI agent running privilege-escalation triage with no human in the loop
  2. 2026-06-09TeamPCP open-sources its Mini Shai-Hulud framework, spawning a new "Phantom Gyp" derivative
    active-threats
  3. 2026-06-02"Miasma" worm backdoors 32 Red Hat Cloud Services npm packages via OIDC trusted-publishing abuse
    active-threats

Relationships explore in graph

Typed, source-stated connections from the entity registry; each edge cites the entry whose reporting establishes it.

used by

Where this entity is cited

  • active-threats3

Source distribution

  • socket.dev3 (21%)
  • thehackernews.com3 (21%)
  • bleepingcomputer.com2 (14%)
  • aikido.dev1 (7%)
  • hunt.io1 (7%)
  • isc.sans.edu1 (7%)
  • opensourcemalware.com1 (7%)
  • research.jfrog.com1 (7%)
  • other1 (7%)

Co-occurring entities

Derived: referenced by the same focused operational entries (weekly summaries and report roundups don't count); ×N counts the shared entries.

All cited sources (14)

Entries about Hades (3)

2026-07-25 · view entry permalink →

NOTABLENATOB2

Unattended AI agent in 'YOLO mode' automated post-exploitation against Thailand's Finance Ministry, a transferable government-network TTP

Hunt.io (with researcher Bob Diachenko) found three simultaneously-exposed open directories (585 files, ~470 MB of exploit code, webshells, stolen credentials and operator logs) tied to an intrusion against Thailand's Ministry of Finance, published 2026-07-23 (Hunt.io, 2026-07-23). The distinguishing feature is the automation layer: the operator ran Hermes, an open-source autonomous AI agent, and, per Hunt.io; "the operator ran the agent in unattended or YOLO mode, bypassing approval prompts for commands that could be considered dangerous." Recovered agent logs show it autonomously enumerating ministry hosts, traversing the filesystem, running a custom LinPEAS privilege-escalation script (probing several 2026 Linux-kernel LPE flaws and older sudo/polkit bugs), enumerating SUID/SGID binaries and running services, and recursively harvesting documents from a target office, each step executed without a human approving it. This is the second AI-agent-driven autonomous-attack disclosure this pipeline has tracked in roughly a week, marking a shift from AI-assisted to AI-unattended post-exploitation where an off-the-shelf agent framework, not bespoke attacker code, is the orchestration layer.

The hands-on tradecraft leaned on default-configuration weaknesses rather than zero-days: a script abusing Apache HiveServer2's default no-validation SASL PLAIN authentication on its service port to register a malicious Java UDF and run shell commands; an Ambari REST-API payload against the Hadoop management layer; and headless-browser automation logging into a GlassFish admin console with default credentials to deploy a JSP webshell via WAR upload (Hunt.io, 2026-07-23). A previously-unreported Go implant, "Hades," provided cross-platform persistence (Registry Run key and scheduled task on Windows, cron on Linux) and beaconed over HTTPS using request paths designed to blend with static JavaScript-asset traffic, with AES-256-GCM-encrypted payloads carried in HTTP bodies and built-in kill-dates and working-hours scheduling to blunt detection. Critically, "the Ministry of Finance has not confirmed that its systems were breached, and some of the recovered artifacts only show that particular systems were targeted rather than successfully compromised" (BleepingComputer, 2026-07-24); ThaiCERT and NCSA were notified 2026-07-15.

the operator ran the agent in unattended or YOLO mode, bypassing approval prompts for commands that could be considered dangerous.

Hunt.io

However, the Ministry of Finance has not confirmed that its systems were breached, and some of the recovered artifacts only show that particular systems were targeted rather than successfully compromised.

BleepingComputer, citing Hunt.io
incident25 Jul 04:38Zsingle-sourceOpen finding ↗

2026-06-09 · view entry permalink →

HIGHupdated

TeamPCP open-sources its Mini Shai-Hulud framework, spawning a new "Phantom Gyp" derivative

UPDATE (originally covered 2026-06-06): A SANS ISC handler diary tracking the TeamPCP supply-chain campaign through 7 June reports the operators have open-sourced their Mini Shai-Hulud framework on GitHub, triggering a second wave of derivative campaigns (SANS ISC, 2026-06-08). Beyond the previously-covered Miasma worm, which compromised npm packages including Red Hat's @redhat-cloud-services scope (Wiz, 2026-06-01), the diary names a newly-tracked Phantom Gyp campaign that abuses node-gyp / binding.gyp install-time script execution in compromised npm packages; both inject malicious CI/CD hooks (SANS ISC, 2026-06-08).

The diary's load-bearing detection-engineering point: valid SLSA provenance attestations do not protect against supply-chain injection when the build environment itself is subverted from the inside. The recommended shift is from attestation-verification to build-pipeline integrity, monitor GitHub Actions runner process trees for unexpected outbound network from within a build, alert on actions/upload-artifact shipping signed-but-anomalous binaries, and cross-check published package checksums against CI logs via independent transparency ledgers (e.g. Sigstore Rekor). EU/Swiss public-sector teams running npm-based automation or Red Hat tooling should audit CI/CD pipeline definitions for unexpected workflow-step insertions.

Updaterun 2026-06-27-40e791d4entitiessourcestagsbody

The Miasma / Mini Shai-Hulud / Hades supply-chain worm (last seen backdooring @redhat-cloud-services packages and the TeamPCP "Phantom Gyp" framework) ran a fresh wave on 2026-06-24: 23+ malicious versions across the LeoPlatform and RStreams serverless-data-pipeline npm ecosystems (leo-sdk, leo-auth, leo-aws, leo-cli) after the czirker publisher account was compromised, plus a Go-module compromise of Verana Blockchain (Socket Security, 2026-06-25).

The wave reuses the previously documented binding.gyp/node-gyp install-time execution to stage a Bun runtime that harvests .env files, npm/GitHub/cloud tokens, SSH keys and IDE/AI-agent configs, scraping GitHub Actions CI secrets (JFrog, 2026-06-26), and again carries the RevokeAndItGoesKaboom campaign marker that Socket ties to the earlier codfish/semantic-release-action compromise (documented by StepSecurity), where the malicious action searched GitHub commit messages bearing that string as an operator dead-drop channel (Socket Security, 2026-06-25). Any CH/EU team consuming these packages in CI should rotate all exposed CI/cloud credentials since 2026-06-20 and alert on node-gyp evaluating JavaScript from binding.gyp.

threat09 Jun 05:00Zmulti-sourceOpen finding ↗

2026-06-02 · view entry permalink →

HIGHupdated

"Miasma" worm backdoors 32 Red Hat Cloud Services npm packages via OIDC trusted-publishing abuse

Threat actor cluster TeamPCP used a compromised Red Hat maintainer GitHub account to inject malicious CI/CD workflows into 32 packages in the @redhat-cloud-services npm namespace, poisoning 96 releases across high-traffic packages, Wiz puts the combined weekly downloads at roughly 80,000, while Aikido counts closer to 117,000 (Wiz, 2026-06-01 · Aikido Security, 2026-06-01). Rather than compromising developer machines directly, the attack abused GitHub Actions OIDC trusted publishing so the CI/CD pipeline itself republished backdoored packages carrying obfuscated preinstall hooks. The "Miasma" payload (a new variant in the Mini Shai-Hulud / Shai-Hulud lineage) sweeps for GitHub Actions secrets, npm tokens, AWS keys, SSH keys, HashiCorp Vault and Kubernetes credentials, and now adds dedicated collectors for GCP service-account and Azure managed-identity tokens, signalling a pivot from developer-host theft toward cloud-account takeover (Socket, 2026-06-01). Wiz notes the new variant's cloud-identity focus explicitly.

Why it matters to us: Red Hat tooling has a broad EU public-sector DevOps footprint (OpenShift/OpenStack estates). Inventory installed @redhat-cloud-services/* versions across build agents and developer endpoints, alert on preinstall scripts spawning obfuscated node -e chains from npm/npx parent trees, and rotate any CI/CD cloud-identity tokens reachable from affected pipelines.

Updaterun 2026-06-06-d01b95fesourcesbody

The Miasma worm (the TeamPCP-spawned descendant of the Mini Shai-Hulud lineage first covered against the Red Hat @redhat-cloud-services npm namespace) recompromised the durabletask package and propagated into the Microsoft GitHub estate. On 2026-06-05 GitHub disabled 73 repositories across the Azure, Azure-Samples, Microsoft and MicrosoftDocs organisations in a 105-second automated terms-of-service sweep, taking the entire Azure Durable Task family (.NET, Go, Java, JS, MSSQL, Netherite, protobuf) offline (OpenSourceMalware, 2026-06-05; The Hacker News, 2026-06-06).

The material delta from the 2026-06-02 coverage: the variant adds Azure CLI auth-cache and managed-identity token collectors (earlier Shai-Hulud strains targeted AWS and GitHub), and the recompromise traces to the same durabletask credential foothold from the May TeamPCP incident, i.e. credentials taken in May were never fully revoked. Azure Durable Task is a foundational dependency for Azure Functions / serverless workflows widely consumed in EU public-sector cloud deployments, so the downstream exposure is cloud infrastructure, not just developer machines.

Defender takeaway: audit ~/.azure/ credential stores on developer workstations and CI/CD runners that installed any affected @azure/* package; rotate Azure managed-identity tokens and Kubernetes service-account tokens on those systems; monitor GitHub audit logs for unexpected public-repo creation (the worm's secret-exfil-as-public-repo behaviour is what trips GitHub's automated sweep). Note the worm-vs-defender naming overlap is real here; "Miasma" is the attacker worm, not a tool.

Updaterun 2026-06-10-c84347b2sectorssourcestagsbody

The Miasma/Mini-Shai-Hulud supply-chain lineage previously tracked across npm and GitHub has opened a PyPI front dubbed "Hades": Socket and others identified 37 malicious wheel artifacts across 19 packages abusing Python's .pth site-module startup mechanism to auto-execute on interpreter start without an import (The Hacker News, 2026-06-09). The payload downloads the Bun runtime from GitHub and runs triple-encrypted JavaScript that sweeps GitHub/CI tokens, npm/PyPI/cloud (AWS/GCP/Azure) keys, Kubernetes and Vault configs, SSH keys and AI-tool configs, and plants backdoor config in AI coding-assistant workspaces so future agent sessions execute attacker instructions (Socket, 2026-06-07).

Affected packages spanned developer tooling and a bioinformatics cluster (relevant to university/research compute), all since removed. Hunt for *-setup.pth creation under site-packages, Bun binary downloads from github.com/oven-sh/bun, and the $TMPDIR/.bun_ran sentinel via Sysmon EID 1 with parent python/pip (T1547.013, T1059.007, T1555). Pin dependencies and install with --ignore-scripts; audit recently-installed PyPI packages on research endpoints.

threat02 Jun 05:00Zmulti-sourceOpen finding ↗