Przejdź do głównej treści
Powracająca infekcja i ukryty backdoor w Joomla

Dlaczego wirus wraca po wyczyszczeniu Joomla?


Wirus wraca po wyczyszczeniu Joomla najczęściej dlatego, że usunięto widoczny objaw, ale pozostał backdoor, podatne rozszerzenie, przejęte konto albo inna zainfekowana strona na tym samym hostingu. Powracający plik nie jest sam w sobie źródłem problemu. Trzeba ustalić, jaki proces go odtwarza i w jaki sposób napastnik nadal ma dostęp.

Poniższe przyczyny są hipotezami diagnostycznymi, a nie rozpoznaniem konkretnej strony. Ich potwierdzenie wymaga analizy plików, bazy, kont, zadań i logów.

Najczęstsze przyczyny powrotu malware

Możliwa przyczyna Typowy ślad Co trzeba sprawdzić
Pozostawiony backdoor Skasowany plik pojawia się ponownie albo powstaje pod inną nazwą. Całe konto, pliki PHP poza rdzeniem, daty modyfikacji i sposób wywołania.
Podatne rozszerzenie lub stara Joomla Nowa infekcja krótko po czyszczeniu, podobne żądania w logach. Wersje, komunikaty bezpieczeństwa, rozszerzenia nieużywane i źródła aktualizacji.
Przejęte dane dostępowe Logowania z obcych adresów, zmiany przez SFTP lub panel. Joomla, hosting, SSH/SFTP, pocztę, bazę i urządzenia administratorów.
Inna zainfekowana strona na koncie Powrót zmian mimo poprawnego czyszczenia jednej domeny. Subdomeny, kopie testowe, stare CMS-y i wspólne uprawnienia plików.
Złośliwe zadanie lub wpis w bazie Zmiana odtwarza się cyklicznie albo po wejściu na konkretną stronę. Cron, zadania Joomla, bazę, automatycznie dołączane pliki i moduły HTML.
Zainfekowana kopia Objawy wracają bezpośrednio po odtworzeniu archiwum. Datę pierwszego włamania, zawartość kopii i działania wykonane po odtworzeniu.

Usunięty plik nie musi być drogą wejścia

Plik wykryty przez skaner może być tylko narzędziem używanym po włamaniu. Napastnik mógł dostać się przez podatny komponent, skradzione hasło albo inną aplikację na koncie, a następnie utworzyć wiele punktów dostępu. Skasowanie jednego z nich nie blokuje pozostałych.

Z tego powodu warto zachować ścieżkę, sumę pliku i czas jego modyfikacji przed usunięciem. Te informacje można zestawić z logami WWW, SFTP, panelu i poczty. Bez nich analiza po kolejnym nawrocie będzie trudniejsza.

Backdoor ukryty poza rdzeniem Joomla

Nadpisanie Joomla czystym pakietem przywraca pliki rdzenia, ale nie usuwa automatycznie obcego kodu z katalogów mediów, szablonu, rozszerzeń ani katalogu położonego obok strony. Backdoor może też znajdować się w .user.ini, zmienionym .htaccess albo pliku dołączanym przez konfigurację PHP.

Kontrola powinna objąć całą przestrzeń, do której ma dostęp proces strony. Szczególnie podejrzane są pliki PHP w katalogach przeznaczonych na obrazy, cache, pliki tymczasowe i przesyłane załączniki. Sama obecność funkcji takich jak eval lub base64_decode nie jest dowodem. Liczą się pochodzenie, lokalizacja i zachowanie kodu.

Podatność nadal jest dostępna

Jeśli Joomla, rozszerzenie lub szablon pozostaje w podatnej wersji, strona może zostać zaatakowana ponownie przez ten sam automat. Aktualizacja po czyszczeniu powinna objąć wszystkie używane elementy, nie tylko rdzeń. Dodatek bez wspieranej wersji trzeba zastąpić albo wyłączyć i usunąć.

