
19 wrz WordPress przekierowuje na obce strony – co zrobić?
WordPress przekierowuje na obce strony — co zrobić?
Jeżeli WordPress nagle przekierowuje użytkowników na reklamy, podejrzane domeny, fałszywe konkursy albo strony, których nigdy nie dodawałeś, nie traktowałbym tego jako drobnej usterki przeglądarki, bo w praktyce bardzo często jest to objaw infekcji, złośliwego kodu albo pozostawionego po włamaniu mechanizmu, który nadal ma dostęp do strony.

W skrócie
Jeżeli WordPress przekierowuje na obce strony, najważniejsze jest nie samo usunięcie widocznego przekierowania, ale znalezienie miejsca, z którego zostało ono wprowadzone, sprawdzenie plików, bazy danych, kont administratorów i możliwych backdoorów, a dopiero później zabezpieczenie strony tak, żeby infekcja nie wróciła.
Kiedy trafia do mnie WordPress, który przekierowuje na obce strony, pierwszą rzeczą, której staram się nie robić, jest szukanie jednego „winnego pliku” z założeniem, że po jego skasowaniu temat będzie zamknięty, ponieważ właśnie takie podejście najczęściej kończy się pozorną naprawą, po której przez kilka godzin albo kilka dni wszystko wygląda dobrze, a później przekierowania pojawiają się znowu i właściciel strony ma wrażenie, że wirus jest niezniszczalny. W rzeczywistości problem zwykle polega na tym, że widoczne przekierowanie jest tylko jednym z objawów, a właściwy mechanizm utrzymujący dostęp do strony znajduje się gdzie indziej — czasem w pliku motywu, czasem we wtyczce, czasem w bazie danych, a czasem w dodatkowym pliku PHP, który na pierwszy rzut oka wygląda wystarczająco niewinnie, żeby go przeoczyć.
Druga rzecz, która potrafi bardzo zmylić właściciela strony, to sposób działania samej infekcji, bo złośliwy kod wcale nie musi przekierowywać każdego użytkownika przy każdym wejściu. Spotykam sytuacje, w których właściciel otwiera swoją stronę z komputera, widzi ją poprawnie i zakłada, że wszystko jest w porządku, podczas gdy użytkownik wchodzący z telefonu, z wyszukiwarki Google albo z nowego adresu IP zostaje po kilku sekundach przeniesiony na zupełnie inną domenę. To jest jeden z powodów, dla których sam fakt, że „u mnie działa”, nie jest jeszcze dowodem, że WordPress jest czysty.
Jak wygląda przekierowanie po infekcji WordPressa?
Najbardziej oczywisty scenariusz jest taki, że użytkownik wchodzi na stronę i od razu trafia na obcą domenę, ale w praktyce widzę też znacznie bardziej podstępne warianty, w których przekierowanie pojawia się dopiero po kliknięciu w dowolny link, tylko na urządzeniu mobilnym, tylko przy pierwszej wizycie albo wyłącznie wtedy, gdy użytkownik przyszedł z Google. Dzięki temu administrator może przez długi czas nie zauważyć problemu, a strona w tym samym czasie traci zaufanie użytkowników, ruch organiczny i w skrajnym przypadku może zostać oznaczona przez przeglądarkę lub wyszukiwarkę jako niebezpieczna.
- wejście na stronę przenosi na nieznaną domenę lub reklamę,
- przekierowanie występuje tylko z telefonu albo tylko z Google,
- pojawiają się nowe konta administratorów, których nikt nie tworzył,
- w plikach strony znajdują się nieznane skrypty PHP lub JavaScript,
- w Google zaczynają pojawiać się spamowe podstrony, których nie ma w panelu WordPressa,
- po „wyczyszczeniu” problem wraca po kilku godzinach albo dniach.
Ważne
Nie każda infekcja daje widoczne objawy administratorowi. Złośliwy kod może sprawdzać urządzenie, źródło ruchu, adres IP, pliki cookie albo to, czy użytkownik jest zalogowany do WordPressa, dlatego stronę trzeba weryfikować z kilku perspektyw, a nie tylko po wejściu na stronę główną z własnego komputera.
Co robię, kiedy WordPress przekierowuje na obce strony?
Zaczynam od zabezpieczenia obecnego stanu strony, nawet jeśli wiem, że jest zainfekowana, ponieważ kopia plików i bazy danych pozwala później porównywać zmiany, sprawdzić daty modyfikacji i wrócić do elementów, które podczas czyszczenia okażą się istotne. Dopiero później przechodzę do analizy, w której interesuje mnie nie tylko to, gdzie znajduje się sam kod odpowiedzialny za przekierowanie, ale również którędy napastnik mógł wejść, co zmienił i czy zostawił sobie możliwość ponownego dostępu.
1. Sprawdzam pliki WordPressa, motywu i wtyczek
Najłatwiej byłoby szukać wyłącznie plików zmodyfikowanych „wczoraj” i usunąć wszystko, co wygląda dziwnie, ale to nie zawsze działa, bo część infekcji potrafi zmieniać daty plików albo umieszczać kod w miejscach, które na pierwszy rzut oka wydają się prawidłowe. Dlatego patrzę zarówno na pliki rdzenia WordPressa, jak i na katalogi aktywnych oraz nieaktywnych wtyczek i motywów, sprawdzam nietypowe pliki PHP w miejscach, w których zwykle nie powinny się znajdować, i zwracam szczególną uwagę na fragmenty kodu, które są zaciemnione, zakodowane albo próbują dynamicznie pobierać dodatkową zawartość z zewnętrznych serwerów.
2. Sprawdzam bazę danych
To ważny etap, o którym łatwo zapomnieć, ponieważ przekierowanie nie musi znajdować się w pliku na serwerze. Złośliwy JavaScript może zostać wstrzyknięty do treści wpisu, widgetu, ustawień motywu, opcji WordPressa albo innego pola w bazie danych, a wtedy podmiana plików na czyste nie rozwiąże problemu. Jeżeli po takim „czyszczeniu” strona nadal zachowuje się podejrzanie, baza danych jest jednym z pierwszych miejsc, do których wracam.
3. Sprawdzam konta administratorów i dostęp do serwera
Jeżeli ktoś miał dostęp do panelu administratora, FTP, hostingu albo poczty używanej do resetowania hasła, samo usunięcie złośliwego kodu nie wystarczy, bo osoba lub automat odpowiedzialny za włamanie może po prostu wejść ponownie. Dlatego sprawdzam listę użytkowników, usuwam nieznane konta, zmieniam hasła, a tam, gdzie jest to możliwe, dokładam dodatkowe zabezpieczenia logowania i ograniczam elementy WordPressa, które nie są potrzebne na konkretnej stronie.
Dlaczego przekierowanie pojawia się tylko z Google albo tylko na telefonie?
To zachowanie wcale nie jest przypadkowe. Z perspektywy osoby, która umieszcza złośliwy kod na stronie, znacznie korzystniejsze jest przekierowanie części użytkowników niż wszystkich, ponieważ właściciel witryny dłużej niczego nie zauważa, a sam mechanizm ma większą szansę działać przez wiele dni. Kod może więc sprawdzać nagłówek przeglądarki, referer informujący, że użytkownik przyszedł z wyszukiwarki, typ urządzenia albo wcześniejsze pliki cookie i dopiero wtedy uruchamiać przekierowanie. Z tego powodu podczas diagnozy nie ograniczam się do jednego testu, ale próbuję odtworzyć różne scenariusze wejścia na stronę.
Jeżeli WordPress przekierowuje tylko użytkowników z Google, problem jest dodatkowo niebezpieczny z punktu widzenia SEO, bo to właśnie osoby, które powinny trafić na ofertę, artykuł lub produkt z wyników wyszukiwania, zamiast tego lądują na spamowej stronie i bardzo szybko wracają do Google. Nawet bez wchodzenia w dyskusję o pojedynczych sygnałach rankingowych jest to po prostu fatalne doświadczenie użytkownika, a jeżeli wyszukiwarka wykryje złośliwe zachowanie lub spam, może ograniczyć widoczność strony albo wyświetlić ostrzeżenie bezpieczeństwa.
Dlaczego wirus wraca po usunięciu przekierowania?
Jeżeli infekcja wraca, zazwyczaj oznacza to, że usunięty został skutek, a nie cały mechanizm ataku. Może istnieć dodatkowy backdoor, zainfekowana wtyczka może odtwarzać usunięty kod, w bazie danych może pozostać wpis uruchamiający skrypt, a dane dostępowe mogą nadal znajdować się w rękach osoby, która wcześniej weszła na stronę. Czasem problemem jest też pozostawiona stara instalacja WordPressa w podkatalogu, zapomniany staging albo nieaktualna kopia strony działająca pod inną domeną, która korzysta z tego samego konta hostingowego i daje możliwość ponownego zainfekowania głównego serwisu.
Dlatego po usunięciu podejrzanych elementów nie kończę pracy od razu, tylko sprawdzam stronę ponownie, aktualizuję WordPressa, motywy i wtyczki, usuwam nieużywane komponenty, zmieniam dane dostępowe oraz obserwuję, czy na serwerze nie pojawiają się ponownie pliki, których przed chwilą nie było. Właśnie ten etap decyduje o tym, czy czyszczenie jest rzeczywistą naprawą, czy tylko chwilowym wyciszeniem objawów.
Czy Wordfence albo inny skaner wystarczy do usunięcia wirusa?
Używam skanerów jako jednego z narzędzi, ale nie traktuję wyniku jednego skanu jako ostatecznej odpowiedzi na pytanie, czy strona jest czysta. Wordfence i podobne rozwiązania są bardzo przydatne przy wykrywaniu zmian w znanych plikach, podejrzanych sygnatur i części złośliwego kodu, natomiast nie każdy backdoor wygląda tak samo, nie każda zmiana znajduje się w miejscu objętym prostym porównaniem, a złośliwy kod może być celowo zmodyfikowany tak, żeby uniknąć oczywistej detekcji. Dlatego dobry skan potrafi znacznie przyspieszyć pracę, ale nadal trzeba rozumieć, co zostało znalezione i czego skaner mógł nie zobaczyć.
Czy przekierowania po włamaniu mogą zaszkodzić SEO?
Tak, i właśnie dlatego nie odkładałbym takiego problemu na później. Jeżeli bot wyszukiwarki widzi inne treści niż właściciel strony, jeżeli pojawiają się spamowe adresy URL, jeżeli część użytkowników jest kierowana na zewnętrzne domeny albo Google oznaczy serwis jako potencjalnie niebezpieczny, skutki mogą wyjść daleko poza samą kwestię techniczną. Po oczyszczeniu strony sprawdzam więc nie tylko to, czy przekierowanie zniknęło, ale również czy w indeksie nie zostały niechciane podstrony, czy nie zmieniły się pliki odpowiedzialne za indeksowanie, czy mapa witryny wygląda prawidłowo i czy w Google Search Console nie pojawiły się ostrzeżenia, których wcześniej nie było.
Co warto zrobić po wyczyszczeniu WordPressa?
Samo „już nie przekierowuje” jest dla mnie dopiero połową sukcesu, bo po czyszczeniu trzeba jeszcze ograniczyć ryzyko powtórki. Zmieniam hasła, aktualizuję komponenty, usuwam nieużywane konta i wtyczki, sprawdzam uprawnienia plików oraz konfigurację hostingu, a jeżeli strona wcześniej była wielokrotnie infekowana, szukam też problemu szerszego niż sama instalacja WordPressa. W praktyce bywa, że po kilku włamaniach właściciel strony skupia się na kolejnych „wirusach”, podczas gdy wspólnym mianownikiem jest bardzo stare środowisko, słabe hasło, porzucona wtyczka albo hosting, na którym wiele stron działa na jednym koncie bez sensownej separacji.
Najczęstsze pytania
Dlaczego WordPress przekierowuje na obce strony tylko czasami?
Złośliwy kod może uruchamiać się tylko dla określonych urządzeń, źródeł ruchu, adresów IP albo nowych użytkowników. Dzięki temu infekcja jest trudniejsza do zauważenia przez administratora strony.
Czy wystarczy przywrócić kopię zapasową WordPressa?
Jeżeli masz pewną kopię wykonaną przed infekcją, może to być część rozwiązania, ale nadal trzeba ustalić, w jaki sposób doszło do włamania, bo bez usunięcia przyczyny przywrócona strona może zostać zainfekowana ponownie.
Czy trzeba od razu zmieniać hosting?
Nie zawsze. Najpierw warto ustalić, czy źródłem problemu była sama instalacja WordPressa, przejęte dane dostępowe czy środowisko serwera. Zmiana hostingu ma sens wtedy, gdy istnieją konkretne przesłanki, że obecne środowisko zwiększa ryzyko albo utrudnia prawidłowe zabezpieczenie strony.
Czy zainfekowana strona może wyglądać normalnie dla administratora?
Tak. To dość częste, ponieważ złośliwy kod może celowo pomijać zalogowanych użytkowników albo uruchamiać przekierowanie tylko w określonych warunkach.
WordPress przekierowuje użytkowników albo podejrzewasz infekcję?
Jeżeli nie chcesz metodą prób i błędów usuwać kolejnych plików i czekać, czy problem wróci, mogę sprawdzić stronę, znaleźć źródło infekcji, usunąć złośliwy kod i zabezpieczyć WordPressa po ataku.
Brak komentarzy