<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5HLVVHN" height="0" width="0" style="display:none;visibility:hidden">

We Analyzed the 20 Most Common Fake WordPress Plugins. Here's What They Actually Do.

Previously we published a technical teardown of a single malware sample: the "WP Content Optimizer" fake plugin. That analysis revealed a sophisticated backdoor with capabilities ranging from hidden admin creation to blockchain-based payload delivery to systematic security plugin deletion.

That sample raised a question: how representative is it? To find out, we collected the 20 most prevalent fake WordPress plugins by detection count from Imunify's scanning data across 65M+ protected domains and analyzed them.

As expected, all 20 are malicious, and none have any legitimate functionality. They disguise themselves as performance tools, WooCommerce extensions, security helpers, and caching engines, but every one performs unauthorized actions against the site and its users.

We classified the samples into distinct malware families based on code structure, shared credentials, and behavioral patterns, each with different objectives and techniques. Here's what we found.

20 fake WordPress plugins classified into 10 malware families

The Fake Plugin Families

 

1. Hidden Admin Toolkit — 6 samples

Plugin names: WP Performance Tools, WP Flavor, Flavor Sync, WP Content Optimizer (×2), Site Toolkit Services

The most common and most dangerous family. These plugins create a secret administrator account on infected sites, hide it from every user listing and query surface in WordPress, then systematically delete security plugins from the filesystem. Five of the six share a single master key (7f3ac891d4e60b52a9f7186db345ce90) that lets the attacker calculate login credentials for any infected site by knowing its domain name.

They identify security tools by functional fingerprint (checking for characteristic code strings rather than plugin names) and remove everything: plugin files, WAF configurations, scheduled security tasks, and .htaccess rules. The list of targeted tools includes Wordfence, iThemes Security, Cerber, All-In-One Security, BulletProof Security, Defender, NinjaFirewall, Shield Security, and several activity logging plugins.

The full technical breakdown of an advanced malware from this family is in this WordPress security deep dive article.

 

2. SEO Redirect + User Data Exfiltration — 2 samples

Plugin names: Woocommerce custom inputs, Woocommerce custom TAG

Disguised as WooCommerce extensions. On activation, they send every WordPress user's login name, email address, and display name to an external server, then repeat the exfiltration every 14 days via a scheduled task. Desktop visitors arriving from search engines in the US, Canada, or Japan are redirected to attacker-controlled content. Both samples share the same codebase, credentials, and C2 infrastructure (the pinkfels.shop and a.pinkbear.my.id domains).

 

3. Traffic Distribution System — 2 samples

Plugin names: WP Session Handler, Performance Enhancer

Traffic distribution systems route visitors to destinations controlled by the attacker. The more sophisticated sample (WP Session Handler) includes anti-scanner detection: it recognizes security tool user agents — including WPScan, Nessus, Burp Suite, and Nikto — and pauses all operations for 30 minutes when it detects them. It also blocks all external redirects except a narrow whitelist (payment gateways, OAuth providers), preventing competing malware from hijacking its traffic.

The simpler variant injects JavaScript that contacts three TDS domains in a fallback chain (newtdsone.shop, cptoptious.com, captioto.com), targeting only visitors who aren't logged in to WordPress.

 

4. SEO Spam / Link Injection — 1 sample

Plugin name: Advanced LinkFlow v5

Injects hidden links positioned off-screen (left:-7000px) into post content, loop elements, and the page footer. It serves different content to search engine crawlers than to human visitors, verifying Google's crawler by reverse DNS lookup against Google's IP ranges. It polls a C2 server (ssocialvibe.world:8443) for "tasks" that append HTML blocks to existing WordPress posts, turning the published content into a host for SEO spam. It sends the complete page inventory, every URL, slug, and title to the attacker.

 

5. Remote Code Execution Backdoors — 3 samples

Plugin names: WP Asset Optimizer, Elementor Safe Dash, WordPress Core

Three different approaches to the same goal: executing arbitrary code on the server. WP Asset Optimizer passes URL parameters directly to system() when given the right key. Elementor Safe Dash allows arbitrary file upload to the web root when given a token whose SHA256 hash matches a hardcoded value. "WordPress Core" reads an encrypted file from disk, decrypts it with AES-256-CTR using a hardcoded key, and passes the result to eval(). The actual payload is invisible until runtime.

 

