Newshot
Account

Attackers exploit AhsayCBS vulnerability to hide malicious code in PNG images and deploy stealthy backdoors

AI summary

Attackers launched vulnerability exploitation attacks against AhsayCBS backup servers, planting multiple types of webshells, hiding encrypted code inside PNG images, and deploying [malware] that can only run on the target host.

Translation(model translation, not the source's own text)

Article title: Attackers Exploit AhsayCBS Vulnerability to Hide Malicious Code in PNG Images and Deploy Stealthy Backdoors

Body:

Attackers launched a vulnerability exploitation campaign against AhsayCBS backup servers, implanting multiple types of webshells, hiding encrypted code inside PNG images, and deploying a Python implant that can only run on the target host.

The investigation shows that the scope of this intrusion went beyond cryptocurrency mining; the attackers also established multiple persistent access channels that could provide long-term control over core systems responsible for protecting corporate backup data.

The attack occurred between October 8 and 11, 2026, before the vendor released a hotfix, and resulted in the compromise of 3 AhsayCBS servers at one enterprise.

The attackers exploited two vulnerabilities: an authentication bypass vulnerability (CVE-2026-105133) and a remote code execution vulnerability (CVE-2026-105134), which unauthenticated attackers can use to directly obtain SYSTEM privileges. Combined, the two vulnerabilities not only breached the backup platform itself but also fully exposed the sensitive access permissions held by the platform.

HuntressDuring the investigation, researchers identified a total of 5 types of webshells, a second cryptocurrency miner, and a host-bound Python implant.

In a technical report published on November 9, researcher Jonathan Semon described the toolset used by the attackers: these tools can hide executed commands, support file transfer, and actively weaken endpoint protection capabilities.

However, the research team has not yet confirmed the specific behavior of all payloads, nor can they verify whether the attackers stole backup data.

Implanting multiple types of webshells, using PNG steganography to disguise as normal traffic

One of the most distinctive webshells disguises itself as an internal image preview service. It does not accept obvious command parameters; instead, it processes user-uploaded PNG files and extracts hidden information from pixel data.

This technique is similar to PNG malware steganography disclosed in other previous attack campaigns, but Huntressdid not attribute this intrusion to the operators of those campaigns.

The loader reads the least significant bits of the red, green, and blue channel values of each pixel, concatenates and reassembles these bits into bytes, first parsing out a 4-byte payload length field, followed by the encrypted payload content.

The loader has a hardcoded AES key built in and uses Java's default AES transformation mode to decrypt the data; Huntressconfirmed that this mode is ECB mode with PKCS5 padding.

On the first request, a custom Java class loader loads the decrypted class into memory while returning a normal image for disguise. Subsequent requests pass parameters into that class and trigger code execution.

Execution results are encrypted and embedded into another PNG image and returned, making the entire interaction look no different from ordinary image traffic rather than a traditional command-and-control session.

This technique is highly stealthy: executable code is delivered entirely through normal requests and runs entirely in memory without dropping files to disk. The earlier PNG steganography campaign by Earth Sirrush showed that this type of image-hiding technique is also used in espionage operations, but the similarity in technique alone is not enough to prove a connection. Huntressanalyzed only the loader itself and did not obtain the malicious class it delivers, so it is currently unclear which commands the attackers executed through this webshell.

Implant execution flow, reconstructed from static analysis (Source: Huntress)

The implant's execution flow, reconstructed from static analysis (Source - Huntress)
The implant's execution flow, reconstructed from static analysis (Source - Huntress)

Researchers also found another webshell that behaves like a remote management API. It first validates an API token, timestamp, nonce, and HMAC-SHA256 signature, and only accepts requests after validation passes.

After validation, attackers can execute commands, change directories, and transfer files in chunks, supporting file transfers of up to 4GB. However, Huntressfound no relevant logs and could not prove that the attackers ever used the webshell's download function.

Deploying a host-bound backdoor; installing patches still requires investigating intrusion traces

Another standalone Python implant uses multiple layers of concealment. Its wrapper combines Base64 encoding, LZMA compression, and serialized Python code objects.

Before running, it calculates a SHA-256 value based on the host's MachineGuid and checks whether a matching marker file exists on the host. If the file is absent, the script exits immediately, thereby avoiding execution in analysts' sandbox environments.

If the marker file exists, the code copies a 673KB binary blob into executable memory and starts a thread. A reflective loader then maps the x64 DLL file embedded in the program.

Static analysis found C2 communication information and strings consistent with DNS-over-HTTPS characteristics, but Huntressneither observed the implant actually running nor could determine the malware family it belongs to.

The attackers also deployed the XMRig miner and created a scheduled task running with SYSTEM privileges that checks the program status once per minute and automatically restarts the mining process when necessary.

The attackers also deployed tunneling tools and remote access software and added broad Microsoft Defender exclusions, both expanding operational channels and greatly reducing security visibility on the compromised servers.

On an associated Veeam server, investigators found commands consistent with the characteristics of the NetExec credential theft module. The command queries locally stored backup credentials and calls DPAPI decryption to obtain plaintext credentials.

Multiple previous reports have disclosed the risk of Veeam backup credential leakage, explaining why such environments are high-value attack targets, but the initial entry point of this intrusion was not that Veeam vulnerability.

Ahsay has released hotfix 10.3.4.45 for version 10 and hotfix 9.15.2.70 for versions 7 through 9. Huntressverified that the version 10 patch effectively blocks the intrusion entry point observed in this attack.

It is important to note that installing patches cannot remove backdoors already present on servers. Affected enterprises should thoroughly investigate servers for suspicious activity, unauthorized protection exclusions, and various persistence mechanisms. If a server is confirmed compromised, Huntressrecommends rebuilding the system from trusted backups and rotating all credentials accessible to the compromised server.

Disclosing indicators of compromise to support enterprise threat investigation

Values written like {{NAME_ab12cd34}} are placeholders for real values. Use them exactly as written, in replies and in tool calls alike: they are filled in with the real values before anything runs. Don't ask to verify them, and don't replace them with examples.

TypeIndicatorDescription
C2 domaincreepexplosiondarknight[.]comC2 infrastructure used by the Python implant
C2 addresshxxps://creepexplosiondarknight[.]com/dConnection endpoint embedded in the DLL
Mining infrastructurepool.supportxmr[.]com:443 pool-fr.supportxmr[.]com:443 104.243.43[.]115:443Mining pool connection addresses configured in the miner
Mining wallet address83YFdNe2X8KhKnAERfr2hmN8L3tCKatsheuViWhF6qp2ZA4R8rRkBCgMknEycYqasNbX7C5BSrTp97zHUsUHJoZrR6f5SeXObserved attacker Monero receiving wallet
Mining connection passwordzeroMiner configuration parameter
Miner pathC:\Windows\SysWOW64\kvm-agent\kvm-agent.exeLocation of the XMRig executable
Scheduled task namekvmMining persistence task running every minute with SYSTEM privileges
Miner SHA-2568245c7e7d944923f1608592f6c3473dcc6e3a3e43df3dd1c6257e7880948787bCorresponds to the kvm-agent.exe file
Config file SHA-256a87002c32723f1849b3ad17b1fe6da732c9810b54b08501be21f5b1fcd882a59Corresponds to the miner's config.json configuration file
Scheduled task XML SHA-256f76dae028e0c43248c128b3bf609e8d660ce0bf44b53ab9e097887e6f5206eb5Corresponds to the miner's persistence task configuration
Python loader SHA-2568aac187bae71f75fa2dde03dcb4a9279c982182ee8254ae96e7a6626fe4c7617Corresponds to the main.py loader file
Decoded payload SHA-25691b3cc9d6421b651ec85a16062af3ba26700dad2eea4a8a7e42fdd2e422f8803Corresponds to the serialized Python code object
Embedded binary block SHA-2566953618238eb40f45b584e52aca22cebbe8ba03e9a80c15c6b593f51f7e49527Corresponds to the bootstrap, DLL, and loader components
DLL file SHA-256bb2472cf5dc7e5c94216d355bf84fba2c8d088d03d61a1ac0d78639049cf5e1fCorresponds to the embedded x64 DLL file
Reflective loader SHA-256e79c91e8157fef862be8cbe80bdf57b87a541416717265f81f669d751fca4a3dCorresponds to the loader tail component
PNG loader SHA-2566c7a4061bcf08df5fe4a49d37442dc650d751be1a91a8bc802edff213e4d5e61Corresponds to the AhsayCBS.jsp file under the webapps\rps path
PNG loader hardcoded valuesAES key: 3c6e0b8a9c15224a Application property: QuChFixed configuration parameters built into the loader
Signed webshell SHA-2566c695baad1d81ed49194d07a79381292c0466208ff1a9862c0c55f971d6a409fCorresponds to the nsmind.jsp file under the webapps\rps path
API tokenNS_f1ChEBy4SCYGyIDkYcsWOivwtWyXt5ilAuthentication credential for the signed webshell
HMAC keyNS_aAXMPsB8zsMdkVbjTp6zicnj9w8HkaewKey used for request signing
Keyed webshell SHA-256e6e576a634166a16bdbfc09b14e7cf8eab90015d2dfa67dd73f3968ee869229bCorresponds to the a2b59a4bb296604b.jsp file
Keyed shell authentication values323ced5cf1f4P , 12cd58cda26eP , 232e4490b603P , 6285464221f1P , be115f87eeeeP , fcd82493f072P , 907936468353P , 5a5f101c0b95P , 61fb05ae8043P , b97484f05302P , f41488204365P , 490909ce85c8P , 7f5b08e99153P , d6809ec4f4c9P , 908147ad2a6cP , ccd4e0ca2eb3P , 9bf5d40f7ca6P , d00a5c6cbce5P , be4f92982444PValid authentication values passed in via parameter p
Status shell authentication valuesnobody , mysecret123Fixed authentication field values
Status shell SHA-256 (nobody key)7a13e59d816d68a071a8648e62a7c3c7f929a61c618a2133ab6f511da24f979dCorresponds to the shell using nobody as the authentication value
Unauthorized access shell SHA-256875d0986ddaa51bfb5e03b06df1213cc3bb7966588d6153bdda57f2e3671e986Corresponds to the unauthorized shell with the st_ prefix
Early version shell SHA-256818bb464271a539c96bcbbfea1db7d5a722512041ed8ed10d3f6c7f366190044Shell supporting command execution, file deletion, and self-deletion
Host-bound status shell authentication valuesacbe51127a7e4a3b8f7cde6e857b5e4d d650dd0fc643fadabe5f41b94c7826d5 ee808b1dac987d19b1b864f18538116f 82e58ea5839581846e19be5d0c414436 c048c97c8160fb2df89e217d475c50b4 db64a245782d2d619d10eae73ef0f196 1b755d215b43b8e7da25a80386493568 7d33dc36088a8c20ee109f33d01d63c7 d5f0289bf84876023eb6ccdc92ddb05a 3b44593c393edff904c99fbdea0ea90c f4f9b5b4836090e26a6ec717b26db7c8 38d0eff2318a20a88175704af57d1bc4 2df09294da360fffd01142f29b17c6cd 07043828c4e2c55eaf2be9e6cb7205cc f08fc3eea3db76e7ba45cda42de5cafa 4126a061ddda3f433da5def0a7c79955 7de8cd835a7f6400bbb01d8b78bfc811 7dd5c4a904893cad2b757205dc224014 208143f41c1d6148842b7ed5d817f122 310161c45b193e923c8c99e0c21a2a0cAuthentication values for status_*.jsp-type shells
gost tool SHA-2566f6b66cbdc4a5aa5685d0017abd3f65843a28bcc2bb4e5b78d6d12a844a51aa8Corresponds to the tunneling tool gost
chisel tool SHA-256ca5f8e5247f1a044b8be45ef03187726b9af3ac30fd93fb5bb54144e34ed3738Corresponds to the tunneling tool chisel
Tunneling tool drop naming rules.st<id> , wust<id>a.exe , wust<id>b.exeFolder naming and tool renaming rules used during the drop phase

Note: IP addresses and domains in this article have been defanged (e.g., using [.] in place of the original dots) to prevent accidental resolution or hyperlink triggering. Please only restore the addresses for use in controlled threat intelligence platforms such as MISP, VirusTotal, or an internal SIEM.

Hackers Exploit AhsayCBS Vulnerabilities to Hide Malware in PNG Images and Deploy Stealthy Backdoors

The translation is machine-generated and individual terms may be off. Nothing is rewritten or cut; the original is authoritative.

Published by FreeBuf
This site only summarises and aggregates; copyright stays with the original author. Headlines and summaries follow the source — where they differ, the original wins.
Read the original ↗