Jak wyczyścić zhakowaną witrynę WordPress lub blog?

Opublikowany: 2021-02-16

Niezależnie od tego, czy Twoja witryna WordPress została zhakowana i obecnie kontrolujesz szkody, czy też przygotowujesz się na najgorsze, ten artykuł poprowadzi Cię przez proces czyszczenia zhakowanej witryny WordPress. Proces jest udokumentowany w łatwym do zrozumienia formacie krok po kroku, aby pomóc Ci osiągnąć następujące cele:

  • Odzyskaj kontrolę nad swoją witryną WordPress
  • Zidentyfikuj prawdopodobne źródło infekcji
  • Znajdź infekcję i złośliwy kod
  • Usuń wszelkie złośliwe oprogramowanie, backdoory i powłoki internetowe
  • Usuń swoją domenę z wszelkich list złośliwego oprogramowania, takich jak baza danych Google Safe Browsing
  • Zapobiegaj nawrotom

Czy Twoja zhakowana witryna WordPress jest naprawdę zhakowana?

Zhakowana witryna WordPress

Czasami jest całkiem jasne, kiedy witryna WordPress została zhakowana, na przykład, jeśli Twoja witryna została zniszczona. W innych przypadkach może nie być tak jednoznaczny. Przed rozpoczęciem procesu czyszczenia WordPressa upewnij się, że Twoja witryna WordPress rzeczywiście została zhakowana i nie jest to niepowiązany problem techniczny. Przeczytaj artykuł, jak sprawdzić, czy mój WordPress został zhakowany, aby ustalić, czy Twoja witryna lub blog został zhakowany, czy nie.

Odzyskaj kontrolę

Odzyskiwanie kontroli zaczyna się w zależności od tego, ile dostępu utraciłeś w wyniku ataku. Na przykład, po uzyskaniu dostępu do serwera, osoba atakująca może zmienić dane uwierzytelniające, aby zablokować dostęp do serwera uprawnionym użytkownikom, lub może zmienić hasło administratora WordPress, aby uniemożliwić administratorowi WordPress zalogowanie się.

Chociaż będzie to w dużej mierze zależeć od Twojej konfiguracji, Twój dostawca usług hostingowych najprawdopodobniej będzie w stanie pomóc w odzyskaniu dostępu do współdzielonego środowiska hostingowego lub wirtualnego serwera prywatnego (VPS) obsługującego Twoją witrynę. Jeśli utraciłeś dostęp do administratora WordPress, postępuj zgodnie z oficjalnym przewodnikiem WordPress dotyczącym resetowania hasła administratora.

Robienie kopii zapasowej

Nawet jeśli masz rozwiązanie do tworzenia kopii zapasowych WordPress, wykonaj kopię zapasową bieżącej witryny WordPress. Wykonanie kopii zapasowej WordPress na tym etapie jest bardzo ważne z wielu powodów, w tym z poniższych.

  • Backup pozwala na późniejszą analizę infekcji,
  • Niektórzy dostawcy hostingu mogą uciekać się do usuwania zaatakowanych stron internetowych jako środka ostrożności, aby zapobiec rozprzestrzenianiu się złośliwego oprogramowania lub spamu — w zależności od dostawcy hostingu może się to zdarzyć bez ostrzeżenia,
  • Jeśli nie masz obecnie strategii tworzenia kopii zapasowych, możesz odzyskać część zawartości witryny z tej kopii zapasowej, zanim sytuacja się pogorszy.

Dodatkowo, jeśli korzystasz z WordPressa na wirtualnym serwerze prywatnym (VPS), rozważ wykonanie migawki całej maszyny wirtualnej, jeśli to możliwe (pamiętaj, że zwykle wiąże się to z dodatkowymi kosztami). Podczas robienia zrzutów pamiętaj, że jeśli używasz zewnętrznych woluminów do obsługi instalacji WordPressa (np. sieciowa pamięć masowa), powinieneś również wykonać kopię wszelkich woluminów, które przechowują główną instalację WordPressa, wp-content , bazę danych MySQL , a także wszelkie dzienniki dostępu do serwera WWW i błędów.

Przywracanie z kopii zapasowej

