Bahnhofstraße 22, 52134 Herzogenrath Poniedziałek - piątek: 8:00 - 16:30 kontakt@milnersoftware.de 0176 66798849

Aktualności · Porady · · 5 min czytania

Zhakowany WordPress? Jak to rozpoznać

Obce strony w Google, przekierowania tylko na telefonie, nieznani administratorzy – sześć objawów, po których rozpoznają Państwo włamanie na WordPressa, i co zrobić od razu.

Laptop mit Programmcode auf einem hellen Schreibtisch

W skrócie: Włamania na WordPressa zwykle nie widać na pierwszy rzut oka. Zdradzają je objawy uboczne: obce podstrony w Google, przekierowania tylko na telefonie, nieznani administratorzy, pliki PHP w folderze uploads, ostrzeżenie w Search Console albo dziwne e-maile. Jeśli widzą Państwo któryś z nich: najpierw kopia zapasowa, potem zmiana haseł – i żadnego kasowania plików na ślepo.

Większość ataków na WordPressa jest zaprojektowana tak, żeby właściciel niczego nie zauważył. Strona główna wygląda normalnie. Atakujący chce jak najdłużej wykorzystywać Państwa domenę do spamu, przekierowań albo wysyłki maili. Dlatego trzeba sprawdzić to celowo.

Objaw 1: Obce podstrony w wynikach Google

Proszę wpisać w Google site:twoja-domena.de. Zobaczą Państwo podstrony, które Google zna z Państwa domeny. Na co zwrócić uwagę:

  • tytuły z japońskimi lub chińskimi znakami,
  • strony o zegarkach, lekach, hazardzie czy kredytach,
  • adresy, których na stronie nigdy nie było – często z długimi ciągami cyfr.

To tzw. „Japanese Keyword Hack”. Spamowe podstrony często pokazywane są wyłącznie robotowi Google. Gdy otworzą Państwo taki adres sami, zobaczą błąd 404 albo zwykłą stronę główną. Sam test w przeglądarce niczego więc nie dowodzi.

Objaw 2: Przekierowania tylko na telefonie albo tylko z Google

Klient mówi: „Wszedłem na Państwa stronę i nagle wylądowałem na loterii”. Państwo nie potrafią tego powtórzyć. To typowe. Złośliwy kod często przekierowuje tylko pod pewnymi warunkami:

  • tylko na smartfonach,
  • tylko gdy odwiedzający przychodzi z wyszukiwarki Google,
  • tylko przy pierwszej wizycie (potem ustawia ciasteczko),
  • nigdy dla zalogowanego administratora.

Proszę więc sprawdzić stronę na telefonie w sieci komórkowej, w oknie prywatnym i klikając wynik w Google. Sygnały od klientów warto traktować poważnie, nawet jeśli u Państwa wszystko wygląda dobrze.

Objaw 3: Nieznani administratorzy

W panelu proszę otworzyć Benutzer → Alle Benutzer (po polsku Użytkownicy → Wszyscy użytkownicy) i odfiltrować rolę „Administrator”. Każde konto, którego Państwo nie rozpoznają, to sygnał alarmowy. Atakujący lubią niewinne nazwy: „wpadmin”, „support” albo nazwisko podobne do prawdziwego pracownika.

Zdarza się też kod, który ukrywa konto administratora na liście użytkowników. Jeśli mają Państwo dostęp do WP-CLI, pewniejsze jest polecenie:

wp user list --role=administrator

Można też zajrzeć bezpośrednio do bazy danych, do tabeli wp_users (prefiks może być inny).

Objaw 4: Nowe pliki PHP w folderze uploads

W wp-content/uploads powinny leżeć zdjęcia, PDF-y i podobne pliki. Pliki PHP praktycznie nigdy nie mają tam czego szukać. Przez SSH znajdą je Państwo tak:

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

Przydatne jest też wyszukanie plików PHP zmienionych w ostatnich dniach w całym katalogu WordPressa:

find . -type f -name "*.php" -mtime -14

Przy samym FTP wystarczy posortować pliki według daty modyfikacji. Podejrzane są nazwy w stylu wp-confg.php, about.php czy losowe ciągi znaków. To, czy zmieniono pliki samego WordPressa, sprawdzi polecenie wp core verify-checksums.

Objaw 5: Ostrzeżenie w Google Search Console

Google zgłasza problemy w Search Console w sekcji Bezpieczeństwo i ręczne działania (w niemieckiej wersji: Sicherheit und manuelle Maßnahmen). Pojawiają się tam komunikaty o zhakowanej treści lub złośliwym oprogramowaniu. Właściciele usługi zwykle dostają też maila. W najgorszym przypadku Chrome pokazuje odwiedzającym czerwoną stronę ostrzegawczą – i ruch spada z dnia na dzień.

