Home/ Blog/ Security news/ Article
Blog · Security news

Attackers ran an AI agent unattended to do the hands-on hacking inside Thailand's finance ministry

An attacker ran an unattended AI agent to hack Thailand's finance ministry. It used no new exploit, and defenders catch it by watching host actions.

A mechanical arm turning door handles along a wall, one door ajar

An artificial intelligence (AI) agent ran the intrusion at Thailand's Ministry of Finance, and that headline is the least useful thing about it. Strip the novelty away and the tradecraft is ordinary. Someone rented a server, dropped a consumer AI assistant onto it, told the assistant to stop pausing for approval, and aimed it at the ministry. Waiting on the other side were a data service that answered with no password and a stack of privilege-escalation bugs that have been patchable for years. The AI contributed reach and speed. Ordinary neglect contributed the way in.

The account comes from Hunt.io, together with independent researcher Bob Diachenko, who documented the operation after the attacker's own staging server was left with directory listing switched on, exposing 470 MB of tooling spread across roughly 585 files. The target runs Thailand's treasury and tax collection. Thai authorities were notified in mid-July 2026, and the public writeup landed on July 24. Investigators found active session cookies, planted web shells, and access to several internal systems, though no proof that documents were taken.

The agent bought labor, not capability

The assistant is Hermes, an open-source tool from Nous Research built for ordinary chores like managing mail over Telegram or Slack. Nothing about the incident is a flaw in Hermes itself. The operator ran it in its permissive "YOLO" mode, which skips the human-approval prompt before each command, and let it work the network on its own. It ran LinPEAS, a standard Linux privilege-escalation scanner, searched for over-privileged binaries, enumerated the filesystem, and indexed personnel records reaching back to 2012.

Look at how the agent actually got in and got root, and the AI angle shrinks. Initial command execution came from an Apache HiveServer2 (the SQL front end to Hadoop) that answered with its authentication mode set to NONE, according to Hunt.io's findings as reported by The Hacker News. From there the operator's tooling loaded a malicious Hive user-defined function to execute shell commands under the Hive service's own account. The escalation stage was a menu of old bugs: PwnKit (CVE-2021-4034) in polkit, the 2021 sudo heap overflow (CVE-2021-3156), and a 2017 IIS WebDAV flaw, per Security Affairs. A customized LinPEAS also probed four 2026 Linux page-cache vulnerabilities. None of that is a capability the agent invented. It is the path a mid-tier human operator would have taken, run faster and with nobody watching each step.

An autonomous operator is easier to catch, not harder

The reflex reaction to "the AI ran the attack" is that detection just got harder. The evidence points the other way. Handing the keyboard to an agent stripped out the human judgment that normally cleans up after an intrusion, and it left a louder trail than a careful operator would.

Start with how the campaign was found: the staging server sat on the internet with directory listing enabled and 470 MB of tooling in plain view. Hunt.io also notes the agent's web interface ships a recognizable HermesWebUI server header, which internet-wide scanning tied to roughly 5,900 events in a month, and that its output lands in a predictable /hermes-results/ folder exposed on around 575 separate instances. The tooling that saved the operator time became the fingerprint that mapped the whole operation. Automation without a human editor produces exactly this kind of self-disclosure.

Detect the actions, not the operator

Here is the practitioner takeaway, and it is a reassuring one. You do not need a detection that recognizes "an AI did this." The commands an agent runs land on the host exactly like commands a human runs. LinPEAS looks like LinPEAS whether a person or a language model launched it. A web service opening a socket to an internal Hadoop control port is an east-west anomaly regardless of who is behind it. Build your alerting around what executed, not around who typed it.