Jeśli masz już wdrożoną strategię tworzenia kopii zapasowych, nadszedł czas, aby wprowadzić ją w życie. Zakładając, że masz dostęp do ostatniej kopii zapasowej, przywracanie może być najszybszym sposobem na powrót do trybu online – nie popełnij jednak błędu, chociaż przywracanie z kopii zapasowej witryny WordPress może usunąć infekcję i umożliwić ponowne działanie, nie w pierwszej kolejności rozwiązać, dlaczego zostałeś zhakowany.

Jeśli Twoja witryna WordPress została zhakowana w wyniku wykorzystanej luki w zabezpieczeniach lub luki w zabezpieczeniach, kolejnym ważnym krokiem jest ustalenie, co się stało (jeśli to możliwe).

Co zrobić, jeśli nie mam kopii zapasowej lub nie mogę pomyślnie przywrócić kopii zapasowej?

Jeśli nie masz kopii zapasowej, możesz pomyślnie przywrócić, w zależności od powagi sytuacji możesz przełączyć witrynę WordPress w tryb konserwacji, aby umożliwić pracę nad przywróceniem witryny, jednocześnie informując odwiedzających, że powinni sprawdzić ją później. W międzyczasie postępuj zgodnie z resztą tego przewodnika. Przełączając witrynę w tryb konserwacji, za pomocą funkcji wp_maintenance() 1 funkcja, WordPress zwróci kod stanu 503 HTTP. Stan 503 wskazuje Google i innym robotom, że coś poszło nie tak na stronie i powinny sprawdzić później.

Odpowiedź HTTP 503 jest ważna dla SEO, ponieważ zapobiegnie uszkodzeniu rankingu wyszukiwania w przypadku tymczasowego wyłączenia witryny. Aby uzyskać więcej informacji na temat kodu statusu HTTP 503 i jego znaczenia w SEO, zapoznaj się z artykułem Yoast na ten temat.

Zidentyfikuj, w jaki sposób WordPress został zhakowany

Po utworzeniu kopii zapasowej witryny następną rzeczą w programie jest uzyskanie jak najwięcej informacji o tym, co się stało, czyli o słabości bezpieczeństwa, którą wykorzystał atakujący, aby uzyskać dostęp do Twojej instalacji WordPressa.

Sprawdzanie logów aktywności, serwera WWW i logów serwera FTP

Jeśli prowadzisz dziennik aktywności WordPress, może to być najlepsze miejsce do rozpoczęcia analizy. Sprawdź, czy możesz zidentyfikować podejrzane zachowanie. Poszukaj zdarzeń nowo utworzonych użytkowników lub zmian haseł użytkowników. Sprawdź również, czy nie zostały zmodyfikowane jakieś WordPress, wtyczki lub pliki motywów.

Powinieneś także spojrzeć na serwer WWW, serwer FTP i pliki dziennika systemu operacyjnego pod kątem nietypowego lub podejrzanego zachowania. Chociaż może to być nieco przytłaczający proces, warto zacząć od sprawdzenia, czy z jednego adresu IP nie pochodzi dziwny ruch. Możesz to zrobić za pomocą różnych skryptów powłoki narzędziowej i jednego liniowca. Aby uzyskać podgląd w czasie rzeczywistym dzienników serwera WWW, GoAccess może się przydać.

Nieużywane i przestarzałe wtyczki i motywy WordPress

Sprawdź listę zainstalowanych wtyczek, zarówno z pulpitu WordPress, jak i w katalogu /wp-content/plugins/ . Czy używane są wszystkie wtyczki WordPress? Czy wszystkie są aktualne? Sprawdź również motywy i katalog motywów /wp-content/themes/ . Powinieneś mieć zainstalowany tylko jeden motyw, ten, którego używasz. Jeśli używasz motywu potomnego, będziesz mieć dwa katalogi.

Niewykorzystany kod i instalacje WordPress

Pozostały i niewykorzystany kod to kolejny powszechny problem. Czasami programiści i administratorzy systemu aktualizują pliki bezpośrednio na serwerze i wykonują kopię zapasową oryginalnego pliku z rozszerzeniem takim jak .old , .orig lub .bak . Atakujący często wykorzystują tę złą praktykę, a narzędzia do wyszukiwania takich plików kopii zapasowych są powszechnie i łatwo dostępne.

