Strona główna  /  Bezpieczeństwo  /  Jak wyczyścić zhakowaną stronę WordPress?

Ekran komputera z czystym kodem i lupa symbolizujące bezpieczną oraz naprawioną witrynę WordPress.

Jak wyczyścić zhakowaną stronę WordPress?

Zhakowana strona WordPress wymaga szybkiego, ale uporządkowanego działania. Najpierw odizoluj witrynę i zabezpiecz kopię obecnego stanu, potem znajdź źródło infekcji, usuń backdoory, odbuduj pliki z czystych źródeł, zmień dane dostępowe i dopiero na końcu zgłoś naprawę w Google Search Console. Chaotyczne kasowanie plików albo samo przywrócenie starego backupu często kończy się utratą danych i nawrotem ataku.

Jak rozpoznać, że strona WordPress jest zainfekowana?

Włamanie nie zawsze powoduje biały ekran lub całkowitą awarię. Złośliwy kod może działać tylko dla użytkowników mobilnych, osób wchodzących z Google albo robotów wyszukiwarek. Taka cicha infekcja przez długi czas pozostaje niewidoczna właścicielowi strony.

Objaw Prawdopodobna przyczyna Pilność
Przekierowania na obce strony Złośliwy kod w plikach, bazie danych lub regułach .htaccess Natychmiast
Obce podstrony i frazy w Google Spam SEO, wstrzyknięte treści albo cloaker Wysoka
Nieznane konta administratorów Przejęcie panelu WordPress lub dodanie użytkownika przez backdoor Natychmiast
Ostrzeżenie przeglądarki lub Search Console Malware, phishing albo niebezpieczne przekierowania Natychmiast
Nagły wzrost obciążenia serwera lub wysyłka spamu Webshell, przejęcie konta hostingowego albo złośliwe zadania cron Natychmiast

Sprawdź Google Search Console, szczególnie raport Problemy dotyczące bezpieczeństwa. Przejrzyj też listę użytkowników WordPressa, ostatnio zmieniane pliki i wyniki wyszukiwania dla zapytania site:twojadomena.pl. Brak widocznych objawów nie oznacza, że strona jest czysta.

Co zrobić w pierwszej godzinie?

Najpierw zatrzymaj dalsze szkody. Nie zaczynaj od instalowania kolejnych wtyczek ani usuwania plików „na oko”. W przypadku wielu stron na jednym koncie hostingowym potraktuj całe konto jako potencjalnie zagrożone, ponieważ atakujący może przechodzić między instalacjami.

Nie zmieniaj haseł przed odcięciem aktywnego dostępu. Jeśli na serwerze działa backdoor, nowe hasło może zostać przechwycone albo napastnik po prostu użyje pozostawionej furtki.

W pierwszej godzinie wykonaj następujące działania:

  • Włącz tryb konserwacji albo zewnętrzną stronę techniczną, aby użytkownicy nie trafiali na malware i fałszywe formularze.
  • Wykonaj pełną kopię plików i bazy danych, nawet jeśli kopia będzie zawierała infekcję.
  • Zapisz objawy, datę ich zauważenia, zrzuty ekranu i komunikaty z hostingu lub Search Console.
  • Skontaktuj się z hostingiem i zapytaj o logi, zakres infekcji oraz kopie wykonane przed pojawieniem się problemu.
  • Sprawdź wszystkie strony znajdujące się na tym samym koncie, a nie tylko tę, na której zauważyłeś problem.

Zainfekowaną kopię oznacz wyraźnie i przechowuj oddzielnie od kopii przeznaczonej do ewentualnego przywrócenia. Może być potrzebna do analizy, ale nie powinna wrócić na produkcję.

Jak wyczyścić zhakowaną stronę WordPress?

Zakres prac zależy od tego, czy masz pewny, czysty backup. Przywrócenie kopii sprzed włamania bywa szybsze niż ręczne czyszczenie, ale nie rozwiązuje problemu, jeśli nie usuniesz luki i nie sprawdzisz całego konta hostingowego.

Nie przywracaj kopii tylko dlatego, że jest najnowsza. Mogła powstać już po infekcji. Ustal, kiedy pojawiły się pierwsze objawy, i wybierz wersję sprzed tego momentu. Po przywróceniu natychmiast zaktualizuj oprogramowanie oraz wykonaj rotację danych dostępowych.