6. Trojanized Legitimate Plugin — 1 sample

Plugin name: UpdateCore (bundled with WP Reset)

Unlike the other families, this one takes a real, functional plugin (WP Reset) and prepends a backdoor. It registers an unauthenticated REST API endpoint (/uc/v1/cmd) that accepts commands with no permission check and __return_true as the permission callback. It also protects its own content: posts marked with a _uc_protected meta key can't be deleted or edited by the site owner.

 

7. Admin User Manipulation — 1 sample

Plugin name: WP Security Helper

Modifies WordPress database queries so the admin Users screen shows only the currently logged-in administrator. All other admin accounts become invisible. Uses hex-encoded string literals for evasion. Has a bypass: accounts become visible when a specific URL parameter (?sp) is present.

 

8. Content Hiding — 1 sample

Plugin name: WordPress Posts Cache Engine

Hides specific posts and comments from the WordPress admin panel based on naming patterns (post_name containing l0- or post_content containing a specific HTML comment). This is a support tool for other malware: it conceals SEO spam and doorway pages created by a separate infection so the site owner doesn't notice them during routine content management.

 

9. Heavily Obfuscated Backdoor — 1 sample

Plugin name: "Symfony Framework HttpKernel"

1.1 MB of heavily obfuscated PHP disguised as a Symfony framework component. Randomized variable names, fake configuration constants, and a structure consistent with a comprehensive webshell.

 

10. Residual Stubs — 2 samples

Plugin names: WP Themes Tools, One User Tools

Both hide themselves from the WordPress plugin list. Self-hiding behavior has no legitimate purpose, indicating these are remnants of a previous infection that weren't fully cleaned up. They demonstrate how incomplete remediation leaves artifacts that still modify the site's behavior.

 

What Stood Out

Four patterns across the full sample set are worth highlighting.

 

Nearly universal hiding

19 of the 20 samples remove themselves from the WordPress plugin list. This is the single most common behavior across all families. Most use the all_plugins filter to suppress their entry. Some advanced variants use CSS injection instead, a harder-to-detect method. If a plugin doesn't appear in the admin panel but exists in the filesystem, that's a strong indicator of compromise.

 

Security plugin deletion

All six Hidden Admin Toolkit samples actively scan for and delete security tools from the server's filesystem. They use raw PHP unlink() and rmdir() calls rather than WordPress functions, bypassing the application layer entirely. No WordPress hook can intercept these calls, which means security plugins running inside WordPress have no opportunity to block or log the deletion.

The list of targeted tools spans 14+ plugins, including both file-based security (Wordfence, NinjaFirewall) and activity logging (WP Security Audit Log, Simple History, Activity Log). WAF bootstrap configurations, cron jobs, and .htaccess rules are cleaned up as well.

 

Malware vs. malware

The Hidden Admin Toolkit family doesn't just attack the site. It identifies and demotes competing backdoor accounts by checking for known meta keys, suspicious usernames (stored as MD5 hashes to avoid detection), and disposable email domains. It scans for and removes competing malicious plugins. It cleans webshells from the uploads directory, with a whitelist to protect its own files. It even removes older versions of itself.

 

Persistence that survives deletion

The most advanced samples use a three-layer persistence strategy: the plugin re-activates itself on every page load if deactivated, a dropper file in the mu-plugins directory restores it from backup if deleted, and a backup copy stored in wp-content/upgrade/ provides the restoration source. The mu-plugins directory is loaded by WordPress automatically on every request without requiring activation. All three layers need to be addressed simultaneously, or the malware returns on the next request.

 

Behavioral Patterns Across Families

Technique Families Sample count
Plugin self-hiding 1, 2, 3, 4, 5, 7, 8, 9, 10 19
Hidden admin creation 1 6
User visibility manipulation 1, 7 7
Security plugin removal 1 6
Competing malware removal 1 6
mu-plugins persistence 1 5
Data exfiltration to C2 2, 4 3
SEO redirect / visitor hijacking 2, 3, 4 5
Remote code execution 5, 6 4
External JavaScript injection 3, 5 2
Anti-deactivation 2, 6 3
Self-updating from C2 2 2
Anti-scanner evasion 3, 7 2
Post content manipulation 4, 6 2
Code obfuscation (hex/chr/base64) 2, 4, 5, 7, 9 6

