Jak wyczyścić zainfekowanego WordPressa? Kompletny przewodnik usuwania malware (2026)
PL

Jak wyczyścić zainfekowanego WordPressa? Kompletny przewodnik usuwania malware (2026)

5.00 /5 - (22 głosów )
Spis treści

“Twoja strona zawiera oprogramowanie reklamowe lub złośliwe”.

To zdanie, wyświetlane na czerwonym ekranie przeglądarki (Google Safe Browsing) lub w mailu od hostingu, jest koszmarem każdego właściciela strony. Infekcja WordPressa to nie tylko kwestia wizerunkowa. To ryzyko kradzieży danych klientów, utrata pozycji w Google (tzw. “Japanese Keyword Hack” lub przekierowania na strony hazardowe) i potencjalne zablokowanie konta hostingowego.

W roku 2026 ataki na WordPressa są w większości zautomatyzowane. Boty nie atakują Ciebie osobiście – one skanują sieć w poszukiwaniu nieaktualnych wtyczek, słabych haseł czy luk w motywach.

W tym artykule pokażę Ci profesjonalny, techniczny proces czyszczenia zainfekowanego WordPressa. Zapomnij o “wtyczkach do usuwania wirusów”, które często maskują problem. Pokażę Ci, jak zrobić to ręcznie, skutecznie i na poziomie serwera, używając SSH i WP-CLI.

Krok 0: Nie panikuj i Zrób Kopię (Tak, zainfekowaną!)

Zanim dotkniesz czegokolwiek, zrób kopię zapasową stanu obecnego. Dlaczego? Ponieważ w trakcie czyszczenia możesz przez pomyłkę usunąć krytyczny plik (np. zmodyfikowany functions.php, który zawierał kluczową funkcjonalność, a nie tylko wirusa).

Jeśli masz dostęp do SSH:

# Spakuj wszystkie pliki
tar -czf backup-infected-files_$(date +%F).tar.gz .

# Zrób zrzut bazy danych
wp db export backup-infected-db_$(date +%F).sql --allow-root

Krok 1: Wstępna Diagnoza (Metoda “na Grepa”)

Zanim zaczniesz wycinać, musisz wiedzieć, z czym walczysz. Malware w WordPressie często ukrywa się pod postacią zaciemnionego kodu (obfuscated code) wykorzystującego funkcje takie jak eval, base64_decode, czy gzinflate.

Oto lista przydatnych komend grep, które pozwolą Ci przeskanować pliki w poszukiwaniu podejrzanych ciągów znaków. Uruchom je w katalogu głównym strony.

Najczęstsze sygnatury malware

  1. Szukanie funkcji eval (bardzo rzadko używana legalnie w nowoczesnym kodzie):

    grep -rnwl './' -e 'eval('
  2. Szukanie ukrytych ramek i skryptów wstrzykniętych w pliki PHP:

    grep -rnwl './' -e '<script' --include=*.php
    grep -rnwl './' -e '<iframe' --include=*.php
  3. Szukanie “backdoorów” (często używane nazwy zmiennych w malware):

    grep -rnwl './' -e 'bgeteam'
    grep -rnwl './' -e '3o'
    grep -rnwl './' -e '57h'
  4. Szukanie zakodowanych ciągów (Base64 + Rot13):

    grep -rnwl './' -e 'base64_decode'
    grep -rnwl './' -e 'str_rot13'

Analiza wyników

Nie każdy wynik to wirus!

  • Wtyczki takie jak Elementor czy Visual Composer mogą mieć base64_decode w swoim kodzie.
  • Zwracaj uwagę na pliki w dziwnych lokalizacjach, np. wp-content/uploads/2024/03/avatar.php. W folderze uploads nie powinno być żadnych plików PHP.

Aby znaleźć wszystkie pliki PHP w folderze uploads:

find ./wp-content/uploads -name "*.php"

Jeśli coś znajdziesz – na 99% jest to malware (chyba że masz bardzo specyficzną wtyczkę).

Krok 2: Opcja Nuklearna (Nadpisanie plików Core)

Ręczne usuwanie wirusa z plików rdzenia WordPressa (wp-admin, wp-includes) to syzyfowa praca. Najszybszą i najpewniejszą metodą jest zastąpienie wszystkich plików systemowych czystymi oryginałami.

To bezpieczny proces, jeśli nie modyfikowałeś ręcznie plików rdzenia (czego i tak nie powinieneś robić!).

Używając WP-CLI:

# Pobierz świeżą wersję WordPressa (zastępując pliki)
wp core download --force --skip-content --allow-root

Flaga --skip-content jest kluczowa – sprawia, że WP-CLI nie nadpisze Twojego folderu wp-content, w którym są Twoje zdjęcia, motywy i wtyczki.

Jeśli nie masz WP-CLI:

  1. Pobierz paczkę WordPress z wordpress.org.
  2. Rozpakuj ją lokalnie.
  3. Usuń z niej folder wp-content oraz plik wp-config-sample.php.
  4. Wgraj resztę plików przez FTP, nadpisując wszystko na serwerze.

Krok 3: Czyszczenie wp-content