Procedura czyszczenia krok po kroku

  1. Ustal zakres incydentu – sprawdź wszystkie instalacje WordPress, katalogi na koncie, użytkowników, konta FTP i SFTP oraz aktywne zadania cron.
  2. Porównaj pliki z czystymi źródłami – pobierz rdzeń WordPressa z WordPress.org, a wtyczki i motyw z oficjalnych, zaufanych źródeł. Nie nadpisuj bezmyślnie plików, które zawierają własne ustawienia.
  3. Odbuduj pliki rdzenia – zastąp katalogi rdzenia świeżymi plikami. Szczególnie dokładnie zweryfikuj wp-config.php, ponieważ zawiera dane bazy i klucze bezpieczeństwa.
  4. Sprawdź wtyczki i motyw – usuń rozszerzenia nieużywane, nieznane i pobrane z nieoficjalnych źródeł. Własne modyfikacje kodu przeanalizuj przed zastąpieniem.
  5. Przejrzyj katalog uploads – w folderze przeznaczonym na multimedia nie powinny znajdować się wykonywalne pliki PHP. Każdy taki plik wymaga sprawdzenia, choć nie należy kasować go bez zachowania kopii.
  6. Przeanalizuj bazę danych – sprawdź ustawienia witryny, treści, użytkowników i pola zawierające obce skrypty, przekierowania lub spamerskie linki.
  7. Usuń źródło dostępu – zidentyfikuj podatną wtyczkę, słabe konto, nieaktualny motyw, webshell albo inne miejsce, przez które atakujący mógł wrócić.
  8. Odbuduj środowisko z czystych elementów – dopiero po oczyszczeniu przywróć zweryfikowane treści i multimedia, a następnie sprawdź działanie strony.

W przypadku poważnej infekcji bezpieczniejsza może być pełna odbudowa konta z czystych plików niż selektywne kasowanie podejrzanych fragmentów. Dotyczy to zwłaszcza sytuacji, w której znaleziono webshell, nieznane zadania cron albo ślady dostępu do poziomu konta hostingowego.

Wtyczka bezpieczeństwa, na przykład Wordfence, jest narzędziem pomocniczym, a nie dowodem oczyszczenia strony. Skaner może wykryć znane sygnatury i zmienione pliki, ale nie musi zobaczyć backdoora poza katalogiem WordPressa, nietypowej modyfikacji bazy ani kodu ukrytego w zadaniu systemowym.

Nie usuwaj podejrzanych plików bez kopii i weryfikacji. Najpierw przenieś je do kwarantanny lub zmień ich nazwę, jeśli pozwala na to sytuacja, a następnie sprawdź ich pochodzenie. Pomyłka może uszkodzić stronę, a zbyt pochopne kasowanie utrudni ustalenie sposobu włamania.

Gdzie szukać backdoorów?

Backdoor to ukryty mechanizm, który pozwala napastnikowi ponownie wejść na stronę po usunięciu widocznych objawów. Może przypominać zwykły plik PHP, fragment zakodowanego kodu albo legalną wtyczkę. To właśnie pozostawiony backdoor często odpowiada za nawrót infekcji.

Podczas analizy sprawdź przede wszystkim:

  • wp-content/mu-plugins/ – wtyczki must-use są ładowane automatycznie i zwykle nie pojawiają się na standardowej liście w panelu.
  • wp-content/uploads/ – pliki PHP w katalogu multimediów są szczególnie podejrzane, ponieważ ten folder powinien przechowywać obrazy, dokumenty i podobne zasoby.
  • Pliki podszywające się pod rdzeń – zwróć uwagę na nietypowe nazwy, duplikaty legalnych plików i pliki dodane w miejscach, w których nie powinny występować.
  • Zadania cron – złośliwe zadanie może pobierać kod lub odtwarzać usunięte pliki po określonym czasie.
  • Bazę danych i plik .htaccess – przekierowania, obce adresy, zmienione ustawienia i ukryte skrypty mogą pozostać mimo wymiany plików.
  • Stare archiwa i kopie na koncie – zapomniany backup z malware może ponownie zainfekować stronę po przypadkowym przywróceniu.