Family 1's advanced variants use a particularly notable C2 technique: they fetch encrypted JavaScript payloads from a Cloudflare Worker URL stored in a Binance Smart Chain smart contract. This is a variant of the EtherHiding technique documented in the UNC5142 campaign. The known EtherHiding campaigns deliver fake browser update pages. This variant delivers encrypted JavaScript injected directly into the page footer. See here for the full technical breakdown.

 

How to Check If You're Affected

You don't need deep technical knowledge to perform an initial check.

In your filesystem:

Look for plugin directories you don't recognize. The plugin names from this study are listed in each family section above. Check specifically for:

  • wp-content/mu-plugins/ — look for PHP files matching wp-??????-loader.php or 00-site-cache.php. WordPress doesn't create files with this naming pattern.
  • wp-content/upgrade/wp-maintenance.tmp — this backup file has no legitimate purpose.
  • Missing security plugin directories that should be present. If you had Wordfence or another security plugin installed and the directory is gone, investigate.

In your database:

Check wp_usermeta for entries with these keys, which are markers used by the backdoor families in this study:

_wp_ui_render_cfg
_wp_cache_hash
_wps_sig
_sys_token
_bk_hash
_adm_key
_wp_sys_hash
_stk_sig

Check wp_users for administrator accounts you don't recognize, especially those matching the pattern usr_ followed by eight hex characters.

In your admin panel:

  • Compare the number of administrators shown in Users → All Users with a direct database query (SELECT COUNT(*) FROM wp_users INNER JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id WHERE wp_usermeta.meta_key = 'wp_capabilities' AND wp_usermeta.meta_value LIKE '%administrator%'). If the numbers don't match, a plugin may be hiding users.
  • Check whether your security plugins are still installed. If they were previously active and have disappeared without explanation, investigate immediately.

On your frontend:

View page source in a non-admin browser session (or incognito/private window) and search for <script id="wp- followed by six hex characters and -perf". This is the JavaScript injection signature used by Family 1.

 

What This Means for WordPress Security

Fake plugins exploit a trust gap in the WordPress ecosystem. Site owners assume that anything in their plugins directory was installed intentionally. WordPress itself treats all activated plugins as trusted code. There's no sandboxing, no permission restrictions, and no behavioral monitoring at the application level.

This class of threat makes that assumption dangerous. The most common fake plugin family's first action is to remove the security tools that might detect it, using filesystem calls that bypass WordPress entirely. When malware's first move is to delete defenses, where those defenses run matters as much as what they do.

 

How Imunify360 Handles These Threats

All 20 samples in this study are detected by Imunify360's multilayer defenses, many of which run below the WordPress application level. Detection uses behavioral signatures in addition to file hashes, so new variants using the same techniques are caught even before their specific hash is catalogued.

Most notably, Proactive Defense, Imunify360's real-time PHP security module, monitors PHP script execution at the engine level, outside of WordPress. When it identifies a malicious script, it kills the execution entirely, so none of the malware's operations run. It isn't a PHP file in a plugin directory that can be deleted.

When 19 of 20 malware samples hide from plugin detection and the most common family deletes security plugins, defenses that operate only within WordPress face a structural limitation. Multilayer protection with defenses at the server, PHP runtime, and application levels is the architecture that can handle this class of threat.

Studying these malware families is also informing ongoing improvements to behavioral detection. The techniques documented here: credential derivation patterns, mu-plugins persistence, blockchain C2 become detection inputs for future signatures.

 

Indicators of Compromise

Sample Hashes

