
🔐 WordPress zhakowano? Plan odzyskiwania witryny krok po kroku
Strona przestała się otwierać, przeglądarka krzyczy o wirusie, a Google wyrzuciło strony z wyników wyszukiwania. Pierwsza myśl, panika. Druga, „co robić natychmiast?"
Każdego dnia tysiące stron WordPress jest hakowanych. Hakerzy nie potrzebują konkretnie Pana/Pani strony, boty skanują internet w poszukiwaniu znanych luk i atakują wszystko po kolei. Niezaktualizowana wtyczka, słabe hasło lub dziura w szablonie i strona już rozsyła szkodliwy kod odwiedzającym.
Poniżej, plan odzyskiwania krok po kroku: od pierwszej reakcji do pełnego oczyszczenia i ochrony przed ponownym włamaniem. Wszystkie narzędzia są bezpłatne, instrukcje sprawdzone w praktyce.
💡 Szybki przegląd:
- Proszę zrobić backup i wyłączyć stronę
- Proszę sprawdzić komputer programem antywirusowym i skanerem startowym
- Proszę zmienić wszystkie hasła: WordPress, FTP, baza danych, panel hostingu
- Proszę skonfigurować SFTP zamiast FTP w celu szyfrowania transmisji danych
- Proszę przywrócić WordPressa z czystego backupu lub ponownie wgrać rdzeń ręcznie
- Proszę przeskanować stronę wtyczką Wordfence
- Proszę sprawdzić pliki ręcznie przez SFTP pod kątem base64 i eval
- Proszę ponownie wgrać wp-admin, wp-includes i pliki główne
- Proszę sprawdzić szablon pod kątem obcego kodu i skonfigurować firewall oraz 2FA
Dlaczego strony WordPress są hakowane

Hakerzy i script kiddies nie wybierają ofiary ręcznie. Zautomatyzowane skanery całodobowo szukają stron z niezałatanymi lukami: przestarzała wtyczka, nieaktualizowany szablon, wersja WordPressa ze znaną dziurą.
Gdy znajdą, wgrywają shella, wstrzykują szkodliwy kod do index.php lub header.php i wykorzystują stronę jako platformę do spamu, phishingu lub rozsyłania trojanów odwiedzającym. Google zauważa infekcję w ciągu kilku godzin i wyrzuca stronę z wyników wyszukiwania.
Może Pan/Pani sprawdzić, czy strona jest zhakowana, za pomocą Sucuri SiteCheck, bezpłatnego skanera online, który pokazuje malware, czarne listy i podejrzane przekierowania. Działa natychmiast i nie wymaga dostępu do panelu administracyjnego.
Pierwsze działania: backup, sprawdzenie komputera i zmiana haseł
1. Backup i wyłączenie strony
W pierwszej kolejności proszę pobrać obecny stan strony przez menedżera plików hostingu lub FTP. Tak, strona jest zainfekowana, ale backup przyda się do analizy i jako zabezpieczenie na wypadek, gdyby coś poszło nie tak podczas czyszczenia. Przy okazji proszę przełączyć stronę w tryb konserwacji lub tymczasowo zamknąć przez.htaccess, aby odwiedzający nie łapali malware, podczas gdy Pan/Pani pracuje.
2. Sprawdzenie komputera
Źródłem wycieku haseł może być Pana/Pani własny komputer. Trojan przechwytujący hasła FTP to klasyka.
- Proszę przeskanować komputer programem antywirusowym (Avast, AVG lub wbudowany Windows Defender).
- Proszę pobrać c't Notfall Windows i sprawdzić system z bootowalnego pendrive'a: skaner startowy widzi to, co ukrywa uruchomiony system operacyjny.
- Jeśli ma Pan/Pani wiedzę techniczną, proszę zainstalować Sandboxie i uruchamiać przeglądarkę w piaskownicy do czasu pełnego oczyszczenia.
3. Zmiana wszystkich haseł

Jeśli nie wie Pan/Pani, które hasła zostały skompromitowane, proszę zmienić wszystko:
- Hasła wszystkich użytkowników WordPress.
- Dostępy FTP.
- Hasła do baz danych MySQL.
- Hasło główne do panelu hostingu.
Proszę generować długie, losowe hasła i przechowywać je w menedżerze haseł. Dopóki hasła nie zostaną zmienione, atakujący zachowuje dostęp, a każde czyszczenie jest daremne.
Czyszczenie strony: skanowanie i przywracanie plików
4. Konfiguracja SFTP
Zwykły FTP przesyła hasła otwartym tekstem. Proszę włączyć dostęp SFTP lub SSH, ustawienia znajdują się w panelu hostingu. Proszę nie zapisywać haseł w kliencie FTP: jeśli komputer jest jednak zainfekowany, trojan wyciągnie zapisane dane logowania.
5. Przywracanie WordPressa z backupu
Jeśli ma Pan/Pani czysty backup sprzed włamania, proszę przywrócić stronę z niego. To szybsze niż ręczne czyszczenie. Stracił Pan/Pani część treści między backupem a atakiem? Proszę wyeksportować potrzebne wpisy z zainfekowanej bazy osobno. Większość ataków zmienia pliki, a nie bazę danych, dlatego można przywrócić tylko część plikową.
6. Skanowanie za pomocą Wordfence