Sposób, w jaki to działa, polega na tym, że atakujący próbuje uzyskać dostęp do plików takich jak index.php.old . Zazwyczaj pliki .php są skonfigurowane do wykonywania przez interpreter PHP, ale dodanie .old (lub innego) rozszerzenia na końcu pliku powoduje, że serwer sieciowy udostępnia plik użytkownikowi. Po prostu będąc w stanie odgadnąć nazwę pliku kopii zapasowej, osoba atakująca może być w stanie pobrać kod źródłowy, który może zawierać poufne informacje, lub może dostarczyć osobie atakującej wskazówki, co wykorzystać.

Podobnym problemem jest zachowanie starych instalacji WordPressa. Kiedy administratorzy przebudowują swoje witryny, czasami zostawiają kopie starych instalacji WordPressa w podkatalogu /old/ . Te stare instalacje WordPressa byłyby zazwyczaj nadal dostępne przez Internet, a zatem były dobrym celem dla atakującego, który mógłby wykorzystać znane luki w starych wersjach WordPressa wraz z wszelkimi wtyczkami.

Zaleca się usunięcie nieużywanego kodu, instalacji WordPress, wtyczek WordPress, motywów WordPress i wszelkich innych starych lub nieużywanych plików (pamiętaj, że zawsze możesz skorzystać z kopii zapasowej, jeśli chcesz przywrócić coś, co przypadkowo usunąłeś). Twoja witryna powinna zawierać tylko potrzebne pliki. Wszystko, co jest dodatkowe lub niewykorzystane, powinno być traktowane jako dodatkowa powierzchnia ataku.

Użytkownicy i role WordPress

Sprawdź, czy wszyscy użytkownicy WordPressa są wykorzystywani. Czy są jakieś nowe podejrzane? Sprawdź, czy wszystkie role są nienaruszone. Jeśli postępujesz zgodnie z wytycznymi dotyczącymi użytkowników i ról WordPress, powinieneś mieć tylko jednego użytkownika z rolą administratora WordPress.

Dostawcy hostingu współdzielonego

Jeśli Twój WordPress działa na współdzielonym dostawcy hostingu, źródłem włamania może być inna witryna, która akurat działała na tym samym serwerze co Twoja. W tym przypadku najbardziej prawdopodobny scenariusz byłby taki, że atakujący zdołałby eskalować swoje przywileje. Następnie w konsekwencji uzyskaj dostęp do całego serwera, a co za tym idzie do Twojej witryny WordPress. Jeśli podejrzewasz, że taki atak miał miejsce, najlepszym wyjściem byłoby natychmiastowe skontaktowanie się z dostawcą usług hostingowych po utworzeniu kopii zapasowej witryny.

pliki .htaccess

Pliki .htaccess (pliki konfiguracyjne serwera Apache HTTP Server na poziomie katalogu) są również częstym celem hakerów. Są one zwykle używane do przekierowywania użytkowników na inne strony zawierające spam, phishing lub inne złośliwe strony. Sprawdź wszystkie pliki .htaccess na swoim serwerze, nawet te, które nie są używane przez WordPress. Niektóre przekierowania mogą być trudne do wykrycia.

Zwróć szczególną uwagę na konfigurację, która przekierowuje żądania HTTP w oparciu o określone ciągi agenta użytkownika – osoby atakujące mogą atakować określone urządzenia (np. użytkowników mobilnych), a nawet angażować się w czarne SEO, konfigurując serwer sieciowy tak, aby reagował inaczej na roboty indeksujące wyszukiwarki.

Jeśli to możliwe, rozważ przyjęcie konfiguracji globalnej zamiast polegania na plikach .htaccess w ramach serwera Apache HTTP Server. Pliki .htaccess nie tylko obniżają wydajność, ale otwierają witrynę WordPress na różne luki w zabezpieczeniach, jeśli atakujący jest w stanie odczytać lub co gorsza zapisać zawartość tych plików. Zgodnie z dokumentacją serwera Apache HTTP Server 2 , korzystanie z plików .htaccess można całkowicie wyłączyć, ustawiając dyrektywę AllowOverride na none w głównym pliku httpd.conf .

Sprawdzanie innych punktów wpisów

Istnieje kilka innych punktów wpisów na serwerze WWW. Upewnij się, że sprawdziłeś je wszystkie, takie jak serwery FTP, SSH, serwer WWW itp.

