File integrity checking against known-good WordPress core hashes revealed discrepancies in two core files. Both had been modified. This is almost always diagnostic of a compromise — legitimate WordPress updates do not modify core files in place; they replace them wholesale.
Manual inspection of the modified files revealed obfuscated PHP. A base64-encoded payload, decoded, was a file manager backdoor — a script that provided unauthenticated remote access to the server filesystem.
Deeper inspection of the database revealed a set of custom tables that did not belong to any installed plugin. These tables contained approximately 2.3GB of spam link data — the site had been operating as a hidden link farm, injecting thousands of spam URLs into pages served to specific user-agents (Google's crawler, specifically) while showing clean content to human visitors.
Timestamp analysis placed the initial infection approximately eleven months before the audit. The attack vector was a then-unpatched vulnerability in a form plugin that had been updated — and the patch applied — eight months earlier. The attacker had already established persistence before the patch was available.