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.

Why removing the nulled package is not enough

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

Preserve the installer and build a compromise timeline

  • 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.

Persistence paths the recovery must audit

  • 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.

Recover from trusted packages and rotate access

  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.

Bundled backdoor or cross-file injection?

A bundled backdoor and cross-file injection require the same incident discipline but leave different evidence. If the suspicious code exists inside the original archive, the package itself is compromised. If unrelated files changed only after installation, trace the installer or loader into those writes. Preserve hashes and timestamps before replacing anything so the recovery explains how persistence was created, not only which file looked malicious.

Do not stop at deleting the nulled component. Compare the compromise with WP-VCD persistence in WordPress themes, then use repeated .htaccess changes as a separate integrity signal if rewrites keep returning. Those checks help distinguish a contained package infection from a broader hosting-account compromise.

What to quarantine instead of deleting blindly

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

Exit criteria for a clean recovery

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

Close the incident only after every executable component comes from a trusted source, privileged credentials and sessions have been rotated, no persistence mechanism remains, and file integrity plus outbound traffic stay stable through normal site operation.

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↗