Family Plugin Name SHA256
1 — Hidden Admin Toolkit WP Performance Tools 3a54638e26d4c38845c14cca4c3501abdbe8532a3984437c74a68e16b2a5d27f
1 — Hidden Admin Toolkit WP Flavor 82849aba7cc61d3b55c4a5da443257fa9428d861de9ddb1e0de450342ea0b0d1
1 — Hidden Admin Toolkit Flavor Sync 3f3745f8aae976d4fe1e9061701a2e4281ecccee702e6f94af6e13d74aad6a2b
1 — Hidden Admin Toolkit WP Content Optimizer 1eea58480fa71dbb68901caf26aabd0e97e54f142229fa0cd015e3fad48f569e
1 — Hidden Admin Toolkit WP Content Optimizer f55cf210763db09b1b26574489c1b168ece10d3a630c09dba4ffe50b883ae673
1 — Hidden Admin Toolkit Site Toolkit Services 7fd8f0f9fe95507830220e8172a4471907adcac8b8cf9bb27f07fa3b9629b039
2 — SEO Redirect Woocommerce custom inputs 8965091deda9e74c959468b6e72d9f7b831a1fda6c633516ba4875ff8476c79a
2 — SEO Redirect Woocommerce custom TAG 3a72983b2e794cb07417a16d2a7bd77210d7cff3840c183578c8318e91e933c5
3 — TDS WP Session Handler 131aaea8a5569516afd79d3540cd1721a44d46b164ecaeddd49748b280159745
3 — TDS Performance Enhancer f99d0c139742f3b8aa3fb0201bb462597b71ae8212e6d6875e00a8ea67ed1284
4 — SEO Spam Advanced LinkFlow v5 496df7ce412fc1cce566d5ad88c483c4eb5b37dddd705481da96adf193b33ab3
5 — RCE Backdoor WP Asset Optimizer d8a921a3c855d23f8f08a7a517571e03cd982e0faee8875820432573db56b885
5 — RCE Backdoor Elementor Safe Dash 78fdac2f9ca924ca30836252d67da2db52d0f7f2d733c2f3dab9ca767b4558bd
5 — RCE Backdoor WordPress Core 7fe7db4708680058f3d23fa7ea7fb56e3fa4859a3ee68692335f97ca60fe3852
6 — Trojanized Plugin UpdateCore 09d2e10331be0ff11c144c1e151ba34dfae6b3402235bb35239349133eca40b9
7 — Admin Manipulation WP Security Helper 0a26e477951896659dbc5b0b18929995303a9ab4e071288b40691e0b366b96a1
8 — Content Hiding WordPress Posts Cache Engine 17571ec94a50781fe3c6a755d9d51617fbea66c574927aaae218b2ebf4c53491
9 — Obfuscated Backdoor "Symfony Framework HttpKernel" 8d53aac388df998a93b94ce94bc28a7f7760622bbf072d83b9592380648518ce
10 — Residual Stub WP Themes Tools 5e32c4af251835248b87bc676ce34a0479adeac6507775b3985b7a525a5c4f9a
10 — Residual Stub One User Tools b0d588366ae6f75b99cac2dff9139569a90e599cc18f98062a4ee52c2d3d6827

 

C2 Infrastructure

Domain Used By Family
pinkfels.shop Woocommerce custom inputs 2
a.pinkbear.my.id Woocommerce custom TAG 2
ssocialvibe.world:8443 Advanced LinkFlow v5 4
newtdsone.shop Performance Enhancer 3
cptoptious.com Performance Enhancer 3
captioto.com Performance Enhancer 3
validteachers.com.au WP Asset Optimizer 5

Family 1 advanced variants use a BSC smart contract (0x8170119B70b4E8c65Ef821425c00c35CDA15d9b0, method 0x3bc5de30) to retrieve an encrypted Cloudflare Worker URL for JavaScript payload delivery.

 

Common Filesystem and Database Markers

Indicator Type Family
Master key: 7f3ac891d4e60b52a9f7186db345ce90 Cryptographic 1
User meta: _wp_ui_render_cfg Database 1
User meta: _wp_cache_hash Database 1 (older variant)
mu-plugins dropper: wp-[a-f0-9]{6}-loader.php Filesystem 1
Backup: wp-content/upgrade/wp-maintenance.tmp Filesystem 1
Frontend inject: <script id="wp-[a-f0-9]{6}-perf"> Frontend 1
UpdateCore token: a1b2c3d4e5f67890abcdef1234567890fedcba0987654321 Authentication 6
RCE key parameter: _wp_ssh_key=A1B2-C3D4 Authentication 5
Elementor hash: 022e386ce60a8b92c530971f3b99637e58873e5c1614e6f0d0666bc8e6ffaffe Authentication 5
AES key: 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f Cryptographic 5

