Case study: zainfekowany motyw Newspaper

Szacunkowy czas czytania: 2 minuty

 

Przedstawiam studium przypadku – mogę je opisać dzięki koleżance, która zwróciła się do mnie po pomoc. Okazało się, że prowadzony przez nią serwis kieruje odwiedzających do stron ze spamem. Dotyczyło to tylko odwiedzających, a nie jej samej (z uprawnieniami administratora WordPress). To dość częsty wybieg złośliwego kodu, by administrator dowiadywał się jako ostatni…

Wstępny skan na stronie Sucuri Sitecheck nic nie wykazał. Strona wydawała się czysta. Po zalogowaniu się do kokpitu okazało się, że WordPress jest w wersji 4.9.2. (aktualna to 4.9.4). Nieaktualnych było również kilka wtyczek. Zerknęłam na źródło strony i okazało się, że w nagłówku oraz stopce (header i footer) znajduje się złośliwy kod JavaScript. Najłatwiej namierzyć go szukając słowa eval* w kodzie źródłowym strony. Ewentualnie można scrollować w poszukiwaniu podejrzanego (i zarazem na pierwszy rzut oka bezsensownego) ciągu znaków. W tym przypadku kod prezentował się następująco:

Usunęłam go w menu Theme Panel motywu Newspaper – był osadzony w sekcji ADS –> Header Ad. Początkowo bezskutecznie szukałam kodu bezpośrednio w nagłówku i stopce (header.php i footer.php). Z lekką pomocą przyszedł mi wpis na blogu Sucuri (pomimo, że sam skaner Sucuri nie wykrył zagrożenia). Oprócz spamerskich przekierowań, opisany tu skrypt tworzy fejkowe konta administratora.

Studium przypadku – dane:

system CMS: WordPress
wersja: 4.9.2 (nieaktualny)
motyw: Newspaper (nieaktualny)
przyczyna problemu: nieaktualny motyw, złośliwy kod osadzony w motywie


*Czym jest eval? To nie jest wirus sam w sobie, ale pełnoprawna funkcja JavaScript. Niestety często nadużywana właśnie w złośliwych skryptach. Argumentem tej funkcji jest łańcuch znaków. Eval pozwala traktować łańcuch jako fragmentu kodu, a następnie go wykonać.