Webshell jest szczególnie groźnym rodzajem backdoora. Daje możliwość przeglądania, modyfikowania i uruchamiania plików z poziomu przeglądarki, bez logowania do panelu WordPressa. Z kolei cloaker może pokazywać normalną treść ludziom, a spam SEO robotom Google, dlatego zwykłe wejście na stronę nie zawsze ujawni problem.

Co zrobić po oczyszczeniu strony?

Po usunięciu złośliwego kodu zmień dane dostępowe z czystego urządzenia. Obejmuje to panel WordPress, hosting, FTP lub SFTP, bazę danych, skrzynki powiązane ze stroną oraz usługi zewnętrzne, takie jak CDN. Wygeneruj także nowe klucze bezpieczeństwa WordPress w wp-config.php, aby unieważnić istniejące sesje. Jeśli strona korzysta z tokenów API, je również trzeba odwołać i wygenerować ponownie.

Po naprawie przejdź w Google Search Console do raportu Problemy dotyczące bezpieczeństwa. Sprawdź, czy wszystkie wskazane problemy zostały usunięte, a następnie wybierz opcję poproszenia o sprawdzenie. W opisie podaj zakres wykonanych działań: wymianę plików, usunięcie złośliwego kodu, zmianę haseł i aktualizację podatnych komponentów. Ocena może potrwać od kilku dni do dłużej, zależnie od rodzaju problemu.

Spamerskie adresy, które nie powinny już istnieć, powinny zwracać błąd 404 lub 410. Narzędzie usuwania adresów w Search Console może przyspieszyć ich czasowe ukrycie, ale nie zastępuje usunięcia przyczyny ani prawidłowej odpowiedzi serwera.

Checklista zabezpieczeń po naprawie

Po przywróceniu działania strony sprawdź, czy wdrożyłeś wszystkie poniższe zabezpieczenia:

  • Włącz 2FA dla administratorów WordPressa i panelu hostingowego.
  • Zaktualizuj WordPress, wtyczki, motyw i PHP do wspieranych wersji, po sprawdzeniu zgodności.
  • Usuń nieużywane wtyczki, motywy, konta użytkowników i narzędzia typu menedżer plików.
  • Wyłącz edytor plików w panelu, na przykład przez ustawienie define('DISALLOW_FILE_EDIT', true); w wp-config.php.
  • Przechowuj automatyczne kopie poza serwerem produkcyjnym i regularnie sprawdzaj, czy da się je odtworzyć.
  • Włącz monitoring zmian plików, nowych administratorów, logowań i komunikatów w Search Console.
  • Rozważ izolację stron na osobnych kontach lub przynajmniej oddzielnych użytkownikach systemowych.

Jeśli na jednym koncie działa wiele stron, wyczyść je w tym samym oknie czasowym. Pozostawienie jednej zainfekowanej instalacji może umożliwić ponowne zaatakowanie pozostałych.

Kiedy potrzebna jest pomoc specjalisty?

Skorzystaj z pomocy osoby zajmującej się bezpieczeństwem WordPressa, gdy nie masz kopii sprzed infekcji, strona przechowuje dane klientów, znaleziono webshell lub podejrzewasz przejęcie całego konta hostingowego. Dotyczy to także sytuacji, w której infekcja wraca mimo wymiany plików i haseł.

Przy złożonym incydencie sama aktualizacja, instalacja skanera lub przywrócenie backupu może tylko usunąć objawy. Potrzebna jest analiza plików, bazy, logów i wszystkich punktów dostępu, a czasem pełna odbudowa środowiska.

Bezpieczeństwo WordPressa nie kończy się w chwili, gdy strona znów się wyświetla. Stałe aktualizacje, kopie poza serwerem, monitoring i okresowa kontrola dostępów zmniejszają ryzyko kolejnego włamania i pozwalają szybciej odzyskać witrynę, jeśli incydent jednak się wydarzy.

Redakcja wpinternals.pl

WordPressa znamy od kuchni – budujemy na nim strony, migrujemy serwisy i optymalizujemy ich wydajność. Piszemy o wtyczkach, motywach, hostingu i bezpieczeństwie tak, by poradzili sobie także początkujący. Dbamy o to, by Twoja strona była szybka, stabilna i bezpieczna.

Może Cię również zainteresować

Potrzebujesz więcej informacji?