We Analyzed the 20 Most Common Fake WordPress Plugins. Here's What They Actually Do.

Previously we published a technical teardown of a single malware sample: the "WP Content Optimizer" fake plugin. That analysis revealed a sophisticated backdoor with capabilities ranging from hidden admin creation to blockchain-based payload delivery to systematic security plugin deletion.

That sample raised a question: how representative is it? To find out, we collected the 20 most prevalent fake WordPress plugins by detection count from Imunify's scanning data across 65M+ protected domains and analyzed them.

As expected, all 20 are malicious, and none have any legitimate functionality. They disguise themselves as performance tools, WooCommerce extensions, security helpers, and caching engines, but every one performs unauthorized actions against the site and its users.

We classified the samples into distinct malware families based on code structure, shared credentials, and behavioral patterns, each with different objectives and techniques. Here's what we found.

20 fake WordPress plugins classified into 10 malware families

The Fake Plugin Families

 

1. Hidden Admin Toolkit — 6 samples

Plugin names: WP Performance Tools, WP Flavor, Flavor Sync, WP Content Optimizer (×2), Site Toolkit Services

The most common and most dangerous family. These plugins create a secret administrator account on infected sites, hide it from every user listing and query surface in WordPress, then systematically delete security plugins from the filesystem. Five of the six share a single master key (7f3ac891d4e60b52a9f7186db345ce90) that lets the attacker calculate login credentials for any infected site by knowing its domain name.

They identify security tools by functional fingerprint (checking for characteristic code strings rather than plugin names) and remove everything: plugin files, WAF configurations, scheduled security tasks, and .htaccess rules. The list of targeted tools includes Wordfence, iThemes Security, Cerber, All-In-One Security, BulletProof Security, Defender, NinjaFirewall, Shield Security, and several activity logging plugins.

The full technical breakdown of an advanced malware from this family is in this WordPress security deep dive article.

 

2. SEO Redirect + User Data Exfiltration — 2 samples

Plugin names: Woocommerce custom inputs, Woocommerce custom TAG

Disguised as WooCommerce extensions. On activation, they send every WordPress user's login name, email address, and display name to an external server, then repeat the exfiltration every 14 days via a scheduled task. Desktop visitors arriving from search engines in the US, Canada, or Japan are redirected to attacker-controlled content. Both samples share the same codebase, credentials, and C2 infrastructure (the pinkfels.shop and a.pinkbear.my.id domains).

 

3. Traffic Distribution System — 2 samples

Plugin names: WP Session Handler, Performance Enhancer

Traffic distribution systems route visitors to destinations controlled by the attacker. The more sophisticated sample (WP Session Handler) includes anti-scanner detection: it recognizes security tool user agents — including WPScan, Nessus, Burp Suite, and Nikto — and pauses all operations for 30 minutes when it detects them. It also blocks all external redirects except a narrow whitelist (payment gateways, OAuth providers), preventing competing malware from hijacking its traffic.

The simpler variant injects JavaScript that contacts three TDS domains in a fallback chain (newtdsone.shop, cptoptious.com, captioto.com), targeting only visitors who aren't logged in to WordPress.

 

4. SEO Spam / Link Injection — 1 sample

Plugin name: Advanced LinkFlow v5

Injects hidden links positioned off-screen (left:-7000px) into post content, loop elements, and the page footer. It serves different content to search engine crawlers than to human visitors, verifying Google's crawler by reverse DNS lookup against Google's IP ranges. It polls a C2 server (ssocialvibe.world:8443) for "tasks" that append HTML blocks to existing WordPress posts, turning the published content into a host for SEO spam. It sends the complete page inventory, every URL, slug, and title to the attacker.

 

5. Remote Code Execution Backdoors — 3 samples

Plugin names: WP Asset Optimizer, Elementor Safe Dash, WordPress Core

Three different approaches to the same goal: executing arbitrary code on the server. WP Asset Optimizer passes URL parameters directly to system() when given the right key. Elementor Safe Dash allows arbitrary file upload to the web root when given a token whose SHA256 hash matches a hardcoded value. "WordPress Core" reads an encrypted file from disk, decrypts it with AES-256-CTR using a hardcoded key, and passes the result to eval(). The actual payload is invisible until runtime.

 

