Initial assessment without passwords Quote before intervention One accountable specialist from start to finish

Malware & Security

WordPress Hacked After Installing a Nulled Plugin or Theme: Full Recovery Plan

A nulled component has no trustworthy update or provenance chain. Remove it, replace affected code and assume credentials may be exposed.

What matters first: Pirated plugins and themes can include loaders, backdoors, ad injection or credential theft before installation. There is no reliable way to prove the package differs only in licensing.

What this symptom actually tells you

Deactivating the component does not undo files, users, cron, options or remote access it created. Recovery must cover the entire site and hosting account.

Capture evidence before changing anything

  • Preserve the installed archive, hashes and installation timestamp.
  • Inventory files changed after installation across all themes, plugins and uploads.
  • Audit users, cron, options, outbound requests and credentials.
  • Check other sites where the same package was installed.

Most common causes

  • Bundled backdoor: The package intentionally includes remote access.
  • Cross-file injection: Installation modifies unrelated themes or core files.
  • Credential exfiltration: Admin, hosting or API secrets are sent externally.
  • No safe updates: The component cannot receive trusted security fixes.

Safe diagnostic and repair sequence

  1. Remove the package and replace required functionality with a licensed trusted source.
  2. Reinstall affected code from clean packages and remove persistence.
  3. Rotate WordPress, hosting, SFTP, database and relevant API credentials.
  4. Monitor integrity and outbound connections after recovery.

How to choose between the likely causes

Do not treat Bundled backdoor and Cross-file injection as interchangeable. The package intentionally includes remote access. By contrast, installation modifies unrelated themes or core files. Use two checks to separate them: Preserve the installed archive, hashes and installation timestamp; and inventory files changed after installation across all themes, plugins and uploads. Those observations usually show whether the next safe move is to remove the package and replace required functionality with a licensed trusted source or to preserve the current state and widen the investigation.

On a compromised site, containment and cleanup are separate decisions. Preserve the suspicious artefact and access logs before removing persistence, then rotate credentials only after the active path has been closed. Record the exact timestamp, affected URL or transaction, last known good state and every change made during diagnosis. That handover is often what separates a repeatable repair from a temporary disappearance of the symptom.

What not to do

Do not keep the nulled package offline “for reference” inside the web root. Store evidence outside executable paths with restricted access.

How to verify the repair

  • No untrusted package or injected code remains.
  • All privileged credentials and sessions are rotated.
  • Integrity and outbound traffic remain stable through normal operation.

A visible symptom disappearing is not enough. Close the incident only when the original failing action, the surrounding business journey and the relevant logs all agree that the fault is gone.

WP REPAIR INCIDENT STANDARD

Safe intervention sequence

Deactivating the component does not undo files, users, cron, options or remote access it created. Recovery must cover the entire site and hosting account.

WP RepairDiagnostic model
1Trigger2Payload3Persistence4Entry point
Follow the chain until you find the first point that stops behaving as expected.
  1. Preserve the installed archive, hashes and installation timestamp.
  2. Inventory files changed after installation across all themes, plugins and uploads.
  3. Audit users, cron, options, outbound requests and credentials.
  4. Check other sites where the same package was installed.

What must be verified

  • No untrusted package or injected code remains.
  • All privileged credentials and sessions are rotated.
  • Integrity and outbound traffic remain stable through normal operation.

ABOUT THIS SYMPTOM

Frequently asked questions about this guide.

If I just deactivate the nulled plugin or theme, is the threat neutralized?+

No. Deactivating the component does not undo the files, users, cron jobs, options or remote access it may have already created, so recovery has to cover the entire site and hosting account, not just the plugin or theme itself.

Is there a way to tell if a nulled package is 'clean' except for the license bypass?+

No reliable way exists to confirm a pirated package differs from the original only in licensing. Pirated plugins and themes can include loaders, backdoors, ad injection or credential theft bundled in before you ever install them, so the safe assumption is that the package itself cannot be trusted.

Can I keep the nulled plugin's zip file on the server as evidence?+

Not inside the web root. Keeping it there "for reference" is called out as a mistake; evidence should be stored outside executable paths with restricted access so it cannot be re-executed or rediscovered as a live threat.

Which credentials need to be rotated after removing a nulled component?+

WordPress, hosting, SFTP, database and any relevant API credentials should all be rotated, since a bundled backdoor or credential exfiltration routine may have captured any of them before the package was removed.

BEFORE YOU SEND THE REQUEST

Frequently asked questions.

Do you ask for passwords in the form?+

No. The public form never requests access. Secure credentials are requested only after the scope and quote are approved.

Who reviews the incident?+

The request goes to Jordi Ensenyat, founder of Code Barcelona and a WordPress specialist with more than 15 years of experience.

Is anything changed before the quote?+

No. Visible symptoms and scope are reviewed first. Intervention begins after approval and with a rollback path prepared.

Do you work internationally?+

Yes. WP Repair handles WordPress and WooCommerce incidents in English and Spanish through a remote service.

Assess my incident