MuRu Guard Security Scanner

Free, open-source Joomla malware scanning -- find webshells, rogue Super Users, and SPPB or JCE compromise traces in minutes, right inside your own admin panel. Upgrade any time for the Smart AI Assistant that explains and repairs findings from chat, real-time Protection Mode, and scheduled scans that alert your team on Slack, Discord, or Telegram.

Total downloadsFree & open-source · no account required to scan

Already have an account? Sign in

MuRu Guard Security Scanner interface

SPPB + JCE

RCE Coverage

Super User

Only, By Default

IP + GeoIP

Real-Time Blocking

Live

Protection Mode

AI Repair

From Chat, Audited

4 Channels

Scan Alerts

Need custom Joomla work too?

Joomla Customizations Support -- ongoing module/template tweaks, bug fixes, and small feature builds, submitted right from your dashboard. Starter plan from USD 30.00, lifetime.

Learn more →

Overview

MuRu Guard installs like a standard Joomla extension and runs inside the administrator area. It uses Joomla's own authentication and permission system, so there is no separate scanner URL, access key, or public file to remove later.

The scanner focuses on real-world compromise patterns linked to SP Page Builder's uploadCustomIcon vulnerability, suspicious JCE paths, core entry-point tampering, rogue Super Users, and database payloads commonly seen after Joomla attacks.

Finding the problem is only half the job, so the component also ships the parts that come after it: a live request-blocking plugin, scheduled scans that push results to your team's chat, and a Smart AI Assistant that can open the flagged file, explain what it is looking at, and write the fix -- without ever being able to touch Joomla core or the scanner's own code.

Critical Security Notice

Before scanning a compromised Joomla site, close the original entry point first.

  1. 1Update SP Page Builder to 6.6.2 or later.
  2. 2Update or remove JCE if it is installed.
  3. 3Take a full backup and run the first scan on staging when possible.

Core Features

Protection Mode

  • Companion plugin checks every site request
  • Manual IP allow/block list with CIDR range support
  • Country blocking via a cached, fail-open GeoIP lookup
  • Blocks known scanner/bot user agents and brute-force logins

Filesystem Scan

  • Scans media, images, templates, tmp, cache, and webroot paths
  • Cross-references Joomla's own extension registry to catch fake templates, modules, plugins, and components that spoof the filesystem alone
  • Flags suspicious PHP, phtml, phar, and shtml files

Core Integrity

  • Checks Joomla entry points for prepended payloads
  • Verifies supported core files with SHA-256 hashes
  • Scans its own extension files too, not just the rest of the site

Database Scan

  • Finds Helix Ultimate mega-menu XSS payloads
  • Checks SPPB asset rows for injected code
  • Reports template defacement strings

Smart AI Assistant

Pro
  • Chat with an assistant that can list, search, read, and edit your project files
  • Joomla core, configuration.php, and MuRu Guard's own files are off-limits
  • Destructive actions need explicit confirmation before they run
  • Every create, edit, rename, and delete is recorded in an audit log

Automations & Alerts

Pro
  • Scheduled scans triggered by a secret cron token URL
  • Email alerts on findings, with the last run time on the dashboard
  • Slack, Discord, and Telegram channels for the whole team
  • Fleet Dashboard reporting to watch many sites in one place

Smart False-Positive Handling

  • Mark any finding as safe with one click
  • Dismissals are tied to the exact content reviewed, not just a filename
  • Automatically reappears if that same file is ever compromised later

.htaccess Hardening Advisor

  • Checks for PHP execution blocking in upload folders
  • Flags missing directory-listing and sensitive-file protection
  • Read-only: suggests copy-paste rules, never edits the file itself

Pricing

The scanner, cleanup tools, Protection Mode, and .htaccess advisor are free forever, with no account, license key, or feature timer. Upgrade to Pro on your own schedule when you want the Smart AI Assistant, team alerts, and multi-site reporting.

Free

Everything you need to find and clean an infected site.

$0forever
Download on GitHub
  • Full filesystem & database scan
  • Core integrity & checksum checks
  • Guided cleanup & false-positive handling
  • Real-time Protection Mode plugin
  • .htaccess hardening advisor
  • Scheduled scans + email alerts
  • Smart AI Assistant
  • Slack / Discord / Telegram alerts
  • Fleet Dashboard (multi-site)