6. Trojanized Legitimate Plugin — 1 sample

Plugin name: UpdateCore (bundled with WP Reset)

Unlike the other families, this one takes a real, functional plugin (WP Reset) and prepends a backdoor. It registers an unauthenticated REST API endpoint (/uc/v1/cmd) that accepts commands with no permission check and __return_true as the permission callback. It also protects its own content: posts marked with a _uc_protected meta key can't be deleted or edited by the site owner.

 

7. Admin User Manipulation — 1 sample

Plugin name: WP Security Helper

Modifies WordPress database queries so the admin Users screen shows only the currently logged-in administrator. All other admin accounts become invisible. Uses hex-encoded string literals for evasion. Has a bypass: accounts become visible when a specific URL parameter (?sp) is present.

 

8. Content Hiding — 1 sample

Plugin name: WordPress Posts Cache Engine

Hides specific posts and comments from the WordPress admin panel based on naming patterns (post_name containing l0- or post_content containing a specific HTML comment). This is a support tool for other malware: it conceals SEO spam and doorway pages created by a separate infection so the site owner doesn't notice them during routine content management.

 

9. Heavily Obfuscated Backdoor — 1 sample

Plugin name: "Symfony Framework HttpKernel"

1.1 MB of heavily obfuscated PHP disguised as a Symfony framework component. Randomized variable names, fake configuration constants, and a structure consistent with a comprehensive webshell.

 

10. Residual Stubs — 2 samples

Plugin names: WP Themes Tools, One User Tools

Both hide themselves from the WordPress plugin list. Self-hiding behavior has no legitimate purpose, indicating these are remnants of a previous infection that weren't fully cleaned up. They demonstrate how incomplete remediation leaves artifacts that still modify the site's behavior.

 

What Stood Out

Four patterns across the full sample set are worth highlighting.

 

Nearly universal hiding

19 of the 20 samples remove themselves from the WordPress plugin list. This is the single most common behavior across all families. Most use the all_plugins filter to suppress their entry. Some advanced variants use CSS injection instead, a harder-to-detect method. If a plugin doesn't appear in the admin panel but exists in the filesystem, that's a strong indicator of compromise.

 

Security plugin deletion

All six Hidden Admin Toolkit samples actively scan for and delete security tools from the server's filesystem. They use raw PHP unlink() and rmdir() calls rather than WordPress functions, bypassing the application layer entirely. No WordPress hook can intercept these calls, which means security plugins running inside WordPress have no opportunity to block or log the deletion.

The list of targeted tools spans 14+ plugins, including both file-based security (Wordfence, NinjaFirewall) and activity logging (WP Security Audit Log, Simple History, Activity Log). WAF bootstrap configurations, cron jobs, and .htaccess rules are cleaned up as well.

 

Malware vs. malware

The Hidden Admin Toolkit family doesn't just attack the site. It identifies and demotes competing backdoor accounts by checking for known meta keys, suspicious usernames (stored as MD5 hashes to avoid detection), and disposable email domains. It scans for and removes competing malicious plugins. It cleans webshells from the uploads directory, with a whitelist to protect its own files. It even removes older versions of itself.

 

Persistence that survives deletion

The most advanced samples use a three-layer persistence strategy: the plugin re-activates itself on every page load if deactivated, a dropper file in the mu-plugins directory restores it from backup if deleted, and a backup copy stored in wp-content/upgrade/ provides the restoration source. The mu-plugins directory is loaded by WordPress automatically on every request without requiring activation. All three layers need to be addressed simultaneously, or the malware returns on the next request.

 

Behavioral Patterns Across Families

Technique Families Sample count
Plugin self-hiding 1, 2, 3, 4, 5, 7, 8, 9, 10 19
Hidden admin creation 1 6
User visibility manipulation 1, 7 7
Security plugin removal 1 6
Competing malware removal 1 6
mu-plugins persistence 1 5
Data exfiltration to C2 2, 4 3
SEO redirect / visitor hijacking 2, 3, 4 5
Remote code execution 5, 6 4
External JavaScript injection 3, 5 2
Anti-deactivation 2, 6 3
Self-updating from C2 2 2
Anti-scanner evasion 3, 7 2
Post content manipulation 4, 6 2
Code obfuscation (hex/chr/base64) 2, 4, 5, 7, 9 6