Znajdź infekcję WordPress i złośliwy kod

Zanim zaczniesz : hack WordPress zazwyczaj polega na wstawieniu kodu do motywu WordPress, wtyczki lub pliku podstawowego. W związku z tym, aby kontynuować czyszczenie, powinieneś czuć się komfortowo z modyfikowaniem kodu. Jeśli nie, zatrudnij specjalistów ds. bezpieczeństwa WordPress.

Po zidentyfikowaniu punktu wejścia hakerów zazwyczaj stosunkowo łatwo jest znaleźć infekcję. Chociaż na wypadek, gdybyś jeszcze nie znalazł infekcji, istnieje kilka metod, których możesz użyć, aby znaleźć infekcję. Tu jest kilka.

Sprawdzanie, które pliki zostały zmodyfikowane w ciągu ostatnich kilku dni

Najlepiej byłoby używać wtyczki do monitorowania plików WordPress, która monitoruje pliki w całej instalacji WordPress pod kątem zmian i natychmiast Cię ostrzega. Jeśli nie masz wtyczki File Integrity Monitoring (FIM), będziesz musiał ręcznie poszukać zmian w plikach.

Jeśli masz dostęp SSH do swojego serwera, sprawdź, które pliki w Twojej witrynie WordPress zmieniły się ostatnio. Zazwyczaj dobrze byłoby zacząć szukać zmian w ciągu ostatnich pięciu dni od zauważenia włamania, w razie potrzeby rozszerzając wyszukiwanie. Aby to zrobić, przejdź do katalogu, w którym znajduje się Twoja witryna WordPress i użyj polecenia znajdź.

find .mtime -5 –ls

Powyższe polecenie wyświetla (-ls) wszystkie pliki, które zostały zmodyfikowane (.mtime) w ciągu ostatnich pięciu dni (-5). Jeśli lista jest zbyt długa, użyj mniej stronicowania, aby łatwiej przeglądać i przeszukiwać listę.

find .mtime -5 –ls | less

Jeśli niedawno zaktualizowałeś wtyczkę lub motyw, wszelkie powiązane zmiany w plikach pojawią się w wynikach wyszukiwania. Dzienniki, pliki debugowania są również często aktualizowane, więc pojawią się również w twoich wynikach. W rezultacie może być konieczne przeprowadzenie obszernego filtrowania wyników, aby znaleźć interesujące zmiany w plikach. Zwróć uwagę, że wyspecjalizowane wtyczki, takie jak wtyczka WordPress File Changes Monitor dla WordPress, są specjalnie zaprojektowane do automatycznego usuwania takich fałszywych alarmów. Wtyczka jest celowo stworzona dla WordPress i może identyfikować zmiany w pliku z rdzenia WordPress, aktualizacje wtyczek lub motywów, instalować lub odinstalowywać.

Sprawdzanie wszystkich plików HTML

W WordPressie jest bardzo mało plików HTML i hakerzy lubią z nich korzystać. Przeszukuj swoją witrynę pod kątem wszystkich plików HTML i analizuj ich zawartość. Upewnij się, że wszystkie pliki HTML, które masz w swojej witrynie, są legalne i wiesz, do czego są używane.

Prostym sposobem na wyświetlenie listy wszystkich plików HTML w katalogu WordPress (i podkatalogach) jest użycie następującego polecenia.

 
find . -type f -name '*.html' 

Wyszukiwanie tekstu infekcji

Jeśli Twoja witryna została zniszczona lub w wyniku infekcji pojawia się jakiś tekst, poszukaj go za pomocą narzędzia grep. Na przykład, jeśli widziałeś tekst „zhakowany przez”, przejdź do katalogu głównego witryny i wydaj następujące polecenie.

grep –Ril "hacked by"

Powyższe polecenie zwróci listę plików zawierających treści „zhakowane przez”. Gdy masz już listę zainfekowanych plików, możesz przeanalizować kod i usunąć infekcję.

