Jak usunąć wirusa z WordPress (pełna procedura)
Usunięcie wirusa z WordPressa potrafi być znacznie trudniejsze, niż wielu osobom się wydaje. Jedna z ostatnich sytuacji, z jaką się spotkałem, zaczęła się całkiem niewinnie - klient dodał do strony formularz. Działał poprawnie, zbierał dane, wszystko wyglądało w porządku.
Miał tylko jedną dodatkową „funkcję”.
Pozwalał atakować stronę.
Któregoś niedzielnego popołudnia sprawdzałem jedną z witryn i od razu coś zwróciło moją uwagę. Patrzę na tytuł strony - zamiast normalnego nagłówka widzę dziwne znaki w obcym piśmie. Taki moment, kiedy od razu wiadomo, że coś jest bardzo nie tak.
Jednak zwykle tak to wygląda: wirus rzadko przychodzi z wielkim alarmem. Częściej zaczyna się od drobnego sygnału, który łatwo zignorować.
I jeśli myślisz, że wirus bierze się wyłącznie z zaniedbań, to nie. Niedawno głośno było o przypadku przejęcia ponad 30 wtyczek WordPress, do których po zmianie właściciela dodano backdoory. Użytkownicy instalowali aktualizacje, myśląc, że robią coś dobrego.
Jak rozpoznać, że WordPress został zhakowany?
Infekcje WordPressa, podobnie jak innych systemów, zwykle dają podobne objawy. Nie zawsze oznacza to wielki komunikat „strona została zhakowana”. Częściej pojawiają się drobne sygnały, które łatwo zignorować, dopóki problem nie zacznie żyć własnym życiem.
- Spam w wynikach wyszukiwania
Twoja strona wygląda normalnie, jednak w Google pojawiają się dziwne znaki, obcojęzyczne tytuły albo podstrony, których nigdy nie tworzyłeś. - Przekierowania w miejscach, w których nigdy ich nie było
Wchodzisz na swoją stronę, ale lądujesz na zupełnie innej domenie. Czasami przekierowanie pojawia się tylko po wejściu z Google, na telefonie albo przy pierwszej wizycie. - Nowy administrator witryny
W panelu WordPressa pojawia się osoba, której wcześniej tam nie było. Co ciekawe, posiada uprawnienia administratora. - Pliki WordPressa nie zgadzają się z oryginałami
Rozmiary, daty modyfikacji lub zawartość plików nie odpowiadają oficjalnym wersjom wskazywanym przez sumy kontrolne. Może to oznaczać, że część plików została zmodyfikowana lub zastąpiona. - Nieznane zadania CRON
Na stronie pojawiają się nowe zadania cykliczne, których nie dodawałeś. Mogą one uruchamiać podejrzany kod, wysyłać wiadomości albo ponownie odtwarzać usunięte pliki.
Nie masz jeszcze pewności, czy doszło do włamania? Zobacz, jak sprawdzić, czy WordPress został zainfekowany, zanim rozpoczniesz usuwanie plików i przywracanie kopii zapasowej.
Co zrobić od razu po wykryciu wirusa/problemu
Jeśli podejrzewasz infekcję, nie działaj chaotycznie.
Największy błąd to to rozpoczęcie przypadkowego usuwania plików, aktualizacji albo przywracania backupu bez sprawdzenia, skąd problem się wziął.
Najpierw wykonaj podstawowe kroki zabezpieczające.
Przeskanuj własny komputer
Zacznij od urządzenia, z którego logujesz się do WordPressa, hostingu, FTP i poczty.
Jeśli źródłem problemu jest zainfekowany komputer Twój albo pracownika, kolejne działania mogą okazać się bezcelowe - bo przy odzyskiwaniu możesz ponownie wprowadzić zagrożenie.
Zmień wszystkie hasła - nie tylko do WordPressa, ale także do
- panelu hostingu,
- FTP / SFTP,
- bazy danych (jeśli to możliwe),
- kont pocztowych,
- wszystkich kont administracyjneych w WordPress.
Dodatkowo jeśli podejrzane konta istnieją - usuń je.
Warto też od razu dołożyć dodatkową warstwę ochrony logowania.
Sprawdź backupy (kopie zapasowe) przed przywróceniem
Jeśli masz kopie zapasowe, nie zakładaj automatycznie, że są czyste.
Sprawdź:
- z kiedy pochodzą,
- czy infekcja nie istniała już w backupie,
- i czy przywrócenie nie usunie ważnych zmian, np. nowych wpisów, zamówień lub danych klientów.
Dopiero potem rozpocznij odzyskiwanie.
Sprawdź, czy wirus nie ma mechanizmu powrotu
To często pomijany krok.
Zanim uznasz problem za rozwiązany, sprawdź:
- cron jobs,
- nieznane pliki,
- reguły .htaccess,
- zadania wysyłające spam,
- oraz mechanizmy, które mogą przywracać infekcję.
Inaczej możesz usunąć wirusa tylko na chwilę. Problem może być trudniejszy, bo backdoor nie zawsze działa od razu - może pozostawać uśpiony i aktywować się później.
Sprawdź ostatnio aktualizowane wtyczki
Nie zakładaj, że problem wynika wyłącznie z zaniedbania po Twojej stronie.
Zdarzają się także ataki typu supply chain, gdzie złośliwy kod trafia do legalnych aktualizacji wtyczek po zmianie właściciela projektu. Niedawny przypadek przejęcia kilkudziesięciu pluginów WordPress pokazał, że takie ryzyko nie jest teoretyczne.
Nie każda zainfekowana wtyczka wygląda podejrzanie. Czasem wygląda dokładnie tak, jak zaufana aktualizacja.
Jak usunąć wirusa z WordPress krok po kroku.
Usunięcie wirusa rzadko kończy się na skasowaniu jednego pliku. To zwykle proces wieloetapowy. I warto działać ostrożnie, bo poza samą infekcją jest jeszcze drugie ryzyko - utrata danych.
Problem może nie dotyczyć wyłącznie plików WordPressa. Infekcja może obejmować także pliki motywu, wtyczki, katalog uploads, bazę danych, a czasem również mechanizmy przywracające malware, np. cron jobs.
Krok 1. Zacznij od podstawowych plików (core WordPress)
Najprostszy punkt startowy to porównanie plików WordPressa z czystą wersją tej samej wersji systemu.
Jeśli pliki core zostały zmodyfikowane, można je zastąpić czystymi odpowiednikami.
Szczególnej ostrożności wymagają:
wp-content/uploads- własne modyfikacje
- pliki konfiguracyjne, np.
wp-config.php
To miejsca, gdzie infekcja może się ukrywać - ale też gdzie mogą znajdować się ważne dane.
Krok 2. Sprawdź i usuń podejrzane wtyczki
Jeśli podejrzenie dotyczy konkretnej wtyczki, usuń ją - szczególnie jeśli:
- nie jest krytyczna dla działania strony,
- nie jest już rozwijana,
- została niedawno przejęta lub budzi wątpliwości,
- albo mogła być źródłem ataku.
W niektórych przypadkach sama dezaktywacja nie wystarcza.
Wtyczkę trzeba usunąć i zastąpić bezpiecznym odpowiednikiem.
Krok 3. Sprawdź bazę danych
Infekcja może nie ograniczać się do plików złośliwy kod może znajdować się także w bazie danych, np. w treści wpisów, opcjach WordPressa, przekierowaniach, podejrzanych wpisach albo mechanizmach przywracających infekcję.
To szczególnie ważne, jeśli:
- wirus wraca po czyszczeniu,
- pojawia się spam SEO,
- widzisz przekierowania mimo podmiany plików,
- albo problem występuje nadal po przywróceniu backupu.
W takiej sytuacji samo czyszczenie plików może nie wystarczyć trzeba usunąć informacje z bazy przejrzeć treści stron i zobaczyć czy nie są one zmienione aby pobierać zagrożenie na nowo.
Krok 4. Sprawdź cron i reinfekcję
Sprawdź, czy nie ma podejrzanych wpisów w cron, czyli cyklicznych zadaniach wykonywanych automatycznie przez serwer lub WordPress.
To ważne, bo właśnie tam może ukrywać się mechanizm przywracający infekcję.
Taki wpis może:
- odtwarzać usunięty malware,
- uruchamiać spam SEO,
- wysyłać mass mailing,
- albo pobierać złośliwy kod ponownie.
I to jest moment, w którym wiele osób myśli, że wirus został usunięty… a on po prostu czeka na kolejny cykl wykonania.
Krok 5. Zweryfikuj indeks Google po czyszczeniu
Usunięcie malware nie oznacza, że problem zniknął z wyszukiwarki.
Sprawdź w Google Search Console:
- jak strona wygląda po zmianach,
- czy zniknęły podejrzane podstrony,
- czy nie ma komunikatów w Security Issues,
- oraz czy indeks nie pokazuje nadal spamu.
Dodaj ważne adresy do ponownego zaindeksowania. Jeśli domena została oznaczona ostrzeżeniem lub blokadą, możesz także złożyć prośbę o ponowną weryfikację.
Dopiero wtedy można uznać proces za domknięty.
Strona działa?
To jeszcze nie znaczy, że problem zniknął.
Jednym z częstszych błędów po czyszczeniu jest założenie, że brak widocznych objawów oznacza koniec infekcji.
Nie zawsze. Żeby zmniejszyć ryzyko nawrotu, warto wykonać kilka dodatkowych kroków.
Monitoruj zmiany na stronie i użytkownikach
Obserwuj:
- nowe pliki,
- zmiany w użytkownikach,
- nowe wpisy lub podstrony,
- nieautoryzowane działania w panelu.
Warto sprawdzić także, czy nie przeoczyłeś podejrzanego konta administracyjnego.
Czasem problem nie siedzi już w plikach, tylko w uprawnieniach.
Wykonaj dodatkowy skan malware
Po czyszczeniu dobrze zrobić dodatkową weryfikację skanerem malware, np. zewnętrznym narzędziem albo wtyczką bezpieczeństwa.
To nie daje gwarancji, ale może pomóc wychwycić rzeczy, które przeoczyłeś.
Tymczasowo włącz logowanie działań w panelu
Na kilka dni warto uruchomić rejestrowanie aktywności administratorów i użytkowników.
To bywa zasobożerne, więc nie musi działać stale.
Ale po incydencie może pomóc wykryć, czy ktoś nadal wykonuje podejrzane działania od środka. To bardzo praktyczny krok.
Sprawdź ponownie cron
Tak, jeszcze raz. Jeśli wcześniej był element reinfekcji, to właśnie tu warto potwierdzić, że nie zostały podejrzane wpisy, które mogą uruchomić problem ponownie.
Poproś hosting o dodatkowy skan
To często pomijany krok. A usługodawca może widzieć rzeczy, których Ty nie widzisz:
- ruch wychodzący,
- mass mailing,
- procesy serwera,
- wykryte sygnatury malware.
To może być bardzo dobra druga opinia po czyszczeniu.
Na koniec sprawdź Google, ale nie oczekuj efektu od razu
Jeśli miałeś do czynienia ze spam SEO, możesz ponownie wykonać site:twojadomena.pl i sprawdzić, jak wyglądają wyniki.
Dlatego zamiast opierać się wyłącznie na site:, warto dodatkowo:
- sprawdzić mapę witryny i wysłać ją ponownie,
- zweryfikować, czy nie ma w niej podejrzanych adresów,
- przejrzeć tytuły i meta description innym narzędziem,
- oraz sprawdzić, czy problem nie pojawia się ponownie z czasem.
To ostatnie jest ważne. Bo po incydencie liczy się nie tylko to, czy wirus zniknął dziś. Ale czy nie wróci jutro.
Usunięcie wirusa to dopiero połowa roboty. Jeśli chcesz ograniczyć ryzyko kolejnego włamania, zobacz mój poradnik o zabezpieczaniu WordPressa po incydencie.
FAQ
Czy da się samodzielnie usunąć wirusa z WordPress?
Tak, ale zależy od rodzaju infekcji. Prostsze przypadki można usunąć samodzielnie, bardziej zaawansowane — szczególnie z reinfekcją, spam SEO lub backdoorami — często wymagają głębszej analizy.
Dlaczego wirus wraca po usunięciu?
Częstą przyczyną jest pozostawiony backdoor, wpis w cron, zainfekowana baza danych albo nieusunięte źródło ataku.
Czy przywrócenie backupu usuwa wirusa?
Nie zawsze. Jeśli kopia zapasowa powstała już po infekcji, może zawierać ten sam problem.
Jak sprawdzić, czy Google nadal widzi spam?
Sprawdź Google Search Console, sitemapę oraz wyniki site:twojadomena.pl, pamiętając, że indeks nie aktualizuje się od razu.