Family 1's advanced variants use a particularly notable C2 technique: they fetch encrypted JavaScript payloads from a Cloudflare Worker URL stored in a Binance Smart Chain smart contract. This is a variant of the EtherHiding technique documented in the UNC5142 campaign. The known EtherHiding campaigns deliver fake browser update pages. This variant delivers encrypted JavaScript injected directly into the page footer. See here for the full technical breakdown.

 

How to Check If You're Affected

You don't need deep technical knowledge to perform an initial check.

In your filesystem:

Look for plugin directories you don't recognize. The plugin names from this study are listed in each family section above. Check specifically for:

  • wp-content/mu-plugins/ — look for PHP files matching wp-??????-loader.php or 00-site-cache.php. WordPress doesn't create files with this naming pattern.
  • wp-content/upgrade/wp-maintenance.tmp — this backup file has no legitimate purpose.
  • Missing security plugin directories that should be present. If you had Wordfence or another security plugin installed and the directory is gone, investigate.

In your database:

Check wp_usermeta for entries with these keys, which are markers used by the backdoor families in this study:

_wp_ui_render_cfg
_wp_cache_hash
_wps_sig
_sys_token
_bk_hash
_adm_key
_wp_sys_hash
_stk_sig

Check wp_users for administrator accounts you don't recognize, especially those matching the pattern usr_ followed by eight hex characters.

In your admin panel:

  • Compare the number of administrators shown in Users → All Users with a direct database query (SELECT COUNT(*) FROM wp_users INNER JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id WHERE wp_usermeta.meta_key = 'wp_capabilities' AND wp_usermeta.meta_value LIKE '%administrator%'). If the numbers don't match, a plugin may be hiding users.
  • Check whether your security plugins are still installed. If they were previously active and have disappeared without explanation, investigate immediately.

On your frontend:

View page source in a non-admin browser session (or incognito/private window) and search for <script id="wp- followed by six hex characters and -perf". This is the JavaScript injection signature used by Family 1.

 

What This Means for WordPress Security

Fake plugins exploit a trust gap in the WordPress ecosystem. Site owners assume that anything in their plugins directory was installed intentionally. WordPress itself treats all activated plugins as trusted code. There's no sandboxing, no permission restrictions, and no behavioral monitoring at the application level.

This class of threat makes that assumption dangerous. The most common fake plugin family's first action is to remove the security tools that might detect it, using filesystem calls that bypass WordPress entirely. When malware's first move is to delete defenses, where those defenses run matters as much as what they do.

 

How Imunify360 Handles These Threats

All 20 samples in this study are detected by Imunify360's multilayer defenses, many of which run below the WordPress application level. Detection uses behavioral signatures in addition to file hashes, so new variants using the same techniques are caught even before their specific hash is catalogued.

Most notably, Proactive Defense, Imunify360's real-time PHP security module, monitors PHP script execution at the engine level, outside of WordPress. When it identifies a malicious script, it kills the execution entirely, so none of the malware's operations run. It isn't a PHP file in a plugin directory that can be deleted.

When 19 of 20 malware samples hide from plugin detection and the most common family deletes security plugins, defenses that operate only within WordPress face a structural limitation. Multilayer protection with defenses at the server, PHP runtime, and application levels is the architecture that can handle this class of threat.

Studying these malware families is also informing ongoing improvements to behavioral detection. The techniques documented here: credential derivation patterns, mu-plugins persistence, blockchain C2 become detection inputs for future signatures.

 

Indicators of Compromise

Sample Hashes