StepWhat happened on the hostHost signal to watch
EntryHiveServer2 reachable with authentication set to NONE, then a malicious Hive function ran OS commandsAn analytics or web service spawning a shell; a new function or JAR loaded into HiveServer2
Privilege escalationA LinPEAS sweep probed for PwnKit, the 2021 sudo overflow, and 2026 Linux page-cache bugsLinPEAS-style enumeration bursts; sudo or polkit exploit attempts on a server
ReconRecursive filesystem walk and personnel folders read back to 2012A service account mass-reading files far outside its normal path
Internal reachA web host opened connections to internal Hadoop control ports 10000 and 50070East-west traffic from a web server into internal database or big-data ports
StagingA Go implant staged for Windows and Linux; PHP web shells hidden as leading-dot filesA new dotfile PHP in a web root; an unsigned Go binary beaconing out
Every step of the intrusion maps to a technique catalogued years ago, and to a host signal you can already watch. Source: Hunt.io.

Two of those signals deserve emphasis. The entry point was not a zero-day; it was a big-data service exposed with authentication turned off. Analytics stacks like Hadoop, Hive, and Ambari, and admin consoles like GlassFish, get stood up on internal networks and rarely get the threat-modeling a public web app receives. They are the soft underbelly, and that is where the agent went. The escalation target list, meanwhile, mirrors the last two years of Linux root bugs. The four 2026 page-cache vulnerabilities the custom LinPEAS checked for are the same family behind the in-memory root exploits we covered. Patch PwnKit, the sudo overflow, and the 2026 page-cache set, and this escalation chain breaks no matter who is driving.

We have watched this pattern build

This is not the first time an autonomous agent has done an attacker's hands-on work. We wrote about an AI agent that breached Hugging Face and the first ransomware run end to end by an AI agent. The through-line across all three is the same. The agent lowers the skill and labor cost of an intrusion, but it does not change the atoms of the attack. Someone still has to leave a service unauthenticated. Someone still has to skip the patch. The AI just reaches the door faster.

On attribution, stay careful. Hunt.io assessed with low-to-medium confidence that the operator was Chinese-speaking, citing Hong Kong hosting, a Chinese-language artifact in the agent interface, and infrastructure linked to earlier ShadowPad and VShell activity. No specific threat group has been named, and the assessment is tentative. Treat it as a lead, not a conclusion.

Close the unauthenticated data service first

The order of operations here is not glamorous. Before you build a detection for agentic attackers, find the HiveServer2 instances, the Hadoop endpoints, and the admin consoles on your internal network and confirm none of them answer with authentication set to NONE. Then confirm the polkit, sudo, and 2026 Linux page-cache patches are on every host. Then wire an alert for a web or analytics service that spawns a shell or reaches an internal database port. This intrusion succeeded on ordinary neglect. It fails on ordinary hygiene.

Topics

Frequently asked questions

What happened at Thailand's Ministry of Finance?

An attacker installed an open-source AI assistant called Hermes, which was misused here and is not itself flawed, on a rented server, disabled its command-approval prompt, and used it to run reconnaissance inside the ministry's network. Researchers at Hunt.io found the operation after the attacker's staging server exposed its tooling to the internet.

Did the AI agent use a new exploit?

No. Initial access came from an Apache HiveServer2 service left with authentication set to NONE, and privilege escalation relied on years-old Linux bugs like PwnKit and a 2021 sudo flaw. The agent supplied automation and labor, not a novel exploit.

How can defenders detect an attack run by an AI agent?

Detect the actions, not the operator. The commands an agent runs, a LinPEAS sweep, a malicious database function, east-west connections to internal Hadoop ports, look identical to human-run commands. Alert on those host behaviors rather than trying to identify the AI itself.

Was any data stolen from the ministry?

Investigators found active session cookies, planted web shells, and access to several internal systems, including personnel records dating to 2012. Hunt.io reported no evidence that documents were exfiltrated, though the intrusion appeared to be ongoing when it was discovered.

Who was behind the Thailand finance ministry attack?

Hunt.io assessed with low-to-medium confidence that the operator was Chinese-speaking, citing Hong Kong hosting, a Chinese-language artifact, and infrastructure linked to earlier ShadowPad and VShell activity. No specific threat group has been named, and attribution remains tentative.

Ready to meet the Guardians?

Deploys fast - agentless for monitoring and cloud, a lightweight agent for deep endpoint security. Just Suriq, standing watch.