Co oznaczają przełączniki grep?

  • -R wskazuje, że grep ma przeszukiwać rekursywnie (przeszukuje całą strukturę katalogów, w tym wszystkie podkatalogi i dowiązania symboliczne).
  • -i wskazuje grepowi, że wyszukiwanie nie powinno uwzględniać wielkości liter (tj. ignorować wielkie litery wyszukiwanego terminu). Jest to bardzo ważne w środowiskach Linux/Unix, ponieważ w przeciwieństwie do Windows, w systemach plików Linux rozróżniana jest wielkość liter.
  • -l wskazuje grepowi, że powinien zwrócić nazwę pliku, a nie zawartość pliku. Gdy Twoja witryna WordPress zostanie zhakowana, jest to inny złośliwy kod, którego należy szukać.

Oprócz oczywistego ciągu „hacked by”, poniżej znajduje się lista fraz kodu i fraz tekstowych, które są zwykle używane w zhakowanych witrynach WordPress. Możesz użyć narzędzia grep , aby wyszukać następujące elementy:

  • base64_decode
  • is_admin
  • oceniać
  • gzuncompress
  • przejść przez
  • exec
  • shell_exec
  • zapewniać
  • str_rot13
  • system
  • phpinfo
  • chmod
  • mkdir
  • fopen
  • fzamknij
  • przeczytaj plik

Szybkim sposobem osiągnięcia tego za pomocą grep jest użycie następującego polecenia grep, które rekursywnie wyszukuje pliki (podąża za dowolnymi dowiązaniami symbolicznymi), wyszukuje ciągi pasujące do określonego wyrażenia regularnego PCRE 3 i zwraca dopasowanie tekstu oraz numer wiersza, w którym nastąpiło dopasowanie.

grep -RPn "(base64_decode|is_admin|eval|gzuncompress|passthru|exec|shell_exec|assert|str_rot13|system|phpinfo|chmod|mkdir|fopen|fclose|readfile) *\("

UWAGA : Część tego kodu może być również użyta w prawidłowym kodzie, więc przed oznaczeniem czegoś jako infekcji lub włamania należy go odpowiednio przeanalizować i zrozumieć, w jaki sposób jest on używany.

Porównaj pliki z oryginalną instalacją WordPress

Jest to metoda starej szkoły i choć jest nieco czasochłonna, działa cuda. Porównaj pliki swojej witryny z plikami nienaruszonej witryny. Dlatego jeśli masz kopię zapasową swojej witryny, porównaj zmodyfikowaną witrynę. Jeśli nie, zainstaluj nową kopię WordPressa i wtyczek z zainfekowanej witryny na innym hoście i porównaj je.

Istnieje kilka narzędzi, których możesz użyć do porównywania plików. W tym przykładzie używamy komercyjnego narzędzia o nazwie Beyond Compare, chociaż istnieje kilka bezpłatnych alternatyw. Poniżej kilka zrzutów ekranu przykładowego porównania.

Porównując katalogi główne dwóch witryn WordPress, narzędzie podkreśla różnicę w zawartości pliku index.php , nowych plików .htaccess i wp-config.php oraz różnice w podkatalogach.

Porównanie katalogu głównego dwóch witryn WordPress

Klikając dwukrotnie plik index.php możemy zobaczyć jakie są różnice.

Zainfekowany index.php w witrynie WordPress

Na co zwrócić uwagę w porównaniu plików WordPress?

Poszukaj plików, które nie są częścią rdzenia WordPressa. Większość infekcji dodaje pliki do katalogu głównego instalacji WordPressa lub do katalogu wp-content . Jeśli włamanie było wynikiem podatnej wtyczki, pliki wtyczki mogły zostać zmodyfikowane.

Wyczyść hack WordPress

Czas rozpocząć czyszczenie, wykonując poniższą procedurę, gdy znasz źródło włamania do WordPressa i znajdziesz infekcję.

Automatyczne wyszukiwanie infekcji za pomocą usługi WordPress

Jeśli powyższe wydaje się zbyt trudne, nie rozpaczaj. Istnieje kilka usług bezpieczeństwa i wtyczek WordPress, których możesz użyć do przeskanowania swojej witryny w poszukiwaniu złośliwego oprogramowania i innych infekcji. Polecamy usługi bezpieczeństwa Malcare WordPress.

Pamiętaj jednak, że takie wtyczki mają ograniczoną listę sygnatur złośliwego oprogramowania, których szukają. W związku z tym, jeśli atak, który dotknął Twoją witrynę WordPress, nie jest tak powszechny, wtyczki te mogą nie zidentyfikować infekcji. Często zdarza się, że otrzymujemy informacje zwrotne od administratorów WordPressa, których witryna WordPress padła ofiarą ataku polegającego na tym, że wtyczki złośliwego oprogramowania WordPress nie zidentyfikowały niczego złego.

