Jak usunąć wirusa z Joomla 5? Kompletny poradnik krok po kroku
Usunięcie wirusa z Joomla 5 nie powinno polegać wyłącznie na uruchomieniu skanera i skasowaniu wskazanych przez niego plików. Skuteczne odwirusowanie wymaga sprawdzenia całej instalacji: plików systemowych, rozszerzeń, szablonu, bazy danych, kont użytkowników, zadań zaplanowanych, konfiguracji serwera i pozostałych stron na tym samym koncie hostingowym.
Ten poradnik jest przeznaczony dla osób mających doświadczenie w administracji Joomla, bazą danych i serwerem. Nieprawidłowe usunięcie pliku lub rekordu może spowodować utratę danych albo zatrzymanie strony.
Zanim rozpoczniesz czyszczenie
Przygotuj dostęp do panelu hostingowego, SFTP lub SSH, bazy danych, logów serwera i panelu administracyjnego Joomla. Potrzebujesz również bezpiecznego urządzenia do zmiany haseł oraz miejsca poza publicznym katalogiem strony, w którym przechowasz kopię.
Nie uruchamiaj czyszczenia bez wykonania kopii aktualnego stanu. Nawet zainfekowana kopia może pomóc ustalić sposób włamania, odzyskać treści i odtworzyć pliki przypadkowo usunięte podczas naprawy.
Krok 1. Ogranicz działanie zainfekowanej strony
Jeżeli strona przekierowuje użytkowników, wyświetla phishing, rozsyła złośliwe pliki lub wykorzystuje serwer do wysyłania spamu, tymczasowo ogranicz jej dostępność. Możesz zastosować stronę techniczną, ograniczyć dostęp do wybranych adresów IP albo poprosić hosting o izolację konta.
Nie zakładaj, że tryb offline w panelu Joomla zatrzyma kod uruchamiany bezpośrednio przez serwer, złośliwe zadanie cron lub backdoor.
Krok 2. Wykonaj pełną kopię zapasową
Zabezpiecz wszystkie pliki, bazę danych, plik configuration.php, pliki .htaccess, konfigurację PHP, zadania cron, logi serwera oraz wiadomości otrzymane od hostingu. Zachowaj także listę rozszerzeń i użytkowników z uprawnieniami do zaplecza.
Kopię przechowuj poza katalogiem publicznym i nie przywracaj jej bez wcześniejszej analizy.
Krok 3. Zmień wszystkie dane dostępowe
Z czystego, aktualnego urządzenia zmień hasła do panelu hostingowego, SFTP i FTP, SSH, panelu Joomla, bazy danych, skrzynek e-mail, rejestratora domeny oraz usług tworzenia kopii zapasowych.
Nie używaj jednego hasła w wielu miejscach. Włącz uwierzytelnianie dwuskładnikowe tam, gdzie jest dostępne. Sama zmiana haseł nie usunie jednak backdoora pozostawionego na serwerze.
Krok 4. Sprawdź konta użytkowników
W panelu Joomla sprawdź użytkowników należących do grup Super Users, Administrator, Manager i innych grup z dostępem do zaplecza. Zweryfikuj również przypisania użytkowników do grup bezpośrednio w bazie danych.
Usuń konta, których pochodzenia nie można potwierdzić, i zmień hasła prawidłowych administratorów. Sprawdź, czy złośliwy komponent lub zadanie zaplanowane nie tworzy usuniętego konta ponownie.
Krok 5. Wymień pliki rdzenia Joomla
Pobierz dokładnie tę samą, czystą wersję Joomla 5 z oficjalnego źródła. Porównaj pliki systemowe, a następnie zastąp zmodyfikowane elementy. Szczególną uwagę zwróć na katalogi /administrator/, /api/, /includes/, /libraries/ i /plugins/.
Nie nadpisuj bez analizy całego katalogu /images/ ani pliku configuration.php, ponieważ mogą zawierać dane strony i ustawienia potrzebne do jej działania. Nie wystarczy porównać rozmiaru plików — używaj sum kontrolnych lub narzędzi porównujących zawartość.
Krok 6. Przeinstaluj rozszerzenia
Sprawdź każde rozszerzenie pod kątem źródła, producenta, wersji, daty instalacji, zgodności z Joomla 5 i aktualnego statusu. Usuń rozszerzenia nieużywane, nieznane, nielegalne lub nierozwijane.
W przypadku podejrzenia infekcji usuń pliki rozszerzenia i wgraj jego czystą wersję z oficjalnego źródła. Samo wyłączenie komponentu nie usuwa złośliwych plików, które mogły zostać pozostawione na serwerze.
Krok 7. Sprawdź szablon i jego override’y
Porównaj pliki aktywnego szablonu z wersją pobraną od producenta. Sprawdź szczególnie pliki odpowiedzialne za nagłówek i stopkę, dodatkowy JavaScript, przekierowania oraz elementy ładowane przed główną treścią.
Zweryfikuj również katalogi override’ów. Złośliwy kod może znajdować się w pliku, który wygląda jak prawidłowa modyfikacja szablonu.
Krok 8. Skontroluj katalogi images, media, tmp i cache
Przejrzyj katalogi /images/, /media/, /tmp/, /cache/ oraz katalogi rozszerzeń. Zwróć uwagę na pliki PHP w miejscach przeznaczonych głównie na obrazy i pamięć podręczną, pliki o losowych nazwach, dodatkowe pliki .htaccess oraz skrypty podszywające się pod obrazy.
Nie kasuj automatycznie wszystkich plików PHP. Niektóre rozszerzenia mogą tworzyć legalne pliki wykonywalne, dlatego każdy element trzeba ocenić w kontekście całej instalacji.
Krok 9. Przejrzyj configuration.php
Sprawdź, czy plik configuration.php nie został zmodyfikowany. Zwróć uwagę na kod przed lub po klasie konfiguracyjnej, dodatkowe instrukcje include i require, odwołania do nieznanych plików oraz nieoczekiwane zmiany ścieżek logów i katalogu tymczasowego.
Po zakończeniu naprawy zmień hasło do bazy danych i zaktualizuj je w konfiguracji. Nigdy nie publikuj zawartości tego pliku, ponieważ zawiera dane dostępowe.
Krok 10. Sprawdź .htaccess i konfigurację PHP
Przeanalizuj główny plik .htaccess oraz pliki w podkatalogach. Szukaj reguł przekierowujących użytkowników, ukrywających spam przed administratorem, uruchamiających nietypowe rozszerzenia jako PHP lub kierujących ruch do obcych domen.
Sprawdź także .user.ini, php.ini i ustawienia automatycznego dołączania plików PHP. Nie zastępuj bezmyślnie całej konfiguracji standardowym plikiem — prawidłowe reguły mogą odpowiadać za SSL, przekierowania lub ochronę katalogów.
Krok 11. Sprawdź rozszerzenia ładowane automatycznie
Niektóre elementy Joomla są uruchamiane automatycznie i mogą nie rzucać się w oczy na standardowej liście rozszerzeń. Sprawdź dodatki systemowe, pluginy uruchamiane przy każdym żądaniu, nietypowe biblioteki oraz pliki dodane do katalogów ładowanych przez rdzeń.
Jeśli złośliwy kod jest aktywny przed załadowaniem panelu, zwykły skaner działający z poziomu Joomla może go nie wykryć.
Krok 12. Oczyść bazę danych
Kontrola bazy danych powinna objąć użytkowników i grupy, treści artykułów, moduły z własnym HTML, pozycje menu, konfigurację szablonu, aktywne dodatki systemowe, listę rozszerzeń, sesje oraz zaplanowane zadania.
Szukaj obcych skryptów JavaScript, ramek iframe, nieznanych domen, zakodowanych fragmentów, ukrytych linków i spamerskich treści SEO. Nie wykonuj globalnej operacji znajdź i zamień bez kopii bazy — może to uszkodzić prawidłowe dane lub formatowanie.
Krok 13. Sprawdź zadania zaplanowane i cron
W Joomla przejdź do System → Zarządzanie → Zaplanowane zadania. Zweryfikuj typ, harmonogram, status i historię każdego zadania. Usuń lub wyłącz elementy, których nie rozpoznajesz, ale najpierw zapisz ich konfigurację do analizy.
Sprawdź również cron w panelu hostingowym. Jeżeli malware wraca po kilku minutach lub godzinach, zadanie cykliczne może odtwarzać usunięte pliki.
Krok 14. Sprawdź pozostałe strony na koncie
Przeanalizuj wszystkie instalacje Joomla, WordPressa, stare kopie strony, wersje testowe, subdomeny i nieużywane katalogi. Zapomniana instalacja ze starą wersją rozszerzenia może być źródłem kolejnej infekcji.
Oczyszczenie tylko jednej domeny nie wystarczy, jeśli atakujący nadal ma dostęp przez inną stronę na tym samym koncie hostingowym.
Krok 15. Uruchom skanowanie bezpieczeństwa
Skaner może pomóc znaleźć znane sygnatury malware, zmodyfikowane pliki rdzenia, podejrzane funkcje i domeny znajdujące się na listach ostrzeżeń. Traktuj wynik jako pomoc w analizie, a nie jako ostateczny dowód czystości.
Skaner nie potwierdzi samodzielnie, że baza danych jest czysta, nie istnieje ukryty użytkownik, cron nie odtwarza infekcji ani że wszystkie inne strony na hostingu są bezpieczne.
Krok 16. Zaktualizuj i zabezpiecz Joomla 5
Po oczyszczeniu zaktualizuj Joomla, rozszerzenia i szablon do wspieranych wersji. Usuń nieużywane elementy, ogranicz liczbę Super Users, włącz uwierzytelnianie dwuskładnikowe i zastosuj bezpieczne uprawnienia plików.
Skonfiguruj regularne kopie zapasowe przechowywane poza serwerem, monitoring zmian plików, aktualizacje oraz powiadomienia o nieudanych logowaniach. Zabezpiecz także panel administratora przed niepotrzebnym dostępem publicznym.
Krok 17. Przetestuj stronę po czyszczeniu
Sprawdź stronę w trybie prywatnym, na telefonie i z innej sieci. Przetestuj logowanie do zaplecza, formularze, wysyłkę wiadomości, przekierowania, pliki multimedialne, wyszukiwarkę, cache oraz wszystkie kluczowe funkcje.
Przez kolejne dni obserwuj logi, zużycie zasobów, daty modyfikacji plików, nowe użytkowniki i nieoczekiwane żądania. Powrót podejrzanych plików oznacza, że przyczyna infekcji nadal nie została usunięta.
Krok 18. Poproś Google o ponowne sprawdzenie
Jeżeli Google lub przeglądarka oznaczyły stronę jako niebezpieczną, wyślij prośbę o ponowną weryfikację dopiero po zakończeniu czyszczenia, zamknięciu wykorzystanej luki, zmianie haseł i sprawdzeniu pozostałych instalacji.
Wcześniej sprawdź raport bezpieczeństwa w Google Search Console i opisz wykonane działania. Zbyt wczesne zgłoszenie może zostać odrzucone, jeśli złośliwe treści nadal są dostępne.
Dlaczego wirus wraca?
Najczęstsze przyczyny reinfekcji to pozostawiony backdoor, nieoczyszczona baza danych, zainfekowana druga strona na hostingu, przejęte konto FTP, podatne rozszerzenie, zadanie cron, nieznany Super User albo automatyczne przywracanie starej kopii.
Powrót malware zwykle oznacza, że nie został usunięty cały mechanizm infekcji. W takiej sytuacji ponowne kasowanie pojedynczych plików może tylko opóźnić problem.
Kiedy zlecić profesjonalne odwirusowanie?
Skorzystaj z pomocy specjalisty, jeżeli infekcja powraca, hosting zablokował konto, strona przetwarza dane klientów, nie masz pewnej kopii zapasowej, nie rozpoznajesz większości plików, na koncie działa kilka stron albo nie można jednoznacznie odróżnić plików prawidłowych od złośliwych.