Wordfence, bezpłatna wtyczka z firewallem i skanerem malware. Proszę zainstalować i uruchomić pełne skanowanie: porównuje ono pliki rdzenia, wtyczek i szablonów z oryginałem z repozytorium i pokazuje zmienione linie.
Wordfence znajduje: wstrzyknięty kod base64, konstrukcje eval, ukryte iframe i podejrzane pliki PHP. Proszę oznaczać fałszywe alarmy, aby podczas następnego skanowania nie pojawiały się ponownie.
7. Ręczne sprawdzenie przez SFTP
Skaner nie widzi wszystkiego. Proszę połączyć się przez SFTP i przejrzeć foldery naocznie:
- index.php w katalogu głównym, header.php i functions.php w szablonie, ulubione miejsca ataków.
- Proszę szukać linii z
base64ieval, konstrukcjigzinflateistr_rot13, to obfuskacja szkodliwego kodu. - Proszę zwracać uwagę na pliki o nietypowych nazwach i datach modyfikacji w środku nocy.
8. Ponowne wgranie rdzenia i wtyczek
Proszę pobrać świeżego WordPressa z wordpress.org i ponownie wgrać foldery wp-admin oraz wp-includes, a także wszystkie pliki główne, oprócz wp-config.php i.htaccess (te proszę sprawdzić osobno). Wszystkie wtyczki i szablony proszę przeinstalować od nowa z oficjalnych źródeł. Proszę nie przywracać wtyczek z backupu, proszę użyć czystych wersji.
Proszę zaktualizować wszystko do najnowszych wersji. Wtyczka, która nie była aktualizowana przez rok, to przyszła dziura, nawet jeśli teraz jest czysta.
9. Sprawdzenie szablonu pod kątem szkodliwego kodu
Po ponownym wgraniu rdzenia, kolej na szablon. Proszę sprawdzić functions.php i header.php pod kątem obcego kodu. Proszę porównać daty modyfikacji plików: aktywność poza godzinami pracy jest podejrzana. Wordfence znajdzie większość problemów, ale ręczny przegląd nie zaszkodzi.
Przy najmniejszych wątpliwościach proszę przeinstalować szablon od zera z oficjalnego źródła.
Końcowe kroki i kontakt z hostingiem
10. Środki bezpieczeństwa po oczyszczeniu
Proszę zresetować WordPress Security Keys (Salt) w wp-config.php, wygenerować nowe przez oficjalny generator. To wymusi zakończenie wszystkich aktywnych sesji, w tym sesji atakującego.
Proszę skonfigurować uwierzytelnianie dwuskładnikowe dla wszystkich użytkowników-administratorów. Wordfence obsługuje 2FA od ręki, proszę włączyć w ustawieniach wtyczki.
11. Proszę skontaktować się z hostingiem
Proszę powiadomić hosting o włamaniu. Dobry hosting pomoże w analizie logów, wskaże wektor ataku i zaproponuje dodatkowe środki ochrony na poziomie serwera. Niektóre hostingi oferują bezpłatną pomoc w czyszczeniu, proszę zapytać.
12. Proszę sprawdzić inne strony na hostingu
Ma Pan/Pani kilka stron w jednej przestrzeni hostingowej? Proszę sprawdzić każdą. Infekcja przeskakuje między stronami, jeśli hosting ich od siebie nie izoluje. Proszę przeprowadzić tę samą procedurę na sąsiednich stronach. Prawidłowo skonfigurowany hosting używa open_basedir do izolacji, proszę doprecyzować u hostingu.
Narzędzia ochrony: Wordfence i Sucuri