Single Site

Full Pro features for one Joomla install.

$15/ year, 1 site
Get Single Site
  • Everything in Free
  • Smart AI Assistant (read, search, fix, audited)
  • Scheduled scans + email alerts
  • Slack / Discord / Telegram alert channels
  • Covers 1 site
  • Fleet Dashboard (multi-site)
Most Popular

Business

For agencies managing a handful of client sites.

$70/ year, 5 sites
Get Business
  • Everything in Single Site
  • Fleet Dashboard reporting across sites
  • Covers up to 5 sites

Agency

For agencies and hosts managing an unlimited number of sites.

$120/ year, unlimited
Get Agency
  • Everything in Business
  • Unlimited site activations
  • Priority support

Detection Details

Content signatures

Detects eval/base64 payloads, cookie-gated backdoors, c99/r57/WSO-style shells, stream-wrapper loading, chr-array decoding, and script injection.

Extension registry cross-check

Cross-references Joomla's own #__extensions table to catch fake templates, modules, plugins, and components -- a harder-to-fake signal than filesystem structure alone, since an attacker can spoof a folder and its manifest but not an enabled registry row.

Filename patterns

Matches known malware-drop naming, duplicate configuration files, random numeric drop folders, and suspicious top-level webroot items.

JCE coverage

Applies tuned heuristics to media/com_jce, administrator/components/com_jce, components/com_jce, and plugins/editors/jce.

Rogue users

Flags Super User accounts with attacker-pattern names or suspicious local email domains.

Confidence scoring

Labels findings as High or Medium so administrators can prioritize review.

Guided actions

Offers scoped delete, surgical menu params cleanup, rogue SPPB asset row deletion, and one-click false-positive dismissal for current scan findings.

Protection Mode

On-demand scanning finds problems after they happen. Protection Mode, powered by the optional MuRu Guard Shield plugin, checks requests as they reach Joomla and records matches in a sectioned Protection Log.

Protection Mode

Master switch that detects and logs every match.

Attack Blocking

Optional 403 block for high-confidence webshell, SPPB RCE, and known drop-filename matches.

Brute-Force Blocking

Optional IP blocking after repeated failed administrator login attempts.

Manual IP Access List

Always-allow or always-block specific IPs or CIDR ranges, checked before any pattern or threshold rule -- an allow entry bypasses everything else.

Country Blocking

Reject requests from chosen countries via a free IP-to-country lookup, cached per IP so it's a one-time check, not a per-request dependency. Fails open if the lookup service is ever unreachable.

Bad User-Agent Blocking

Actively reject known scanner/bot user agents, kept as its own switch since a User-Agent string alone is easier to spoof than a real attack payload.

All protection switches are off by default, and authenticated non-guest admin sessions are exempt from request-pattern and country blocking, so you can never lock yourself out by travelling or using a VPN.

Smart AI Assistant

Pro

A scan tells you which file is suspicious. The Smart AI Assistant is the step after that: its own panel in the left sidebar (Components > MuRu Guard > Smart AI Assistant) where you can ask about a finding in plain language, have the assistant open the file, search the rest of the project for related code, and write the correction back to disk -- all from inside the Joomla administrator.

It works as a multi-turn loop. Each turn, the assistant decides which single tool it wants to run next, that tool executes locally on your own server, and the result feeds into the next turn. Your codebase is never uploaded, indexed, or mirrored anywhere -- only the tool name, its arguments, and its result cross the network, which means the model sees the contents of files it explicitly reads or writes during your conversation and nothing else.

What it can do

Browse the project

Shallow, one-level directory listings so it can walk the tree the way you would, without dumping the whole filesystem into a single request.

Read files

Reads up to 256 KB of a file and tells you plainly when a file was truncated, instead of silently reasoning about a partial view.

Search the project

Matches on both filenames and file contents across PHP, JS, TS, CSS, HTML, XML, INI, JSON, Markdown, and text files, returning the first matching line and its number.

Create and edit files

Writes new files or overwrites existing ones, up to a 256 KB limit per write.

Rename files

Moves or renames a file, and refuses if something already exists at the destination rather than overwriting it.

Delete files