Family Plugin Name SHA256
1 — Hidden Admin Toolkit WP Performance Tools 3a54638e26d4c38845c14cca4c3501abdbe8532a3984437c74a68e16b2a5d27f
1 — Hidden Admin Toolkit WP Flavor 82849aba7cc61d3b55c4a5da443257fa9428d861de9ddb1e0de450342ea0b0d1
1 — Hidden Admin Toolkit Flavor Sync 3f3745f8aae976d4fe1e9061701a2e4281ecccee702e6f94af6e13d74aad6a2b
1 — Hidden Admin Toolkit WP Content Optimizer 1eea58480fa71dbb68901caf26aabd0e97e54f142229fa0cd015e3fad48f569e
1 — Hidden Admin Toolkit WP Content Optimizer f55cf210763db09b1b26574489c1b168ece10d3a630c09dba4ffe50b883ae673
1 — Hidden Admin Toolkit Site Toolkit Services 7fd8f0f9fe95507830220e8172a4471907adcac8b8cf9bb27f07fa3b9629b039
2 — SEO Redirect Woocommerce custom inputs 8965091deda9e74c959468b6e72d9f7b831a1fda6c633516ba4875ff8476c79a
2 — SEO Redirect Woocommerce custom TAG 3a72983b2e794cb07417a16d2a7bd77210d7cff3840c183578c8318e91e933c5
3 — TDS WP Session Handler 131aaea8a5569516afd79d3540cd1721a44d46b164ecaeddd49748b280159745
3 — TDS Performance Enhancer f99d0c139742f3b8aa3fb0201bb462597b71ae8212e6d6875e00a8ea67ed1284
4 — SEO Spam Advanced LinkFlow v5 496df7ce412fc1cce566d5ad88c483c4eb5b37dddd705481da96adf193b33ab3
5 — RCE Backdoor WP Asset Optimizer d8a921a3c855d23f8f08a7a517571e03cd982e0faee8875820432573db56b885
5 — RCE Backdoor Elementor Safe Dash 78fdac2f9ca924ca30836252d67da2db52d0f7f2d733c2f3dab9ca767b4558bd
5 — RCE Backdoor WordPress Core 7fe7db4708680058f3d23fa7ea7fb56e3fa4859a3ee68692335f97ca60fe3852
6 — Trojanized Plugin UpdateCore 09d2e10331be0ff11c144c1e151ba34dfae6b3402235bb35239349133eca40b9
7 — Admin Manipulation WP Security Helper 0a26e477951896659dbc5b0b18929995303a9ab4e071288b40691e0b366b96a1
8 — Content Hiding WordPress Posts Cache Engine 17571ec94a50781fe3c6a755d9d51617fbea66c574927aaae218b2ebf4c53491
9 — Obfuscated Backdoor "Symfony Framework HttpKernel" 8d53aac388df998a93b94ce94bc28a7f7760622bbf072d83b9592380648518ce
10 — Residual Stub WP Themes Tools 5e32c4af251835248b87bc676ce34a0479adeac6507775b3985b7a525a5c4f9a
10 — Residual Stub One User Tools b0d588366ae6f75b99cac2dff9139569a90e599cc18f98062a4ee52c2d3d6827

 

C2 Infrastructure

Domain Used By Family
pinkfels.shop Woocommerce custom inputs 2
a.pinkbear.my.id Woocommerce custom TAG 2
ssocialvibe.world:8443 Advanced LinkFlow v5 4
newtdsone.shop Performance Enhancer 3
cptoptious.com Performance Enhancer 3
captioto.com Performance Enhancer 3
validteachers.com.au WP Asset Optimizer 5

Family 1 advanced variants use a BSC smart contract (0x8170119B70b4E8c65Ef821425c00c35CDA15d9b0, method 0x3bc5de30) to retrieve an encrypted Cloudflare Worker URL for JavaScript payload delivery.

 

Common Filesystem and Database Markers

Indicator Type Family
Master key: 7f3ac891d4e60b52a9f7186db345ce90 Cryptographic 1
User meta: _wp_ui_render_cfg Database 1
User meta: _wp_cache_hash Database 1 (older variant)
mu-plugins dropper: wp-[a-f0-9]{6}-loader.php Filesystem 1
Backup: wp-content/upgrade/wp-maintenance.tmp Filesystem 1
Frontend inject: <script id="wp-[a-f0-9]{6}-perf"> Frontend 1
UpdateCore token: a1b2c3d4e5f67890abcdef1234567890fedcba0987654321 Authentication 6
RCE key parameter: _wp_ssh_key=A1B2-C3D4 Authentication 5
Elementor hash: 022e386ce60a8b92c530971f3b99637e58873e5c1614e6f0d0666bc8e6ffaffe Authentication 5
AES key: 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f Cryptographic 5
Subscribe to Imunify security Newsletter