01 / Observed conditionCompromise created uncertainty beyond the visible symptom.
The compromise affected confidence in the site’s files, accounts, and content workflows. Business stakeholders needed service restored quickly, but recovery could not create additional privacy or operational risk. Specific indicators and infrastructure details remain confidential; the important fact was that visible symptoms were not treated as proof that persistence had been removed.
02 / Containment and recoveryRestore from evidence—not assumption.
Osiris investigated changes across application files, themes, plugins, users, database content, scheduled tasks, and hosting access. Suspicious modifications were removed, affected components were replaced from known-good sources, credentials were reviewed, and the recovered environment was validated against essential visitor and editorial journeys before returning to normal operation.
03 / Remediation and hardeningRecovery became a stronger operating baseline.
Post-incident work addressed the conditions that made the event difficult to detect and manage. We reduced unnecessary access and dependencies, strengthened authentication and permissions, established managed updates, observed backup health, introduced integrity and availability monitoring, and documented a response path. Security became a maintained operating discipline rather than an emergency task.
The complete recovery record
What happened.
What Osiris did.
04
The first control gap was inside a trusted directory
The investigation found an unauthorized `.htaccess` file inside `wp-includes`. WordPress core otherwise verified against official checksums, which made the extra configuration easy to overlook if verification were treated as the only test. An attacker can use directory-level rules to influence execution, access, or routing without altering every official file. Osiris quarantined the unauthorized configuration and retained evidence rather than simply deleting it. The finding reinforced a key principle: clean official checksums do not explain extra files, server directives, database persistence, or credentials. Integrity review must examine both what changed and what should not exist.
05
A live test exposed executable uploads
A temporary security test demonstrated that PHP placed under `wp-content/uploads` could execute. This was a material risk because uploads are intentionally writable by the application and its plugins. If malicious code reaches that path through a vulnerable component or stolen session, web-server execution turns file placement into remote code execution. Osiris installed a blocking rule and restarted OpenLiteSpeed, but the post-reload test still returned the token on this host. That failure was reported as a failure—not hidden behind the presence of a configuration file. The server was not honoring the expected directory rule, so the control had to move to the virtual-host layer.
06
Adapting hardening to OpenLiteSpeed behavior
The remediation reviewed the site’s OpenLiteSpeed virtual-host configuration, document root, rewrite settings, `.htaccess` loading behavior, and PHP handler context. A server-level rule was applied where it would actually be enforced, followed by a controlled restart. The temporary uploads test was repeated and confirmed that PHP no longer executed. Homepage health remained HTTP 200. This sequence illustrated why Osiris verifies controls in production-like conditions. A copied Apache snippet can provide false confidence on a stack that parses rules differently or disables local overrides. Security configuration is effective only when the serving infrastructure demonstrates the intended behavior.
07
Investigating potential crawler-specific behavior
The fleet review observed different hashes for ordinary and Googlebot-style homepage responses. Different output does not automatically prove malicious cloaking; caching, personalization, consent, dynamic tokens, and legitimate bot handling can all change HTML. Osiris treated the discrepancy as a focused follow-up rather than a verdict. The investigation compared response size and content, searched for gambling and SEO-spam terms, reviewed suspicious database posts and options, inspected rewrite rules and loaders, and considered request logs. This avoided both dangerous complacency and an unsupported public claim. Evidence, not a single hash, determines whether crawler-specific content is malicious.
08
Reviewing application, database, and scheduled persistence
The response extended beyond the unauthorized core configuration. WordPress administrators, application passwords, plugin and theme condition, must-use plugins, PHP-like files in writable directories, options, posts, scheduled events, system cron, processes, and access-log indicators were reviewed. Search patterns covered common spam and loader terminology, but results were interpreted in context to avoid quarantining legitimate generated files. The objective was to identify any mechanism that could restore unauthorized code after cleanup or serve different content based on request conditions. A platform is not recovered if one file is removed while an account, cron event, database injection, or server rule can recreate it.
09
Protecting configuration and administration
Osiris preserved configuration backups, disabled dashboard file editing, applied secure ownership and permissions, protected sensitive files, and reviewed privileged access. These controls reduced the number of paths through which an authenticated or local attacker could change production code. Access work included identifying shared or obsolete accounts and recommending rotation of WordPress, hosting, SFTP, and other credentials according to exposure. Least privilege was balanced with the editorial needs of the organization. Security should make unauthorized change difficult without forcing legitimate teams into unsafe workarounds.
10
Proving a clean and usable result
Final verification combined core checksums, absence of the quarantined configuration from the live path, successful uploads execution blocking, HTTP 200 homepage behavior, reviewed administrator state, and checks of important content and form journeys. Server restart status and permissions were recorded. Where response differences remained worthy of observation, they were documented separately rather than allowed to delay every recovery action or be forgotten. This created a defensible baseline: the known unauthorized file was removed, the demonstrated execution path was closed, the application remained available, and follow-up monitoring had a clear reference point.
11
Moving into proactive maintenance
The recovered site entered a maintenance model built around managed updates, access governance, backup observation, integrity and uptime monitoring, performance review, and a named escalation path. The server-level uploads block became a control that should be retested after hosting or virtual-host changes. Core and plugin checks needed contextual review so legitimate premium or generated files would not create alert fatigue. Crawler-versus-normal response comparisons became an available diagnostic when search behavior changed. The result was not merely removal of compromise evidence. It was a transition from uncertain, reactive ownership to a platform whose security posture could be observed and improved over time.
12
The difference between a rule and a control
A rule existed in the expected application location, yet the live server continued executing the test file. Osiris treated the HTTP response and token body as the authoritative signal. The control was not complete until the virtual-host configuration enforced it after reload. This distinction now shapes maintenance: important protections are tested as behavior, not reviewed only as configuration text. Certificate renewal, redirects, response headers, backups, caches, and access restrictions receive the same evidence-led treatment. A dashboard saying enabled is useful; a real request demonstrating the outcome is stronger.
13
Protecting a privacy-sensitive organization
The organization’s work made restraint important. Public disclosure of the domain, infrastructure, exact indicators, accounts, or timing could create reputational harm and provide useful information to an attacker. Osiris shared necessary technical evidence through controlled channels and kept public reporting anonymized. The case study explains the defensive method without exposing client-specific details. That confidentiality is not separate from security. Information handling, access to incident records, and disciplined stakeholder communication are part of reducing impact during and after a compromise.
14
Managing the cloaking question responsibly
Different crawler and normal-response hashes remained a question until content comparison and supporting evidence could explain them. Osiris did not publish an accusation or assume every difference was malicious. Caches, consent tools, dynamic content, and bot-specific optimizations can all change output. The follow-up combined response comparison with database searches, rewrite review, file integrity, scheduled tasks, and logs. This approach prevented a false negative while also avoiding the harm of overstating uncertain evidence. The result was a repeatable diagnostic method the team could use if search results or redirects later diverged from the public site.
15
A stronger long-term operating contract
Ongoing stewardship defined who reviews alerts, who approves urgent change, how updates are tested, where backups are observed, when restore tests occur, and how incidents escalate. Reports distinguish completed maintenance, observed risk, recommendations, and client decisions. Custom components and integrations receive named ownership. Access is reviewed as people and vendors change. The platform is no longer protected by memory or goodwill; responsibilities are visible. That operating contract is the most durable control produced by the engagement because it keeps technical condition from drifting back into uncertainty.