Warto sprawdzić również rozszerzenia niepublikowane. Wyłączenie pluginu w panelu nie zawsze usuwa jego pliki ani publiczny punkt wejścia. Nieużywany kod powinien zostać odinstalowany, a pozostawione katalogi skontrolowane.

Hasła zmieniono w niewłaściwej kolejności

Zmiana hasła Joomla nie wystarczy, jeśli przejęte zostało konto hostingu, skrzynka do odzyskiwania dostępu albo komputer administratora. Z drugiej strony zbyt wczesna zmiana haseł na nadal aktywnie zainfekowanym serwerze może przekazać napastnikowi nowe dane.

Bezpieczna kolejność zależy od incydentu, ale zwykle obejmuje ograniczenie dostępu do strony, sprawdzenie czystego urządzenia, zmianę głównego konta hostingu i poczty, a następnie SFTP/SSH, bazy oraz Joomla. Należy unieważnić nieużywane tokeny i klucze API, zakończyć aktywne sesje oraz włączyć uwierzytelnianie wieloskładnikowe.

Inna strona ponownie infekuje Joomla

Na współdzielonym koncie hostingowym kilka domen może działać z uprawnieniami tego samego użytkownika. Stary CMS w subdomenie, kopia testowa lub zapomniany katalog może wtedy zapisywać pliki w oczyszczonej stronie. Objawy będą wyglądały tak, jakby czyszczenie Joomla nie zadziałało.

Inwentaryzacja musi objąć wszystkie domeny, subdomeny, katalogi i zadania cron. Jeśli części konta nie można sprawdzić, trzeba to zapisać jako ograniczenie. Rozdzielenie ważnych stron na osobne konta może ograniczyć skutki podobnego zdarzenia w przyszłości.

Złośliwy kod w bazie danych lub zadaniu cyklicznym

Malware może znajdować się w treści modułu HTML, ustawieniu szablonu, rekordzie rozszerzenia, koncie użytkownika albo zadaniu wykonywanym cyklicznie. Wtedy pliki wyglądają poprawnie tuż po czyszczeniu, a obcy kod wraca po otwarciu określonej podstrony lub po uruchomieniu harmonogramu.

Sprawdź konta z wysokimi uprawnieniami, listę pluginów, moduły, szablony, zadania Joomla i cron w hostingu. Porównaj także konfigurację bazy oraz pliki ładowane automatycznie przez PHP.

Przywrócono kopię wykonaną po włamaniu

Kopia może wyglądać na poprawną, mimo że zawiera uśpiony backdoor. Jeśli nie wiadomo, kiedy nastąpiło pierwsze włamanie, sama data archiwum nie potwierdza jego czystości. Po odtworzeniu trzeba nadal zaktualizować oprogramowanie, wymienić dostępy i przeprowadzić kontrolę.

Najlepsza kopia to taka, której odtwarzanie zostało wcześniej sprawdzone i która jest przechowywana poza kontem produkcyjnym. Archiwum pozostawione na tym samym serwerze może zostać zmienione albo usunięte podczas ataku.

Jak znaleźć proces, który odtwarza infekcję?

  1. Zapisz dokładny czas nawrotu. Zanotuj, kiedy plik lub przekierowanie pojawiło się ponownie.
  2. Porównaj daty i sumy plików. Ustal, co zmieniło się w tym samym przedziale czasu.
  3. Przejrzyj surowe logi. Szukaj żądań POST, wywołań PHP w katalogach mediów, logowań i operacji plikowych.
  4. Sprawdź zadania. Zestaw harmonogram cron z czasem odtworzenia pliku.
  5. Skontroluj całą przestrzeń konta. Uwzględnij inne strony, katalogi zapasowe i subdomeny.
  6. Zweryfikuj bazę i konta. Sprawdź administratorów, sesje, tokeny, moduły i ustawienia rozszerzeń.