Removes a single file at a time. No recursive directory deletion, so a wrong instruction can't cascade.

What it cannot do

Giving an assistant write access to a production site is only reasonable if the fences are real, so they are enforced in the extension's own PHP -- not requested politely in a prompt the model is free to ignore.

Joomla core is off-limits

libraries, includes, api, cli, the language folders, and administrator/manifests are all blocked. Core updates overwrite these anyway, so hand-editing them is risky with no upside.

Entry points are protected

configuration.php and the root, administrator, and api index.php files can't be touched. Corrupting one of those takes the whole site down, including the assistant you'd need to fix it.

No self-tampering

The assistant can't edit MuRu Guard's own component files or the Shield plugin that is actively protecting the site -- so it can't be talked into disabling the thing watching for the attack.

Blocked paths are hidden, not locked

Denied files and folders are left out of listings and search results entirely, so the assistant never learns they exist to try in the first place.

No escaping the webroot

Paths are normalised and resolved against the real webroot, which rejects both ../ traversal in the input and symlinks planted inside the site that point elsewhere on disk.

Nothing destructive without a yes

Writes, renames, and deletes need your explicit confirmation in the chat before they are executed.

Audit log

Every file the assistant creates, edits, renames, or deletes is recorded with the action, the path, the Joomla username who approved it, and a timestamp. The last 1,000 entries are kept and shown newest first in the panel's own audit tab. Approving a change in a chat window shouldn't mean losing the paper trail you would get from a normal form submission.

Custom Skill

Write your project's own conventions once -- coding standards, which template to touch, what never to change -- or upload them as a .md or .txt file, up to 64 KB. They are added to the assistant's instructions on every turn, so you don't repeat yourself each session. Because a Skill describes this specific install's codebase, it is stored on your own server rather than on your account.

AI Integrations

Pro

Settings > AI Integrations is where the Smart AI Assistant gets its connection. The AI provider is configured once at the account level rather than per site, so a new install covered by the same license can use the assistant immediately, with no credentials to copy between sites and no API key sitting in each site's database.

Connect once, use everywhere

Account-level configuration means every install under an active license shares the same connection.

Per-turn, stateless requests

Each turn of the conversation is a separate request. Nothing about your project is retained between sessions on the service side.

Your files stay on your server

File tools execute locally. Only tool names, arguments, and results travel over the network -- never a bulk copy of your site.

Site-specific context stays local

Your custom Skill is written to the install itself, not to your account, because it describes this codebase and no one else's.

Unlocks the moment the license validates

Activate or correct a license and the AI Integrations and Pro Features tabs open on the same page load -- no second refresh needed.

Optional by design

Skip it entirely and the scanner, cleanup tools, Protection Mode, and .htaccess advisor all work exactly as they always have.

Automations & Alerts

Pro

A scanner only helps if someone runs it. Scheduled scanning runs the same checks on your own cron schedule and tells you where you already are -- inbox, team chat, or a dashboard covering every site you maintain. This entire section is a Pro feature.

Scheduled scans

Turn on scheduled scanning and MuRu Guard generates a secret token. Point a cron job or your host's scheduled task at the tokenized URL and the scan runs unattended. The dashboard shows when it last completed.

Email alerts

Send results to any address when a scheduled run finishes, so a new finding reaches you without anyone logging in to look.

Slack

Post findings into a channel through an incoming webhook, so the whole team sees a compromise at the same time.

Discord

Same webhook-based delivery for teams and communities that live in Discord instead.

Telegram

Deliver alerts through a bot to a person or a group chat, useful when the site owner isn't in your workspace at all.

Fleet Dashboard reporting

Opt an install in to report its scan status back to your dashboard account, so agencies can see every site's state on one screen instead of opening each administrator in turn.

Scheduled scanning, email alerts, Slack, Discord, Telegram, and Fleet Dashboard reporting are all Pro features and unlock with an active license.

False-Positive Handling

Every finding row -- files, Super Users, menu items, database rows -- has a one-click "Mark as Safe" action. Most scanners that offer this just remember a filename or row ID forever, which quietly creates a blind spot: if that exact path is ever genuinely compromised later, a stale dismissal would hide the real problem.

