Case 001 · June – October 2026

Three hacked websites, taken back.

In June 2026, a small-business owner’s websites started sending her visitors to scam pages. This is what was hiding inside them, how they were rebuilt without keeping a single line of the old code, and how the owner took control of them again.

Files inspected
103,105
Old code kept
0 lines
Owner saves · July–October
257
One dot = 25 files · coral = outside the verified core
Follow the case

01 22 June · What visitors saw

The sites still looked like hers. They weren’t.

Her photos, her prices, her words — all still there. But depending on the site and the hour, a visitor got pop-up ads, a fake “Click Allow” page, a shopping site carrying a stranger’s affiliate code, or nothing but an error. And the login page she used to fix things had disappeared.

Personal sitePop-up ads, then a fake “Click Allow” page — a trick to get permission to push spam onto the visitor’s screen.
Coaching practiceVisitors were forwarded to a shopping site with someone else’s affiliate code, so a stranger earned commission on her traffic.
Colour studioThe site crashed outright — for visitors and for her. Behind the error, the same infection was waiting.
Her own loginThe page she used to edit her site now said it didn’t exist. The attackers had hidden the door she came in through.

Swipe for all four →

02 April → 16 June · The silent part

It began weeks before anyone noticed.

Files planted in the sites were dated as far back as April. Working back doors — small programs that let an outsider upload and run anything — were in place by early May. Then, on 16 June at 09:33, all three websites were altered within the same seven seconds.

16 JUNE · 09:33:52
April and May compressed · June day by day
  1. 1
    Oldest planted file found
  2. 2
    Two complete back doors in place
  3. 3
    Server logs show hidden code running
  4. 4
    All three sites changed within seven seconds
  5. 5
    Noticed — and the work began

One account, three doors.

All three sites lived in a single hosting account. To visitors they were three separate businesses; to the server they were three folders in the same home. Once one was opened, all of them were.

File dates can be forged, so April is the earliest trace — not necessarily the start. How the attackers first got in can’t be proven from the files alone.

One hosting account CoachingPersonalColour

03 22 – 23 June · The first 48 hours

Get back in. Then touch nothing.

The first job wasn’t fixing anything. It was getting control back, and preserving the evidence exactly as it was — without ever letting the infected code run again.

  1. Get control back — the proper way

    The account’s recovery email belonged to a domain that no longer existed. Access came back through the hosting company’s support, the domain registrar and an old set of file-transfer credentials. No guessing, no “hacking back”.

  2. Copy everything out

    Every file and every database from all three sites, over an encrypted connection: 103,105 files, about 2.5 GB.

  3. Seal it

    Stored read-only with nothing allowed to run, outside any web server, never opened in a browser.

  4. Check the investigating computer too

    Malware and persistence checks on the machine used for the work came back clean.

04 23 June · Inside the files

Only 29% matched the official core.

The snapshot was compared, byte for byte, with the official core releases. 29,396 matched exactly. The other 73,709 included extensions, custom content and confirmed attack code. A mismatch alone does not mean a file is malicious.

29,396match the official original
73,709outside the verified core
confirmed attack code
Each square = 25 files

Four working back doors

Identical 35 KB file managers that let anyone upload files and run commands on the server.

administrator/templates/LlBKpbmJ.php + 3 copies

A copy machine

A disguised 60 KB program that spread the infection into new folders and fetched more.

media/vendor/joomla-custom-elements/js/index.php

A fake second website

Folders imitating a different website system, hidden inside the real one as cover.

wp-admin/ · wp-includes/ · wp-blog-header.php

Folders inside folders

18,529 paths where the malware nested a folder inside itself — up to 26 levels deep.

…/pagination/pagination/pagination/wp/

10,460 spam pages

Listed in one site’s sitemap, so that search engines would find and show them.

sitemap: 10,460 foreign URLs

Proof it was running

Server logs show the hidden code executing on six different days in June — not just lying there.

error_log: 14 · 16 · 18 · 19 · 20 · 22 June

A clean-up that wasn’t

The host’s automatic scan had marked 440 files as cleaned. The back doors and the redirects survived it.

440 × “dangerous code removed”

Keys under the mat

62 user accounts, nine with full control, none with two-factor login. Years-old webshop orders and a newsletter list were still stored on the server.

users: 62 · super users: 9 · 2FA: 0

Hidden in plain sight.

Real paths to the back doors. They sat in folders that look like ordinary parts of the site, often nested inside copies of themselves, where nobody browsing the files would think to look.

folders deep: 0deepest found: 26

05 23 – 25 June · The decision

For these sites, rebuilding was the sounder choice.

The audit found widespread changes, hidden back doors and damage left after an earlier cleanup. For this case, rebuilding gave us a clearer basis for trust. Only reviewed words and pictures were carried across. Other sites may be suitable for a targeted repair.

Cleaning in place

Find and remove the cause and remaining access. In this case, an earlier cleanup had left working back doors behind.

Rebuilding

Starts from nothing. Only content that has been checked comes across, one piece at a time.

She had used the same editor for years and was wary of learning a new one. So before deciding, she tried the new editor on a copy of her own site. Then she chose it.

06 23 June → 2 July · Rebuilt from the blueprint

The old site became a drawing, not a foundation.

Each page was rebuilt one at a time from the evidence — layout, menus, text, spacing, the exact size and position of every picture — to preserve the familiar visitor experience while replacing the compromised implementation.