Brak śladu w logach nie dowodzi, że zdarzenie nie miało miejsca. Hosting może przechowywać dane zbyt krótko albo nie rejestrować wszystkich operacji wykonywanych lokalnie. Ograniczenie należy uwzględnić w wnioskach.

Kiedy można uznać czyszczenie za zakończone?

Nie istnieje pojedynczy test gwarantujący brak malware. Rozsądne zakończenie prac wymaga zgodnych wyników kilku kontroli: aktualnego oprogramowania, braku nieautoryzowanych plików i kont, sprawdzonych zadań, wymienionych danych dostępowych, poprawnych testów funkcjonalnych i obserwacji po uruchomieniu.

Jeśli potrzebna jest pełna diagnostyka, zobacz zakres usuwania wirusów z Joomla wraz z monitoringiem strony 30 dni + 30 dni. Podczas tego monitoringu masz pełną ochronę i są wykonywane czynności aby zapobiec nawrotom. Pierwsze symptomy i narzędzia opisuje poradnik jak wykryć malware na stronie Joomla jeśli chcesz coś podziałać na własną rękę.

Źródła

Aktualizacja: 04.10.2026 | 14:47

Zostaw Opinie: Jeśli uzałeś/aś że znalezione materiały na stronię są wartościowe lub miałeś styczność z naszymi usługami. To zachęcamy do pozostawienia opini o Joomla Guru. To nic nie kosztuje, a nam pomaga w rozwoju.
Preferuj źródło w Google dzięki temu możesz wskazać iż joomlaguru.pl jest wartościowym źródłem wiedzy dla Ciebie.

FAQ


Dlaczego złośliwy plik wraca po usunięciu?

Może odtwarzać go pozostawiony backdoor, zadanie cron, kod w bazie, podatne rozszerzenie albo inna zainfekowana strona na tym samym koncie.

Czy nadpisanie plików Joomla usuwa wirusa?

Nie gwarantuje tego. Przywraca pliki rdzenia, ale obcy kod może pozostać w rozszerzeniach, szablonie, bazie, katalogach mediów lub poza katalogiem strony.

Czy po czyszczeniu trzeba zmienić wszystkie hasła?

Trzeba zmienić dane do hostingu, poczty, SSH/SFTP, bazy i Joomla, jeśli mogły zostać przejęte. Kolejność należy dobrać tak, aby nowe dane nie trafiły ponownie do napastnika.

Czy inna domena na hostingu może zainfekować Joomla?

Tak. Jeśli instalacje działają z prawami tego samego użytkownika, podatna strona lub stary katalog może zapisywać pliki w oczyszczonej witrynie.

Czy czysta kopia zapasowa rozwiązuje problem?

Tylko jeśli powstała przed włamaniem i po odtworzeniu zamknięto drogę wejścia. W przeciwnym razie infekcja może wrócić.

Jak długo obserwować stronę po czyszczeniu?

Okres powinien wynikać z rodzaju infekcji i dostępnych śladów. Ważniejsze od samej liczby dni są monitoring zmian plików, logowań, poczty i powrotu pierwotnych objawów.


Marcin Równicki Najlepszy ekspert od Joomla i Yootheme PRO w Polsce! Właściciel Joomlaguru.pl

O Marcin Równicki

Z Joomla pracuję od czasów Mambo (2008), dzięki czemu znam ten system od jego początków aż po najnowsze wydania. Specjalizuję się w budowie i modernizacji stron, migracjach, bezpieczeństwie, usuwaniu skutków włamań oraz stałej opiece technicznej. Tworzę rozwiązania możliwie blisko core Joomla i pracuję z YOOtheme Pro, dbając o wygodne zarządzanie stroną, jej wydajność oraz bezpieczne aktualizacje. Joomla Guru wyrosło z wieloletniego bloga, którego celem było praktyczne wspieranie użytkowników i administratorów Joomla.