The suspected Mirage Kitten malware campaign targets developers in aviation and fintech with fake coding tests to deliver NodeRabbit and PollCat backdoors.
A StreamRat banking trojan campaign uses fake Meta TV-streaming ads to infect Android users. The StreamRat banking trojan enables full device takeover.
JSCeal hides crypto-stealing malware in V8 bytecode, but researchers built a tool to decompile it and expose its advanced theft capabilities.
JSCeal is a cryptocurrency stealer that Check Point Research has tracked since early 2025. Unlike most malware, it hides its code in a format that makes analysis much harder. Check Point presented its latest research at Black Hat USA 2026 and showed how its team built a tool that converts the hidden code into a form analysts can understand.
JSCeal uses a clever trick. Instead of delivering normal JavaScript, its creators compile the malware into V8 bytecode, the format that Chrome and Node.js use to run JavaScript efficiently. They then package the bytecode with a Node.js runtime that executes it.
The original JavaScript never reaches the victim’s computer. As a result, most tools designed to analyze JavaScript have little useful code to work with.
“JSCeal is a stealer delivered as compiled V8 bytecode (.jsc) and executed by a bundled Node.js runtime, targeting cryptocurrency applications (other vendors also tag it with the names WEEVILPROXY or MeadowLocust). ” states the report. “Unlike ordinary JavaScript malware, JSCeal reaches the analyst after two transformations have already removed much of the information that source-oriented tools depend on. First, the JavaScript is heavily obfuscated. Then it is compiled into V8’s internal bytecode representation and shipped as cached data rather than source code. The resulting format is version-specific, poorly served by mature reverse-engineering tooling, and unsuitable for most standard JavaScript deobfuscation workflows.”
Before compilation even happens, the JavaScript source gets run through a commercial-grade obfuscator too, adding a second wall on top of the first. Function and variable names get replaced with meaningless strings, important text gets split into encrypted chunks reconstructed only at runtime, and the program’s actual logic gets scrambled into a state machine that hides the real order operations execute in.
Stack two separate obfuscation techniques on top of each other, and you get a payload that’s expensive to analyze but was genuinely cheap for the attacker to produce, since none of these tools are custom-built; they’re just assembled from existing open-source components.
Check Point’s answer was building on top of View8, an existing open-source V8 bytecode decompiler, and extending it with a purpose-built pipeline specifically tuned to JSCeal’s patterns. The process has to happen in a strict sequence, because each layer of deobfuscation exposes information the next layer needs: recovering encrypted strings reveals dictionary keys, those keys unlock proxy function relationships, and cleaning up the proxies finally exposes what the code is actually doing underneath. Applied across 23 different JSCeal samples collected over several months, the pipeline produced usable, readable output in every single case.
What that recovered code actually shows is a genuinely broad toolkit built for financial theft. JSCeal steals saved passwords and cookies from eight different Chromium-based browsers, harvests Telegram session data, logs keystrokes, takes screenshots, and installs a locally generated, attacker-controlled certificate to intercept and modify HTTPS traffic in transit. That last capability lets it silently rewrite what a victim actually sees from real financial platforms, swapping login QR codes on Binance, injecting fake security challenges on Bybit, and replacing legitimate scripts served by Ledger’s own website with content the attacker controls.
One capability goes well beyond passive data theft into something closer to automated account takeover. The malware can launch a victim’s own installed browser, inject stolen session cookies, and navigate through Google’s actual account authentication flow using automation tooling built specifically to avoid looking like a bot.
“The proxy is not limited to passive interception. The recovered code contains dedicated handlers that modify selected requests and responses for specific services.” continues the report. “A configuration function exposes separate overrides for Binance, Bybit, and Ledger, as well as generic handlers for replacing HTML, blocking hosts, and clearing selected cookies.”
When it hits a password prompt, it tries every credential it previously stole from that same machine until one works, then walks away with a fresh, valid OAuth token, essentially replaying a stolen identity rather than just filing away a list of passwords for later.
Once Check Point recovered the code, another problem appeared: thousands of functions had meaningless names, making the code almost impossible to understand manually.
To help, the team added an optional AI step that used Claude and GPT to suggest clearer names for the functions. They tested the results on 142 function trees. Claude produced useful and accurate names in 128 cases, while GPT did so in only 30.
Check Point stresses that AI-generated names are only suggestions. Analysts still need to check the actual code before trusting them.
JSCeal hasn’t stood still since this research began either. Later samples upgraded to a newer Node.js runtime that broke compatibility with the team’s existing disassembler, added a fresh AES encryption layer wrapped around the compressed payload with the decryption key supplied externally rather than baked into the file, and expanded targeting to macOS for the first time.
“The authors introduced another obstacle by adding an AES-256-CBC encryption layer around the Brotli-compressed payload. The first encrypted payload we observed was generated on 2025-11-11 (581e2e2265d0c1509b3799c5a9039374). The AES key is not stored in the malware bundle itself. Instead, another stage of the deployment chain provides it through an environment variable.” continues the report. “Recovering the underlying V8 code cache therefore requires obtaining the corresponding key from the surrounding infection chain, which is not always possible when only an isolated bundle or payload is available. Protecting a payload with an encryption key supplied by an earlier deployment stage is an effective anti-analysis technique, consistent with patterns seen in other mature malware frameworks.”
That’s a malware family under active, well-resourced development, not a one-off campaign, and it’s specifically going after anyone running a crypto exchange account, a browser full of saved passwords, or a Ledger hardware wallet connected to a compromised machine.
If your organization touches cryptocurrency infrastructure in any capacity, this is worth reading past the technical deep dive, because the local proxy and certificate installation technique here works regardless of which specific exchange your team happens to use.
“JSCeal combines two forms of analysis friction: a version-specific compiled V8 format and several layers of JavaScript obfuscation applied before compilation.” concludes the report. “Neither makes the malware impossible to reverse, but together they move it outside the workflows that analysts normally rely on.”
Berlin refused a 30 Bitcoin ransom, leading hackers to leak 6TB of sensitive state administration and national defense data on the dark web.
When a ransomware gang dumps nearly six terabytes of state administration files onto the dark web, ignoring them does not make the problem go away. The Rhysida ransomware group recently carried out this exact threat against Berlin after local authorities refused to pay a thirty Bitcoin ransom.
At the end of August, Berlin’s state government confirmed it was dealing with an extortion attempt following an August cyberattack on the city-state’s administrative network, and officials have already refused the requested ransom. The ransomware group Rhysida claimed responsibility on its leak site August 28, posting an entry titled simply “Berlin, Germany” and claiming 5.79 terabytes of data across roughly 1.44 million files, with personal information on 12,076 individuals allegedly included.
Rhysida claimed it stole 5.79 TB of data, covering around 1.44 million files. The alleged dataset includes:
Personal data: 12,076 individuals, 16,389 email addresses, 11,963 phone numbers and 148 IBANs.
Sensitive records: more than 5,000 personnel files, more than 5,000 administrative-offence files, payroll data and leadership information.
Credentials: plaintext passwords and credentials for systems including GebäudAtlas, the ePayment PAYONE database and Z_ADMIN accounts.
Government and legal material: disciplinary proceedings, court cases, supervisory documents, NDA records and Bundesrat committee protocols.
Classified information: data related to classified-material handling and documents allegedly containing state secrets.
Critical infrastructure: vulnerability analyses concerning Berlin’s water supply.
Identity documents: passports and ID cards from personnel records.
Other material: contracts, financial documents, HR records, infrastructure files, health data, password stores and SQL/PST archives.
The group also claimed that the material could involve violations of GDPR, German classified-information rules, criminal law and KRITIS/BSIG requirements. These are Rhysida’s claims and have not been independently verified.
The scale of the breach is staggering. Investigators are now looking at roughly 1.4 million files containing personal details of civil servants, internal infrastructure records, and critical government data.
The fallout goes far beyond routine data theft. Investigative journalist Lars Winkelsdorf pointed out the gravity of the situation on social media.
Die absolute Vollkatastrophe ist eingetreten
Dieses Datenleck ist schlimmer als alle bisherigen Terroranschläge zusammen 1/xhttps://t.co/epU4mCYgew
“In addition to LKA documents related to investigations, the files also include plans concerning national defense—ranging from the federal government’s secret communication channels in the event of an apocalypse to defense-related companies and emergency plans developed by government agencies,” Winkelsdorf wrote.
Exposing crisis response plans and secret communication channels turns a financial shakedown into a national security headache.
Worse still, the leaked material includes files concerning chemical, biological, radiological, and nuclear threats.
“Among the published files is a folder titled “AG CBRN-Rahmenplanung.” CBRN stands for chemical, biological, radiological and nuclear threats,” notes the Euronews report
Having that kind of operational data floating around public forums gives hostile actors a blueprint for disaster.
Refusing to pay ransoms is the right policy, but it rarely stops the bleeding once the network is compromised. Governments keep treating cybersecurity like an IT expense rather than an existential line of defense.
Until boards start treating network segmentation with the same seriousness as physical security, we will keep watching expensive countdown timers tick down to zero.
Berlin’s state government announced the launch of a crisis response after the threat actors published the stolen data.
“A central crisis unit will oversee the review, verification and assessment of the leaked data and support efforts to inform affected citizens and businesses, said the city.” Reuters reports.
Another trove of data from Berlin's government has appeared online, authorities said. Germany's information security agency separately warned about the Rhysida cybercrime group.
1. Overview The AhnLab SEcurity intelligence Center (ASEC) continuously monitors various threats targeting Linux environments. Techniques that modify the Linux kernel to conceal malware and signs of compromise have been used for a long time, and Syslogk is one such rootkit that operates in this manner. This document provides an analysis of the key features […]
A new round of the weekly Security Affairs newsletter has arrived! Every week, the best security articles from Security Affairs are free in your email box.
Enjoy a new round of the weekly SecurityAffairs newsletter, including international press.
Hunt.io uncovered a Chinese-speaking campaign using AI agents to automate cyberattacks against Asian government, education and industrial targets.
Threat intelligence firm Hunt.io just documented a second, separate China-linked campaign wiring commercial AI models directly into live cyberespionage operations, this time hitting Taiwan’s Kuomintang Party archives, Indonesia’s Ministry of Foreign Affairs, government and education systems in mainland China, and industrial hosts in Vietnam.
The full report traces the operation through five exposed open directories the operators accidentally left publicly accessible, which is how researchers reconstructed the entire orchestration system from the inside.
“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.” reads the report. “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.”
The framework behind the campaign, called SecFlow by the operators, could use different AI models, including Claude, Qwen, and DeepSeek. The operators could switch between them without changing how the system worked. Instead of using the models’ official APIs, SecFlow routed requests through private proxy servers linked to the niestools.com domain.
The AI models did not break into systems on their own. They helped automate and organize traditional hacking tasks, such as scanning for vulnerabilities, testing stolen credentials, trying exploits, deploying webshells, collecting data and evidence, and generating reports. The attackers built the infrastructure that connected these AI capabilities to real-world intrusions.
The most damaging confirmed breach hit a Fengtai District government Office Automation environment in China, and it ran the full playbook from web shell to data theft.
“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.” Hunt.io states. “SecFlow coordinated reconnaissance, exploitation, and reporting across Claude, Qwen, and DeepSeek workers. “
Operators achieved Windows command execution through internet-facing web applications, then used ASPX web shells not just to run commands but as a persistent operational backbone: querying internal databases, pulling an LSASS memory dump apart in 37 separate chunks to avoid detection, and extracting SAM and SYSTEM registry hives containing password hash material.
“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.” continues the report. “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.”
From there they pulled 822 OA user account records, created a new privileged account of their own for backup access, and walked away with 949 attachments totaling 1.28GB, including a chronic-disease report containing real patient health information.
In a separate case, the operators also exposed the management backend of a Chinese education AI platform. The irony is hard to miss: an AI company was compromised partly because its own AI infrastructure was not properly secured.
Hunt.io found a backend that anyone could access without authentication. It exposed 23 AI agent configurations, 14 API secret fields containing credentials, and 104 complete chatbot conversations. Some of those logs included real student data, such as names, student ID numbers, majors and academic advisers, taken from career-guidance and study-partner chats.
The exposed credentials were not just old or unused secrets. They worked against the platform’s live production API, meaning attackers could use the stolen keys to access real systems.
One particularly clever access method used a fake MySQL server as bait rather than a target. A malicious service impersonating a MySQL database would accept connections from vulnerable Java applications, then return specially crafted data designed to trigger unsafe object deserialization on the client side the moment it connected, turning what should have been an outbound database query into inbound code execution. That’s initial access flipped on its head, exploiting the assumption that connecting out to a database is inherently safer than accepting connections in.
The webshell tooling itself, a custom framework the operators called GLUTTON, hid its payloads inside PNG image files using steganography, literally embedding executable code in the red, green, and blue color channel data of ordinary-looking images. A small decoder script on the server would read the image pixel by pixel, XOR-decrypt the hidden bytes using a fixed key, and load the resulting code directly into memory without ever writing an obviously malicious file to disk. Any security control that only checks file extensions or content types for image uploads would sail right past this without noticing anything wrong.
This isn’t an isolated incident for the underlying pattern either. It’s the second campaign in two months where researchers caught commercial AI coding tools embedded as operational components of live nation-state intrusions, following a similar Hunt.io discovery in June involving the same Claude Code and DeepSeek combination against separate government and financial targets in Afghanistan and Thailand. Anthropic itself disclosed a related pattern back in November 2025, describing attackers who convinced Claude it was doing legitimate defensive penetration testing by splitting malicious requests into small, individually harmless-looking pieces.
The operators also left a clear trace across their own infrastructure. The username “Nie” appeared several times in hardcoded file paths inside the GLUTTON tools and was reused in proxy credentials, linking all five compromised workspaces to the same campaign.
For defenders, this is especially important if they use Java frameworks vulnerable to deserialization attacks, older Apache or Grafana systems, or public-facing office automation software. The campaign shows that attackers can treat commercial AI models as interchangeable tools. The key question is no longer which AI model carried out an attack, but how quickly defenders can recognize the attack pattern, regardless of which model was used.
Serbian activists were targeted with zero-click Pegasus and NoviSpy spyware, exposing a major surveillance campaign ahead of elections.
A member of Serbia’s student protest movement had their iPhone infected with NSO Group‘s Pegasus spyware without ever clicking a link or opening a file. The Citizen Lab confirmed the infection in collaboration with the SHARE Foundation, tracing it to an iMessage zero-click exploit and identifying high-confidence indicators of compromise between December 2025 and January 2026, with the possibility of additional infections not ruled out.
“In collaboration with the SHARE Foundation, the Citizen Lab analyzed forensic artefacts from the iPhone of a member of Serbia’s student protest movement after they received an Apple Threat Notification warning of targeting with mercenary spyware.” reads the report published by Citizen Lab. “Our analysis confirmed that an iMessage zero-click exploit was used to infect the device with NSO Group’s Pegasus spyware. “
The attack required no action from the victim, which makes zero-click attacks especially dangerous. Citizen Lab said the Pegasus infection could stay hidden while giving the attacker full access to the phone, including messages, photos, notes, microphone, and camera. Apple later fixed this specific exploit through security updates in iOS 18.4.1.
“We believe that the zero-click exploit used in this attack targeted Apple iMessage, and has subsequently been patched by Apple as of iOS 18.4.1.” continues the report. “A zero-click infection with Pegasus spyware would not have been visible to the target, and would give the Pegasus attacker total access to the device. Pegasus allows an attacker to do anything that a user can do, ranging from accessing private data like notes, pictures and even encrypted messages. Pegasus also has the ability to covertly enable the phone’s microphone and camera.”
This one confirmed infection sits inside something considerably bigger. The SHARE Foundation has documented at least 14 individuals targeted with advanced spyware since early 2026, spanning student movement members, civil society activists, an opposition member of parliament, and a local councilor, which the organization is calling the largest documented surveillance wave in Serbia’s history. Twelve people approached SHARE’s digital forensics team in August after receiving Apple’s own threat notifications, warnings the company sends when it detects likely state-sponsored spyware targeting; eleven of those devices remain presumed infected pending further forensic confirmation.
The timing lines up uncomfortably well with Serbia’s political calendar. This surveillance wave coincides with local elections held on March 29, 2026, and stretches toward planned early parliamentary elections in October, following months of student-led anti-government and anti-corruption protests.
“These notifications and forensic confirmation highlight the aggressive mercenary spyware targeting of the peaceful pro-democracy movement with mercenary spyware ahead of key 2026 election cycles.” continues the report.
Targeting activists and opposition figures specifically in the run-up to elections isn’t subtle, and it fits a pattern Serbia has shown before.
Serbia has a history of using commercial spyware. Citizen Lab previously documented Pegasus targeting civil society and the use of Cellebrite tools to install the locally developed NoviSpy on activists’ phones. In this case, SHARE Foundation and Amnesty Tech found a new version of NoviSpy on a student activist’s Android phone after Serbian authorities seized it during police questioning.
Amnesty International’s Security Lab head, Donncha Ó Cearbhaill, connected the dots plainly between state custody and spyware installation.
“The forensic findings by SHARE prove that Serbian students continue to be targeted with invasive Android spyware tools, installed while detained by Serbian authorities” he said.
If you’ve received an Apple Threat Notification, whether in Serbia or anywhere else, the Citizen Lab’s guidance is unambiguous: treat it as a presumed infection and get expert help immediately rather than waiting to see if anything seems wrong. Individuals in Serbia should contact the SHARE Foundation directly, and anyone elsewhere can reach Access Now’s Digital Security Helpline, which supports journalists, human rights defenders, and other high-risk civil society targets worldwide. Anyone who suspects they might be a target based on their work or public role should also turn on Lockdown Mode, Apple’s built-in feature that significantly narrows what a zero-click exploit can actually reach, and keep every device updated, since the patch that closed this specific hole has already existed for well over a year for anyone who installed it.
“We believe that the zero-click used in this attack has been rendered ineffective by a patch from Apple in recent iOS versions. We urge everyone, especially those facing increased risks because of who they are or the work they do, to keep all devices updated.” concludes the report. “Click HERE for instructions on how to keep your iPhone up to date.”
We continue tracking the activity of Toy Ghouls (also known as Bearlyfy, Laboo.boo, and Feral Wolf), a financially motivated group that has been targeting Russian organizations since 2025. The attackers initially relied exclusively on tools pulled from public GitHub repositories along with leaked Babuk and LockBit ransomware builders, later shifting to their own custom ransomware, GenieLocker. In early July 2026, we observed the group using a custom backdoor for the first time.
We identified two versions of this backdoor: one uses the HiveMQ MQTT broker as its C2 server, while the other relies on the Element messenger. Both versions include “bird” in their names:
mqtt-bird-agent 0.1.0 (HiveMQ version)
matrix-bird-agent 0.1.0 (Element version)
This post examines how the backdoor is delivered to target systems, how it establishes persistence, and how it communicates with its C2 server.
Technical details
Delivery
In this campaign, the attackers use Windows Remote Management (WinRM) to deliver the backdoors and their configuration files to compromised systems. The group relies on open-source tools such as Evil-WinRM and WinRM-fs to do this.
Installation
The backdoor can both run within an interactive command-line session and establish persistence as a Windows service, using the --install or install option, depending on the backdoor version. The --service (or service) option is not available by default and is instead used as an argument for the installed Windows service.
Other launch options are listed in the backdoor’s help output:
C:\cplsupport.exe -h
Bird Agent - MQTT server monitor
Usage: cplsupport.exe [OPTIONS]
Options:
-c, --config <CONFIG> Path to config.toml config file
--install Install as a system service
--uninstall Uninstall the system service
--seal Encrypt sensitive config fields in-place using a machine-bound key
-h, --help Print help
-V, --version Print version
HiveMQ version backdoor help output
In the Element version, the backdoor help output looks as follows:
C:\wtass.exe -h
Matrix monitoring agent
Usage: wtass.exe [OPTIONS] [COMMAND]
Commands:
install Register this agent with the Matrix homeserver and panel
uninstall Remove this agent's service and credentials
service Run as a Windows service (internal)
help Print this message or the help of the given subcommand(s)
Options:
-c, --config <CONFIG>
-h, --help Print help
-V, --version Print version
Element version backdoor help output
By default, the backdoor looks for a config.toml configuration file in the directory where the executable was launched, then falls back to %PROGRAMDATA%\SynapseAgent\config.toml (Element version) or %PROGRAMDATA%\cplsupport\config.toml (HiveMQ version). If no configuration file is found in either location, the full path can be specified using the -c (--config) option.
The backdoor accepts both unencrypted configuration files and files with partially encrypted sections. In the first case, once the backdoor is launched, it reads the file and partially encrypts it using the seal() function (the --seal option in the HiveMQ version), applying the ChaCha20-Poly1305 algorithm with a key derived from the value of the HKLM\Software\Microsoft\Cryptography\MachineGuid registry key. This means that after the backdoor’s first run, the configuration file becomes bound to that specific machine. On subsequent runs, the configuration is decrypted automatically. If the input configuration was already partially encrypted, it is likewise decrypted automatically.
If the configuration cannot be decrypted, the backdoor stops running.
Encrypted configuration files look as follows:
Encrypted backdoor configuration file, HiveMQ version
The encrypted portion of the HiveMQ version’s configuration contains the following parameters:
agent_privkey: the agent’s private key
channel_id: the channel identifier used to communicate with the broker
server_pubkey: the server’s public key
Decrypted blob field in the HiveMQ version’s configuration
In the Element version, the configuration file is deleted immediately after the first run, and the relevant parameters are instead written to the HKLM\Software\synapse\Config\SealedConfig registry key. On subsequent runs, the backdoor checks the registry for its configuration first.
Decrypted Element version configuration file, retrieved from the registry
The Element version’s configuration specifies the address of an Element server controlled by the attackers, a room identifier, and an access_token used to access that room. If this parameter is left empty, the backdoor prompts for the password interactively during installation. After successfully creating a session, the backdoor saves the received token to the blob field.
Communication
At startup, both backdoor versions send a GET request to http://ip-api.com/json to determine the system’s public IP address and country of origin.
The first version uses the public HiveMQ MQTT broker (broker.hivemq.com) as its C2 server. The free tier of this broker supports up to 100 concurrent connections and up to 10 GB of traffic per month. The attackers set up their own cluster and used it both to collect telemetry from compromised systems and to send commands to the backdoor.
Once a connection is established, the system’s status is sent via a POST request to
broker.hivemq.com:8883/[cluster_id]/status. The message format is:
{"online":bool,"hostname":"hostname.domain","timestamp":unix_timestamp,"location":{"json"}}.
At intervals defined in the configuration file, system information, such as CPU load and available memory, is sent via a POST request to
broker.hivemq.com:8883/[cluster_id]/metrics3. The message format is:
{cpu_percent":float,"mem_used_bytes":int,"mem_total_bytes":int,"disk_used_bytes":int,"disk_total_bytes":int,"load_1m":float,"load_5m":float,"load_15m":float,"uptime_secs":int,"hostname":"hostname.domain","timestamp":unix_timestamp}.
The backdoor sends GET requests to
broker.hivemq.com:8883/[cluster_id]/cmd/req to retrieve commands from the C2 server. The server responds in the format:
{"cmd_id":int,"command":"str","timeout_secs":int}.
Commands are executed via PowerShell.exe in hidden mode, using the -NonInteractive -NoProfile -Command parameters.
Command execution results are sent to the command server at
broker.hivemq.com:8883/[cluster_id]/cmd/res in the
{"stdout":"str","stderr":"str","exit_code":int,"duration_ms":int} format.
For the second backdoor version, the attackers set up their own Element server running on the Matrix protocol, meet.element[.]tw, as the C2 server. On this server, they created a room used to receive messages containing device information and to send commands for execution on the compromised system. The communication flow is as follows:
Once a connection is successfully established, the backdoor sends an m.bird.status message containing the system’s status. This message format is identical to that used in the HiveMQ version.
At intervals defined in the configuration file, information about the compromised system is sent as an m.bird.metrics message. Field names are slightly different from those in the first version:
{cpu_percent_x100":float,"mem_used_bytes":int,"mem_total_bytes":int,"disk_used_bytes":int,"disk_total_bytes":int,"load_1m_x100":float,"load_5m_x100":float,"load_15m_x100":float,"uptime_secs":int,"hostname":"hostname.domain","timestamp":unix_timestamp}.
This version of the backdoor supports two types of commands, distinguished by the start of the received message.
To set a new interval for sending metrics, the attackers send a message beginning with config:set_interval (accepting values from 5 to 3600 seconds). The new value is saved to the HKLM\Software\SynapseAgent\metrics_interval registry key.
Messages containing commands to execute begin with the string cmd:. Based on data extracted from Element’s SQLite databases on the compromised system, we were able to identify the account name the attackers used to send commands: panel-bot.
Received commands are executed via the Windows command line interface.
Command output is sent as an m.bird.cmd_response message. This message format mirrors the one used in the HiveMQ version.
Takeaways
We have been tracking Toy Ghouls’ activity for quite some time. We previously found that the group had expanded its arsenal with a custom ransomware strain, GenieLocker, and we have now discovered that it has also developed a backdoor capable of giving it full control over an infected device. The new tools use unconventional channels to communicate with their C2 server: the HiveMQ MQTT broker and the Matrix-based Element messenger. This shift away from publicly available open-source projects toward custom-built tools suggests that Toy Ghouls is working to make its attacks more sophisticated and to evade detection for longer.
The AhnLab SEcurity intelligence Center (ASEC) recently identified attack cases that exploited Radmin and UltraVNC. Although the Initial Intrusion method remains unknown, the attackers installed Radmin—a remote control tool—and then installed UltraVNC. The threat actors exploited the remote control tools to gain control of the infected systems and installed Netch and CCProxy to use the […]
Arquivos criados com a técnica poliglota têm aparecido cada vez mais em ciberataques nos últimos anos. Eles permitem que os invasores façam o malware passar pelos filtros de e-mail e pelos verificadores de arquivos, enganem as vítimas em ataques de phishing e dificultem as investigações de incidentes. Para conseguir isso, os invasores constroem deliberadamente um arquivo que o sistema pode interpretar como formatos diferentes, dependendo do aplicativo em que ele é aberto. Um exemplo clássico é um arquivo que pode ser tratado como uma imagem PNG ou um arquivo ZIP. Basta alterar a extensão do arquivo ou simplesmente usar um ou outro aplicativo para abri-lo.
Vamos entender por que é possível criar arquivos desse tipo, quais combinações de formatos já foram usadas em ataques reais e como as organizações podem se proteger contra essa ameaça.
Por que é possível criar arquivos poliglotas
Os formatos de dados por trás dos arquivos poliglotas raramente são exóticos. Tudo se resume a uma combinação inteligente de formatos comuns que são estruturalmente compatíveis. Os poliglotas exploram pelo menos uma das seguintes peculiaridades em determinados formatos de arquivo:
A maioria dos formatos de arquivo precisa ser decodificada a partir do primeiro byte, mas alguns precisam ser lidos a partir do final. O exemplo mais claro é um arquivo ZIP: um início corrompido ou ausente não impede que os aplicativos leiam o arquivo, porque todos os cabeçalhos necessários ficam no final. Isso permite que os invasores simplesmente concatenem dois arquivos (no exemplo acima, um PNG e um ZIP). A parte inicial é lida como uma imagem PNG válida, enquanto a parte final é lida como um arquivo ZIP válido.
Muitos formatos funcionam como bonecas russas matrioscas: embora externamente tenham uma extensão específica correspondente ao uso pretendido, internamente o arquivo é, essencialmente, um arquivo ZIP que contém os dados necessários. Esse grupo inclui documentos modernos do Office (DOCX/XLSX/PPTX), pacotes de instalação do Android (APK), arquivos de biblioteca Java (JAR) e muitos outros.
Alguns formatos não têm requisitos estruturais rígidos ou têm requisitos suficientemente flexíveis para que o aplicativo que processa o arquivo consiga localizar o trecho de que precisa, mesmo quando esse trecho não está no início.
O repositório Polydet no GitHub apresenta vários exemplos de combinações possíveis de arquivos para criar um arquivo poliglota. De acordo com a classificação da MITRE, essa técnica se enquadra na categoria Masquerading (T1036.008, Masquerade File Type).
Exemplos de arquivos poliglotas em ciberataques conhecidos
Análises de campanhas de malware disponíveis publicamente revelam diversos tipos de arquivos poliglotas. Os invasores adaptam todo o cenário do ataque a uma combinação específica de tipos de arquivo.
O grupo Head Mare entregou o malware PhantomPyramid como um anexo ZIP. O arquivo consistia em código executável do Windows (EXE), com um pequeno arquivo ZIP concatenado ao final. Quando a vítima abriu o arquivo compactado, ele continha um arquivo com a extensão PDF.LNK que, então, iniciava esse mesmo anexo poliglota, desta vez como um arquivo executável.
No ataque documentado pela JPCERT, os invasores criaram um arquivo que começava como PDF e era detectado como PDF pela maioria dos verificadores, mas tinha uma extensão DOC e era aberto nos aplicativos do Office como um arquivo DOC válido contendo macros maliciosas.
Os ataques que disseminaram os cavalos de Tróia StrRAT e Ratty usaram um arquivo poliglota criado a partir de um pacote de instalação assinado do Windows (MSI), com código Java malicioso (JAR) anexado ao final.
Os ataques do StrelaStealer usaram um arquivo poliglota com extensão HTML: uma biblioteca do Windows (DLL) com um documento HTML de chamariz concatenado ao final. Um atalho no arquivo compactado iniciou o arquivo duas vezes: uma vez por meio do comando start (o equivalente a um clique duplo, que abriu um navegador exibindo o documento HTML) e outra por meio do rundll32 (que iniciou a DLL maliciosa).
Em um ataque simulado, mas engenhoso, os pesquisadores concatenaram dois arquivos ZIP comuns e descobriram que diferentes ferramentas populares de compactação exibiam o arquivo combinado de maneiras diferentes: algumas mostravam apenas o primeiro arquivo compactado, outras apenas o segundo, e outras mostravam ambos ao mesmo tempo, como se fossem um único arquivo compactado com conteúdo compartilhado. Se o invasor estiver familiarizado com a infraestrutura da vítima e souber quais softwares estão instalados, poderá usar essa combinação para mostrar um arquivo às ferramentas de segurança e outro à vítima.
Os invasores empregaram uma complexa matriosca de malware em uma campanha que distribuiu o infostealer IcedID. Eles anexaram um arquivo ZIP aos e-mails de phishing; descompactá-lo produziu um arquivo ISO. Esse ISO, por sua vez, era descompactado em um arquivo CHM (Ajuda do Windows) criado com a técnica poliglota. Quando a vítima o abriu com a ferramenta padrão de Ajuda do Windows, o arquivo executou um script JavaScript incorporado ao conteúdo da ajuda, que iniciou o aplicativo padrão mshta (host de aplicativos HTML da Microsoft) e o direcionou para esse mesmo arquivo CHM. Os autores da campanha empacotaram um aplicativo HTA dentro do arquivo CHM de forma que sua presença não interferisse na leitura do arquivo como um documento de ajuda inócuo. O manipulador de HTA, por sua vez, simplesmente ignora todos os dados irrelevantes no início do arquivo até encontrar o script HTA.
Como as ferramentas de segurança lidam com arquivos poliglotas
Os exemplos acima deixam claro como esse truque de leitura dupla permite que os invasores implantem malware no computador da vítima. Mas como os filtros de e-mail e os sistemas EDR realmente lidam com arquivos desse tipo? A resposta depende inteiramente da solução específica, portanto, isso precisa ser verificado, seja por meio da análise da documentação técnica do fornecedor, seja pela execução de um teste controlado na infraestrutura corporativa, com todas as devidas precauções. De modo geral, apenas dois pontos são válidos em todos os casos:
A maioria das soluções de segurança não confia na extensão informada de um arquivo; em vez disso, verifica seu início para determinar sua estrutura real. É por isso que, no ataque descrito acima, o arquivo PDF com extensão DOC foi analisado como um PDF inofensivo, enquanto a macro maliciosa estava na parte DOC concatenada.
Se um arquivo começar como algo inofensivo (por exemplo, uma imagem) e sua extensão corresponder, uma análise mais sofisticada provavelmente não será aplicada a ele. Os invasores podem explorar isso: as instruções que acompanham o arquivo podem orientar a vítima a renomeá-lo para que o comportamento do sistema acabe associado à segunda carga útil, e não à imagem.
Como proteger uma organização contra ataques de arquivos poliglotas
A defesa contra arquivos poliglotas não requer soluções técnicas ou organizacionais complexas. O que exige são boas práticas de segurança sólidas e consistentes em toda a organização:
use listas fechadas de aplicativos autorizados a serem executados nas estações de trabalho dos funcionários. exclua aplicativos do Windows desatualizados, ferramentas administrativas da Microsoft não utilizadas, softwares de acesso remoto e de transferência de arquivos e qualquer outro software considerado potencialmente perigoso ou obsoleto.
use soluções de segurança de e-mail avançadas e equipadas com CDR (tecnologia de Desarme e Reconstrução de Conteúdo, que desarma anexos suspeitos e os reconstrói em versões mais seguras) e tecnologia de detonação (que executa anexos suspeitos em um ambiente isolado para análise). configure a análise aprofundada para anexos que apresentem sinais externos de serem arquivos poliglotas: todos os arquivos compactados e do Office, arquivos com extensões não padrão e assim por diante.
da mesma forma, configure a solução EDR para realizar uma análise aprofundada de possíveis arquivos poliglotas.
crie regras de monitoramento que gerem alertas para combinações incomuns entre um processo e os arquivos que ele recebe para processamento, como um arquivo CHM iniciado por meio do mshta ou um arquivo HTML iniciado por meio do rundll32, como nos exemplos acima.
adicione informações básicas sobre arquivos poliglotas ao programa de conscientização em segurança utilizado pela organização, para que os usuários fiquem atentos quando forem orientados a alterar a extensão de um arquivo ou a manipulá-lo de alguma forma incomum, por exemplo, abrindo-o em um aplicativo específico.
Experts got Claude to port a PLC exploit, but it cost $536 and 8 hours, and a later AI-generated payload accidentally destroyed the hardware.
Forescout researchers just answered a question that’s been hanging over industrial security for a while: can AI actually port a working exploit from one PLC to a different model with no source code and no debugger access? Their report says yes, but the answer comes with a price tag, a lot of researcher hand-holding, and a permanently destroyed piece of hardware.
The starting point was CVE-2021-31886, a pre-authentication buffer overflow in the Nucleus FTP server that the team had already exploited on a WAGO 750-852 PLC in earlier research. The goal this time was porting that working exploit to a related but distinct model, the WAGO 750-831, using Claude Code with access to a terminal, Ghidra, and the actual physical device.
“The exploit depended on target-specific parameters, including function addresses, offsets, and memory locations. Our goal was to use AI to port the exploit to a similar, but not identical PLC model: the WAGO 750-831. Beyond simply porting the existing RCE, we also wanted to test whether AI could help extend it into a more capable command-and-control implant on the constrained PLC.” reads the report. “We began this research with three inputs:
The working RCE exploit for the WAGO 750-852 PLC.
A firmware binary file for the other PLC, the WAGO 750-831 (V01.04.16), which the original security advisory flagged as vulnerable.
A physical WAGO 750-831 PLC running that firmware.”
This was a much harder task than the software exploits AI has handled before. Working with embedded firmware is difficult when there’s no source code and no debugger to help explain what’s happening.
Finding the vulnerability took a few attempts, but it wasn’t the hardest part. Claude tested the live FTP server, analyzed the firmware with Ghidra and wrote its own Python scripts to help with the analysis. It eventually crashed the PLC, confirming that the buffer overflow could be triggered.
The real challenge was going from a crash to actually running attacker-controlled code. That required much more work, and progress slowed down at that point.
The turning point came when Claude figured out why its injected shellcode kept disappearing before it could run. Normal FTP command processing was zeroing out the exact memory buffer holding the malicious payload right after the login command completed, and the fix meant deliberately avoiding that normal completion path entirely.
“Claude determined that the exploit path could preserve the shellcode by avoiding the normal command-completion path. Omitting the ‘\r\n’ (CRLF) terminator prevented the relevant processing path from completing in the usual way, leaving the attacker-controlled buffer intact.” continues the report. “Claude then created a test harness that measured PLC uptime after each exploit attempt. The device consistently crashed at the same point regardless of the injected payload, indicating that execution was failing before the payload itself could influence the outcome. This supported the hypothesis that the shellcode was being overwritten during normal FTP processing rather than executed.”
Claude got there with heavy guidance but got there nonetheless.
Once Claude solved that specific problem, things moved much faster. In just 12 minutes, it went from a harmless test payload to two working exploits: one made the PLC send ICMP pings to a remote machine, while the other sent a UDP packet containing the word “PWNED.”
Most of the time and effort went into solving the target-specific issue that was preventing the payload from running. After that, generating the working exploits was relatively easy.
The process still required a lot of time and money. The final exploit-development stage cost $535.74 in API fees during an 8-hour, 32-minute session, and the researchers had to guide Claude through several dead ends, provide disassembly details and switch to a larger context model when the smaller sessions ran out of space.
“The final RCE development stage consumed $535.74 in API usage, based on 2.6k input tokens and 1.3M output tokens. The corresponding session lasted 8 hours, 32 minutes, spread across several days of research. Most of that time was spent identifying the buffer-preservation issue associated with the FTP command-processing path.” states the report. “After achieving the initial RCE, we opened a new Claude Opus 4.6 session to explore whether the working ICMP and UDP payloads could be extended into a command-and-control implant. The prompt began: “I have working PoCs for UDP and ICMP beacons, read them and let’s plan a C2 implant on the PLC”.”
So, for now, this isn’t something an inexperienced attacker can simply hand to an AI and expect to work. It still takes expert guidance, substantial time and a not-so-small bill.
The most telling moment of the whole exercise happened after the exploit already worked. Researchers asked Claude to extend the working ICMP and UDP payloads into a full command-and-control implant, and while probing the PLC’s memory layout to build that, one generated payload wrote to a region mapped to flash storage, permanently bricking the device. Nobody told Claude to break anything; it was doing exactly what it was asked and still destroyed the hardware in the process, which is a genuinely unsettling data point for anyone imagining more autonomous AI agents operating against real physical infrastructure with less supervision.
The biggest finding here may not be that Claude successfully ported the exploit, but how fragile the process still is. Forescout also points to real incidents where attackers disrupted U.S. water utilities by abusing internet-exposed PLCs directly, without needing a sophisticated exploit.
That should still concern defenders. If AI keeps reducing the time, cost and expertise needed to develop more advanced attacks against PLCs, the idea that industrial systems are simply too difficult to hack may not hold for much longer. For now, the research shows that AI still needs expert guidance, but that gap could narrow as the technology improves.
“Recent attacks against internet-facing PLCs show that exposed controllers already create operational risk, even without the kind of RCE developed in this research. The concern is that AI could make more sophisticated exploitation easier to reproduce across those exposed devices. Today, that still requires specialist knowledge and time. But if AI continues to reduce both, vulnerabilities that once looked too difficult or uneconomical to exploit may deserve a different level of attention.” concludes the report. “For critical infrastructure organizations, the immediate implication is simple: do not dismiss vulnerabilities on OT devices merely because exploitation appears difficult today.”