picture 325 × 217 · right serif · gold MENU · UPPERCASE testimonials · word for word footer · contact · social “““
78pages rebuilt, one at a time
197customer testimonials moved word for word
Everyimage checked, re-saved and stripped of hidden data
0lines of the old code

07 30 June · A new foundation

Fewer places for an attack to take hold.

The old sites ran programs on the server for every visit, with a database behind them and 187 add-ons that all needed updating. The new ones are finished pages, delivered from a global network. Editing uses a separate sign-in. The editor, hosting accounts and dependencies still need to be maintained.

  • Programs run on the server for every visitremoved
  • A database behind every pageremoved
  • 187 add-ons, each needing updatesremoved
  • Three sites sharing one accountremoved
  • File access straight onto the serverremoved
  • An old webshop with customer dataretired
  • A login page anyone could try
  • Nine accounts with full control
  • No two-factor login anywhere
  • Each change overwrites the last
  • Encrypted, served from a global network

The public pages no longer need the old server or its database. Email stayed with its existing provider.

08 30 June → 1 July · The move

Moving house without losing the post.

Her web addresses were pointed at the new sites while email kept flowing to the mailbox it always had. One old setting would have quietly taken the email along with the website — it was split off before the switch.

Visitors now reach the clean site. The old server stopped serving web pages.
Email stayed on the existing server. Her mail program needed corrected settings afterwards.
Afterwards, her mail program needed corrected server settings before it worked normally again. Loose email settings were tightened and spoofing protection added.

09 July → August · Checking the other doors

The break-in didn’t stop at the websites.

One of her email accounts had been signed into from abroad. The review identified seventeen accounts needing password and sign-in checks. And the old server still held leftovers in places no website uses.

The dated case record lists the account and old-server work below. It is not a current audit of every account.

Recent sign-ins · one email accountExcerpt
Swedenher
Swedenher
Morocco — signed innot her
Albania — attemptblocked
Password changed · two-factor login switched on

17 accounts identified for password and sign-in checks

162leftover attack files on the old server — in mail, temp and certificate folders — found and deleted
29database passwords changed and remote access switched off
3unknown access keys removed from the hosting account
1former helper’s access to the hosting account removed

10 August · Cleaning up Google

The hacker’s pages outlived the hack.

The August case record reports 10,356 Google results for one site, with attacker pages in 967 of the 1,000 results sampled. Removed addresses were given not-found or gone responses, and the real pages received titles, descriptions and structured data. The animation illustrates the intended cleanup, not a measured search-ranking result.

site: her personal site
About 10,356 results
…/item/48213.html
【激安】ブランド 財布 通販 — 送料無料
人気 ブランド 最安値 セール 2026 …
…/items/ja/tokyo-store-9917
人気 スニーカー 公式 アウトレット
本日限定 最大 80% OFF …
…/view/item/77302
ブランドバッグ 新作 2026 激安 店舗
正規品 保証 即日発送 …
…/coaching/sessions
Individual coaching — how a session works
What happens in a first session, how long it takes, and how to book.
…/about
About me — background and training
Written by her, in her own words.
…/reviews
What clients say
Real reviews, moved word for word from the old site.

Illustration. The spam titles are representative, not copied.

78 / 78pages passed the August checks: title, description, one heading, preview image, structured data
84page descriptions she rewrote in her own words before anything was published
0security issues or manual actions in the 20 August case record

11 6 July → 14 October 2026 · The keys, handed back

Now she edits her own sites.

She logs in with her email, changes a sentence or adds a photo, and presses Save. About a minute later it’s live — and every save is kept as a version that can be restored. She can change the words and the pictures. The editor keeps routine content changes separate from the page layout.

Animated example: a heading is typed into the editor, Save is pressed, and the live page updates.

257saves of her own between 6 July and 14 October — each one a version that can be undone

12 July–October · Still looking after it

Looking after a site means noticing the small things.

FoundFixed

Two saves went live in the wrong order

A newer edit was replaced by an older one just 0.6 seconds later. A deployment check was added to stop a stale build replacing a newer published save.

FoundFixed

Real email was silently deleted

Old mail filters had thrown away legitimate messages. Suspicious mail now goes to a spam folder instead of disappearing.

ChangedDone

A new address for one site

One site moved to a new domain name, with mail routing and redirects arranged, and the search-engine change of address submitted.

↺ Summary

Before and after.

BeforeAfter
What the website is made of103,105 files, server code and a database1,136 tracked project files; public pages served without a database
Old CMS add-ons on the public site1870
Accounts with full control9, none with two-factor loginOwner editing separated from deployment
What a visitor getsPop-ups, scam pages, errorsHer site, and nothing else
When something changesIt overwrites what was thereIt’s saved as a version
Public-site hostingShared application serverPre-built pages on a delivery network
Who can editNobody — she was locked outShe made 257 saves from July to October

→ What this kind of work involves

Six things, done carefully.

Finding out what’s really there

Inspecting a site’s files, logs and accounts without running any of it.

Chapters 03 – 04

Rebuilding it so it looks the same

Page by page, from the evidence, with nothing that can run carried over.

Chapters 05 – 07

Planning the move carefully

Plan domains, email, redirects and search settings together, and check them after the move.

Chapter 08

Reviewing the other access

Passwords, two-factor login, access keys, old accounts and leftovers.

Chapter 09

Cleaning up search results

Removing what an attacker left in Google, and getting the basics right.

Chapter 10

Handing back the keys

An editor the owner can use, with routine changes kept separate from the layout.

Chapters 11 – 12

If you’re not sure what is running underneath your own website, I’m happy to take a look.

Tell me about your website →