Podejrzany jest również nagły wzrost liczby zaindeksowanych stron w raporcie Strony, jeśli niczego nowego Państwo nie publikowali.

Objaw 6: Nieoczekiwane e-maile

  • Maile o resetowaniu hasła, o które Państwo nie prosili – ktoś próbuje dostać się do kont.
  • Powiadomienia o nowych użytkownikach, choć rejestracja powinna być wyłączona.
  • Zwroty (bounce) maili, których nikt z Państwa nie wysyłał – serwer może rozsyłać spam.
  • Wiadomość od hostingu o wysyłce spamu lub podejrzanych plikach.
  • Mail od WordPressa o krytycznym błędzie (tryb odzyskiwania). Zwykle to zwykły konflikt wtyczek, ale przyczyną może być też wstrzyknięty, wadliwy kod.

Co zrobić od razu

  1. Kopia zapasowa obecnego stanu. Tak, także zainfekowanej wersji – pliki i baza danych. Będzie potrzebna, żeby ustalić, co się stało i jakie dane mogły wyciec.
  2. Zmiana haseł. Wszyscy administratorzy WordPressa, do tego FTP/SFTP, panel hostingu i baza danych. Nowe hasło do bazy trzeba wpisać również w wp-config.php. Warto też wygenerować nowe klucze bezpieczeństwa (salts) w wp-config.php – wtedy wszystkie aktywne sesje zostaną wylogowane.
  3. Usunięcie obcych administratorów – ale najpierw proszę zanotować datę ich utworzenia. Pomaga to ustalić, kiedy doszło do włamania.
  4. Kontakt z hostingiem, jeśli z serwera idzie spam. Wielu hostingodawców w takiej sytuacji blokuje pakiet.
  5. Szukanie czystej kopii. Proszę sprawdzić, jak daleko wstecz sięgają backupy i czy któryś powstał przed włamaniem.

Dlaczego nie kasować plików na ślepo

Odruch jest zrozumiały: znaleziony podejrzany plik, plik skasowany. Problem w tym, że atakujący niemal zawsze zostawiają kilka tylnych furtek. Jeden widoczny plik, do tego kod w pliku motywu, ukryta wtyczka, wpis w bazie danych albo zmieniony .htaccess. Po usunięciu tylko tego, co widać, strona po kilku dniach jest znowu zainfekowana.

Do tego kasowanie na oślep potrafi położyć całą stronę i niszczy ślady, które pokazują, którędy atakujący wszedł. Bez tej wiedzy luka zostaje otwarta.

Dlaczego „wtyczka bezpieczeństwa” często nie wystarcza

Wtyczki bezpieczeństwa są przydatne, głównie jako profilaktyka. Po włamaniu mają jednak swoje granice:

  • Działają wewnątrz WordPressa. Kto ma dostęp do zapisu plików, może je zmienić albo wyłączyć.
  • Skanery rozpoznają głównie znane wzorce. Zaciemniony albo nowy kod często przechodzi niezauważony.
  • Złośliwy kod w bazie danych – w treści wpisów czy w opcjach – nie zawsze zostaje wykryty.
  • W najlepszym razie wtyczka usuwa skutki, ale nie przyczynę. A przyczyną jest zwykle nieaktualna wtyczka, nieużywany motyw albo wykradzione hasło.

Widzę to regularnie: skaner pokazuje „wszystko czyste”, a w plikach i tak siedzi furtka udająca zwykły element wtyczki.

Kiedy potrzebna jest pomoc

Jeśli Google już ostrzega, klienci są przekierowywani albo strona po czyszczeniu znów jest zainfekowana, warto zlecić gruntowne czyszczenie komuś, kto sprawdzi razem pliki, bazę danych i konfigurację serwera. Tak samo wtedy, gdy mogły wyciec dane osobowe – na przykład z formularzy kontaktowych lub sklepu. W Niemczech ma to też znaczenie z punktu widzenia RODO (DSGVO).

Mogę to zrobić dla Państwa: analiza infekcji, usunięcie wszystkich furtek, zamknięcie luki i pomoc przy ponownej weryfikacji w Google. Szczegóły i ceny (od 490 €) znajdą Państwo na stronie Zhakowany WordPress – usuwanie malware. Żeby sytuacja się nie powtórzyła, mogę też na stałe zająć się aktualizacjami, kopiami i kontrolą strony: opieka nad WordPressem za 129 € miesięcznie.

Autor: Przemysław Milner

Pozostałe wpisy

Przemysław Milner Porady

WordPress nie jest zły – tylko źle zbudowany

Wolny, dziurawy, ciągle się psuje? Zwykle winny nie jest WordPress, tylko page buildery, nadmiar wtyczek i motywy „multipurpose”. Co zmienia własny motyw.

Czytaj dalej