WatchDog has evolved a multi-stage cryptojacking campaign that targets exposed Docker Engine API endpoints and Redis servers, repurposing TeamTNT payloads while attempting to foil attribution. The attack uses timestomping, process hiding, and worm-like propagation across Docker- and Redis-enabled hosts to install miners and persist in compromised environments. hashtags #WatchDog #TeamTNT #DockerEngineAPI #Redis #oracle.zzhreceive.top
Keypoints
- The incident describes a complex, multi-stage cryptojacking campaign aimed at honeypot infrastructure, attributed to WatchDog and leveraging TeamTNT payloads.
- Initial access occurred through misconfigured Docker Engine API endpoints, with a scanner detecting open 2375 ports on exposed systems.
- The attackers used a worm-like propagation workflow, culminating in Docker container spawns across remote endpoints.
- Stage 1 deploys cronb.sh to establish persistence and to detect prior compromise (e.g., renamed ps binary and process checks).
- Stage 2 (ar.sh) introduces timestomping, process hiding, Alibaba Cloud agent removal, and persistence via a systemd service.
- Stage 3 (b.sh) installs scanning and mining tools, including zgrab, masscan, and pnscan, and engages Redis as part of the operation, storing commands in .dat files.
- Stage 4 (c.sh/d.sh) configures Redis locally, performs network scanning, and propagates via exposed Docker endpoints to maintain the worm-like spread.
- IoCs include specific file hashes, domain/URLs, wallet IDs, and the domain oracle.zzhreceive.top used as a C2/resource URL.
MITRE Techniques
- [T1046] Network Service Scanning – The attackers used a scanning tool to enumerate large portions of the internet, looking for servers with port 2375 open. ‘the attackers used a scanning tool to enumerate large portions of the internet, looking for servers with port 2375 open.’
- [T1210] Exploitation of Remote Services – Initial access via misconfigured Docker Engine API endpoints and a Redis misconfiguration that enables remote code execution. ‘Initial access for this campaign was via misconfigured Docker Engine API endpoints’ and ‘a misconfigured Redis database that leaves it vulnerable to remote code execution.’
- [T1059.004] Unix Shell – The initial access command sequences run in shells (Alpine container) to fetch and execute payloads. ‘The malicious command first ensures cURL is installed on the Alpine container.’
- [T1053.003] Cron – Persistence and auto-start are achieved by scheduling cron jobs under root. ‘register a cron job under root, which will ensure that the first payload is kept running.’
- [T1070.006] Timestomp – The attack mods file times to evade detection and uses timestomping as an anti-forensics measure. ‘This method of timestamp manipulation is known as timestomping.’
- [T1564.001] Hide Artifacts – Process hiding and binary renaming to confuse analysts. ‘a very rudimentary (albeit effective) process hider’ and ‘rename the ps binary to ps.lanigiro.’
- [T1543.003] Create or Modify System Process – Linux Service – Persistence via a systemd service unit. ‘Persistence is achieved via a systemd service unit, requiring the user to be root in order to register it.’
- [T1036] Masquerading – Renaming common binaries to evade detection. ‘existence checks for renamed versions of the cURL data transfer utility.’
Indicators of Compromise
- [Filename] IoCs include specific payload scripts – cronb.sh, ai.sh, ar.sh, b.sh, c.sh, d.sh. Examples shown here: cronb.sh, ai.sh, and 4 more files (ai.sh, ar.sh, b.sh, c.sh, d.sh)
- [SHA256 Hash] File hashes observed for IoCs – 3724b0555d0c8d0d0eb3856d84fc29317a1e8c4a8f4725344cb7336d97be80cb, 2391e6c61fe2228b057199d0a3c8b9763cd2d24ba9e56c48e96aafdf615253ea, and 4 more hashes
- [Domain] Command-and-control domain used in the campaign – oracle.zzhreceive.top
- [URL] Payload download/loader URLs observed – http://oracle.zzhreceive.top/s3f815/s/avg.tar.gz, http://oracle.zzhreceive.top/s3f815/s/avg4.tar.gz, and other related paths
- [Wallet ID] Wallet identifiers associated with the campaign – 43Xbgtym2GZWBk87XiYbCpTKGPBTxYZZWi44SWrkqqvzPZV6Pfmjv3UHR6FDwvPgePJyv9N5PepeajfmKp1X71EW7jx4Tpz.zookp
- [IP Address] Notable host involved in the attack lifecycle – 218.76.246.69 (observed in honeypot logs)