Wniosek jest taki, że skuteczna kontrola bezpieczeństwa obejmuje kilka warstw ochrony i wykrywania. Chociaż analiza ręczna jest prawie zawsze najlepszym rozwiązaniem, kiedy możesz to zrobić; nie należy też lekceważyć tych wtyczek – nadal można ich używać i w pewnym momencie przydadzą się.

Przywracanie WordPressa z kopii zapasowej

Jeśli masz kopię zapasową swojej witryny WordPress lub bloga, przywróć ją. Zawsze jest to o wiele łatwiejsze niż ręczne czyszczenie kodu.

Zmiana wszystkich haseł, usuwanie nieużywanych użytkowników i weryfikacja ról użytkowników WordPress

Zmień wszystkie hasła wszystkich użytkowników i usług, w tym WordPress, CPanel, MySQL, FTP i własny komputer osobisty. Sprawdź listę użytkowników na swoim FTP, WordPress, MySQL i dowolnej innej usłudze, aby upewnić się, że wszyscy użytkownicy są prawowici. Jeśli są jacyś użytkownicy, których już nie używasz, usuń ich. Sprawdź, czy wszyscy użytkownicy WordPressa mają odpowiednie role i uprawnienia.

Aktualizacja rdzenia WordPressa, wtyczek, motywów i innego oprogramowania

Upewnij się, że korzystasz z najnowszej wersji całego oprogramowania wymaganego do uruchomienia witryny WordPress. Nie ogranicza się to tylko do samego WordPressa, ale obejmuje również wszelkie wtyczki, motywy, a także poprawki systemu operacyjnego, PHP, MySQL i serwera WWW (np. Apache HTTP Server lub Nginx) oraz dowolny serwer FTP, który możesz uruchomić.

Tworzenie kopii zapasowej witryny WordPress

Kopia zapasowa witryny WordPress

Na tym etapie, przed usunięciem samego zainfekowanego kodu, wykonaj kopię zapasową swojej witryny WordPress.

Usuń alert Google Safe Browsing o złośliwym oprogramowaniu

Ostrzeżenie Google o złośliwym oprogramowaniu

Jeśli Twoja witryna została odrzucona przez Bezpieczne przeglądanie Google, możesz złożyć wniosek o weryfikację bezpieczeństwa w celu usunięcia alertu.

Po usunięciu hacka WordPress…

Procesy bezpieczeństwa WordPress

Gratulacje, odzyskałeś witrynę WordPress po włamaniu. Teraz musisz upewnić się, że to się nie powtórzy. Oto kilka wskazówek, co należy zrobić:

  1. Zainstaluj wtyczkę dziennika aktywności WordPress, aby śledzić wszystko, co dzieje się w Twojej witrynie WordPress.
  2. Jeśli nie masz rozwiązania do tworzenia kopii zapasowych, zdobądź je.
  3. Skorzystaj z usługi skanowania zabezpieczeń WordPress.
  4. Obracaj hasła do bazy danych i administratora oraz wymuś silne zabezpieczenia haseł WordPress.
  5. Zawsze aktualizuj WordPress, wtyczki WordPress, motywy i inne oprogramowanie, z którego korzystasz.
  6. Usuń wszelkie nieużywane pliki, takie jak stare instalacje WordPress, nieużywane wtyczki i motywy WordPress (w tym nieużywane domyślne motywy WordPress). Nieużywane komponenty i oprogramowanie stanowią niepotrzebną powierzchnię ataku i najlepiej byłoby je usunąć.
  7. Postępuj zgodnie z naszym przewodnikiem dotyczącym wzmacniania zabezpieczeń WordPress, aby upewnić się, że zajmujesz się każdym możliwym problemem bezpieczeństwa w swojej witrynie.

Referencje użyte w tym artykule [ + ]

Referencje użyte w tym artykule
1 https://developer.wordpress.org/reference/functions/wp_maintenance/
2 http://httpd.apache.org/docs/current/howto/htaccess.html#when
3 https://regexr.com/5lpf0