MuRu Guard fingerprints the exact finding text being dismissed, not just its location. If the same file or database row later matches something different -- because its content actually changed -- the fingerprint no longer matches and it reappears as a fresh finding automatically. A dedicated management screen lists every current dismissal with a one-click restore, so nothing stays permanently hidden without a trail.

.htaccess Hardening Advisor

A read-only advisory panel that reads your site's actual root .htaccess and checks it against a focused set of recommendations: PHP execution blocked inside writable upload directories (the single most direct way to stop a dropped webshell from ever running), directory listing disabled, and sensitive files (.env, .git, backup/SQL files) blocked from direct access -- plus optional security headers.

Every missing check shows a copy-ready rule. MuRu Guard never writes to .htaccess itself -- a wrong edit to that one file can take an entire site down with no way to test a rewrite rule safely before it's live, so this stays report-and-suggest only.

Cleanup Workflow

  1. 1Review High-confidence findings before Medium-confidence findings.
  2. 2Treat core entry-point tampering as the top priority because it can execute on every page load.
  3. 3Delete confirmed malware files or folders only through current scan results.
  4. 4Ask the Smart AI Assistant to open anything you're unsure about -- it can read the file and explain what the flagged code actually does before you delete it.
  5. 5Clean injected menu params with the dedicated clean action instead of deleting whole menu items.
  6. 6Remove rogue Super Users from Joomla Admin, then rotate credentials from configuration.php.
  7. 7Force logout sessions, check scheduled jobs, and re-scan after cleanup.

Installation

  1. 1

    Install the component

    Upload and install com_muruguard from Joomla administrator under System > Install Extensions.

  2. 2

    Install the shield plugin

    Install plg_muruguardshield if you want live attack logging and optional blocking.

  3. 3

    Enable permissions

    By default Super Users can access the component. Grant Manage, Clean, Delete, or Change Settings permissions to trusted groups as needed.

  4. 4

    Run a scan

    Open Components > MuRu Guard > Scan, choose the checks to include, and review grouped results.

  5. 5

    Configure protection

    Enable the plugin from System > Plugins, then turn on Protection Mode from the scanner settings panel.

  6. 6

    Schedule scans and alerts

    In Settings > Scheduled Scanning, enable scheduling, copy the generated token URL into a cron job, and add the email address or chat channels that should receive results.

  7. 7

    Activate your license

    Paste your key into Settings > License to unlock the Smart AI Assistant, Fleet Dashboard reporting, and the Slack, Discord, and Telegram alert channels.

  8. 8

    Set up the AI assistant

    Open Settings > AI Integrations to connect your AI provider, then write a custom Skill describing this site's conventions so the assistant follows them on every turn.

Recommended Order

Back up the full site.
Update SP Page Builder to 6.6.2 or later.
Update or remove JCE if installed.
Install the scanner and run a full review.
Clean menu payloads, delete confirmed malware, and remove rogue asset rows.
Rotate credentials, harden upload folders, and re-scan.
Schedule recurring scans and point alerts at a channel someone actually reads.

Security Model

Super Users only, by default

A fresh install denies access to the standard Manager and Administrator groups automatically -- only Super Users can see or use it out of the box. Access can always be granted to other groups afterwards through Joomla's own Access Levels.

Joomla ACL

Access is governed by Joomla authentication and component permissions.

CSRF protection

Delete, clean, settings, false-positive, and AI assistant actions all require Joomla CSRF validation.

Scoped deletion

The scanner can only remove items flagged by the current scan run.

Scans its own files too

No blanket self-exemption -- only the specific, verified false positives that come from containing its own signature definitions as text are excluded, so a real backdoor planted in the scanner itself would still be caught.

AI file access is fenced in code

The assistant's deny list for Joomla core, configuration.php, entry points, and MuRu Guard's own files is enforced in PHP before any file operation runs -- not left to the model's discretion.

Every AI file change is logged

Creates, edits, renames, and deletes are written to an audit log with the approving Joomla username and a timestamp, viewable in the assistant panel.

Pattern-only cleaning

Menu params cleanup strips matched injection patterns without touching unrelated layout settings.

Read-only scanning

File content is read as text for pattern matching and never executed or included.

Admin-only operation

No separate public scanner file, login screen, or access key is exposed.

Frequently Asked Questions

FAQs