Do samodzielnej ochrony wystarczy zestaw: Wordfence (bezpłatny firewall + skaner) i regularne backupy. Wordfence wyłapuje brute force, skanuje pliki i blokuje podejrzany ruch na poziomie strony.
Jeśli strona jest krytyczna dla biznesu, proszę rozważyć Sucuri. To chmurowy firewall, który filtruje ataki, zanim dotrą do serwera. Sucuri obejmuje również monitoring, usuwanie malware i ochronę przed DDoS. Cennik zaczyna się od $199 rocznie. W praktyce dla projektów komercyjnych jest to uzasadnione: godzina przestoju sklepu kosztuje więcej niż roczna subskrypcja.
Anglojęzyczny tutorial pełnego cyklu odzyskiwania, z demonstracją każdego kroku w czasie rzeczywistym:
Jak nie dopuścić do ponownego włamania
Strona zhakowana raz jest celem dla ponownego ataku. Hakerzy zostawiają backdoory i jeśli nie zamknie Pan/Pani wszystkich dziur, infekcja wróci za tydzień.
- Automatyczne aktualizacje: WordPress 6.7+ potrafi automatycznie aktualizować wtyczki i szablony. Proszę włączyć w ustawieniach.
- Minimum wtyczek: Każda zbędna wtyczka to potencjalny punkt wejścia. Proszę usunąć wszystko, czego Pan/Pani nie używa.
- 2FA: Uwierzytelnianie dwuskładnikowe dla wszystkich kont administratora. Wordfence, Solid Security lub Google Authenticator.
- Backupy: Automatyczne codzienne backupy z przechowywaniem co najmniej przez 30 dni. UpdraftPlus (bezpłatnie) lub Jetpack Backup.
- Monitoring: Wordfence wysyła email w przypadku wykrycia zmienionych plików. Proszę nie ignorować.
- Hosting: Proszę wybierać hosting z izolacją kont, WAF na poziomie serwera i wsparciem dla aktualnych wersji PHP.
⁉️🤔 Często zadawane pytania
Czy można odzyskać stronę bez backupu?
Tak, ale jest to trudniejsze. Proszę ponownie wgrać świeżego WordPressa, przeinstalować wtyczki i szablony z oficjalnych źródeł, a treść wyeksportować z bazy danych. Pliki mediów proszę sprawdzić pojedynczo: w katalogu uploads mogą leżeć szkodliwe pliki PHP podszywające się pod obrazy.
Czy darmowa wersja Wordfence wystarczy do oczyszczenia?
Do skanowania i wykrywania, tak. Darmowa wersja porównuje pliki z oryginałem, znajduje malware i blokuje brute force. Płatne plany dodają aktualizacje sygnatur w czasie rzeczywistym, do jednorazowego czyszczenia jest to zbędne.
Co robić, jeśli hosting zablokował stronę?
Proszę skontaktować się z pomocą techniczną, wyjaśnić sytuację i poprosić o tymczasowy dostęp w celu oczyszczenia. Hostingi zazwyczaj idą na rękę. Po oczyszczeniu proszę poprosić o ponowną weryfikację, strona zostanie odblokowana.
Jak długo trwa czyszczenie zhakowanej strony?
Typowy przypadek: 2-4 godziny na pełny cykl (backup, sprawdzenie komputera, zmiana haseł, skanowanie, ponowne wgrywanie, konfiguracja ochrony). Ciężkie przypadki z wieloma backdoorami, do jednego dnia roboczego. Jeśli strona jest na hostingu z autoinstalatorem WordPressa, ponowne wgranie rdzenia zajmuje 10 minut.
Czy trzeba płacić za Sucuri, czy wystarczy Wordfence?
Dla osobistego bloga lub małej strony Wordfence zamyka większość typowych zagrożeń bezpłatnie. Sucuri ma sens dla sklepów internetowych, stron z przyjmowaniem płatności i projektów, gdzie godzina przestoju kosztuje pieniądze. Chmurowy firewall zmniejsza obciążenie serwera i wyłapuje ataki jeszcze na podejściu.
Co robić natychmiast: podsumowująca checklista
Odzyskiwanie zhakowanej strony WordPress sprowadza się do trzech etapów: zatrzymać infekcję, wyczyścić kod, zamknąć dziury. Backup, zabezpieczenie. Wordfence, główne narzędzie czyszczące. Zmiana haseł i 2FA, ochrona przed ponownym włamaniem.
- Jeśli strona jeszcze działa i jest dostęp do panelu administracyjnego, proszę zacząć od Wordfence. Proszę uruchomić skanowanie i działać według wyników.
- Jeśli panel administracyjny padł, proszę połączyć się przez SFTP, zrobić backup plików i bazy, ponownie wgrać czysty rdzeń WordPressa.
- Jeśli strona jest zablokowana przez hosting, najpierw proszę skontaktować się z pomocą techniczną. Bez ich udziału blokady nie da się zdjąć.
Proszę nie zwlekać. Każdej godziny zainfekowana strona traci pozycje w wyszukiwarce, a odwiedzający otrzymują szkodliwy kod. Proszę zacząć od bezpłatnego sprawdzenia w Sucuri, 30 sekund i skala problemu jest jasna.
A które narzędzie pomogło Panu/Pani po włamaniu: Wordfence, Sucuri czy ręczne czyszczenie? Proszę opowiedzieć w komentarzach.