To tutaj zazwyczaj leży problem.

Wtyczki i Motywy

Jeśli to możliwe, usuń i zainstaluj ponownie wszystkie darmowe wtyczki. Wirusy często doklejają się do każdego pliku .js lub .php na serwerze.

# Reinstalacja wtyczki z repozytorium (np. contact-form-7)
wp plugin install contact-form-7 --force --allow-root

Dla płatnych wtyczek musisz pobrać czyste paczki od producenta i podmienić pliki przez FTP.

Sprawdź swój motyw. Jeśli używasz motywu potomnego (Child Theme), przejrzyj ręcznie functions.php i header.php. To ulubione miejsca dla złośliwego kodu.

Folder Uploads

Jak wspomniano wcześniej, folder mediów (wp-content/uploads) powinien zawierać tylko obrazy, PDF-y i dokumenty. Radykalne czyszczenie (usuwa wszystkie skrypty PHP z uploads):

find ./wp-content/uploads -name "*.php" -delete

Uwaga: Sprawdź wcześniej listę (bez -delete), aby upewnić się, że nie usuwasz czegoś legalnego.

Krok 4: Baza Danych (Japanese Keyword Hack i Spam)

Infekcje często nie kończą się na plikach. Wirusy wstrzykują spamerskie linki do treści postów lub tworzą fałszywych administratorów.

Zaloguj się do bazy danych (phpMyAdmin lub wp db cli) i sprawdź:

  1. Fałszywi administratorzy:

    SELECT * FROM wp_users;

    Szukaj użytkowników, których nie rozpoznajesz, często z domenami .ru, .cn lub losowymi ciągami znaków. Usuń ich natychmiast.

  2. SPAM w treści: Wirusy typu “Japanese Keyword Hack” wstrzykują tysiące stron z chińskimi/japońskimi znakami reklamującymi podróbki. Sprawdź tabelę wp_posts:

    SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%<script%';
    SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%eval(%';

Jeśli Twoja strona nagle ma 50 000 nowych podstron w indeksie Google, musisz wyczyścić te wpisy z bazy, a następnie zgłosić mapę witryny do Google Search Console, aby przyspieszyć usunięcie śmieci z indeksu.

Krok 5: Pliki konfiguracyjne (wp-config.php i .htaccess)

Malware często modyfikuje te dwa kluczowe pliki.

  1. wp-config.php: Otwórz go i sprawdź, czy nie ma tam dziwnych linii. Często dodawane są odwołania do plików tymczasowych:

    include '\tmp\sess_dsf43...'; // PODEJRZANE!

    Porównaj swój plik z wp-config-sample.php. Powinien zawierać tylko dane do bazy i definicje stałych.

  2. .htaccess: Wirusy często dodają tu reguły, które przekierowują ruch z wyszukiwarek (np. jeśli User-Agent to Googlebot) na strony ze złośliwym oprogramowaniem, podczas gdy Ty (wchodząc bezpośrednio) widzisz normalną stronę. Jeśli nie masz pewności, wygeneruj domyślny plik .htaccess WordPressa:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress

Krok 6: Po sprzątaniu - Zabezpieczenie (Hardening)

Wyczyściłeś stronę? Świetnie. Teraz zamknij drzwi, żeby włamywacz nie wrócił.

  1. Zmień hasła:

    • Do wszystkich kont Administratorów.
    • Do bazy danych.
    • Do FTP/SFTP.
  2. Zmień klucze szyfrujące (Salts): To wyloguje wszystkich użytkowników. W edycji wp-config.php podmień sekcję kluczy na nowe, wygenerowane tutaj: https://api.wordpress.org/secret-key/1.1/salt/ Lub użyj WP-CLI:

    wp config shuffle-salts
  3. Zablokuj edycję plików z poziomu kokpitu: Dodaj do wp-config.php:

    define( 'DISALLOW_FILE_EDIT', true );

    To zapobiega sytuacji, w której haker, który zdobędzie hasło administratora, może edytować pliki motywu/wtyczek bezpośrednio z panelu.

  4. Wyłącz XML-RPC: Jeśli nie używasz aplikacji mobilnej WordPress lub Jetpacka, XML-RPC to tylko dziura w bezpieczeństwie (używana do ataków DDoS i Brute Force). Dodaj do .htaccess:

    <Files xmlrpc.php>
    order deny,allow
    deny from all
    </Files>

Podsumowanie

Walka z malware to wyścig zbrojeń. Najlepszą ochroną nie jest jednak “magiczna wtyczka security”, ale higiena cyfrowa:

  1. Błyskawiczne aktualizacje WordPressa i wtyczek.
  2. Nieinstalowanie “nulled” (pirackich) wtyczek i motywów (to główne źródło infekcji).
  3. Posiadanie kopii zapasowej poza serwerem (np. w chmurze).

Jeśli czujesz, że techniczny aspekt Cię przerasta, lepiej zleć to specjalistom. Źle przeprowadzone czyszczenie może zostawić furtkę (backdoor), przez którą haker wróci po kilku dniach, a Ty stracisz kolejne pieniądze i zaufanie w oczach Google.