Dodając dzisiaj komentarze na blogu Justyny(1) zauważyłem, że choć zainstalowana u niej wtyczka próbuje podebrać z moich RSS ostatni wpis z pajmon.com – nie udaje jej się to. Błąd i tyle. Czasami tak bywa. Szczęście, że tknęło mnie na tyle, by zerknąć, co to się u mnie porobiło; Blog funkcjonował bez żadnego problemu, żadnych dodatkowych wychodzących linków, żadnego przekierowania. Podglądam źródło – i pierwsze zaskoczenie.
Mam wstrzyknięty ładny kawałek kodu. Nie bardzo wiem, jaka była jego funkcjonalność, ale skoro ktoś zadał sobie trud, widocznie jakaś funkcjonalność w tym była. Lub miała być, w stosownym momencie.
Co ciekawe: ani Google Webmaster Tools, ani inne narzędzia OnLine którymi próbowałem rozpoznać naturę doklejonego kodu (np: Urlquery.net) – nic nie raportowały. A w zasadzie raportowały, zupełnie jak Windows: Nie ma żadnego problemu. Kod jest czysty, nie ma złośliwych infekcji.
Porady takie jak ta, nic nie pomogły; W źródłach szablonu nie było śladu po złośliwym kodzie. Wystarczyło jednak zalogować się na FTP i wejść do mojego katalogu z blogiem, by zobaczyć dwie rzeczy:
- Cztery pliki miały zmienioną datę edycji na 2008 rok (w roku 2009 czy nawet 2010 nie zwróciłbym na to uwagi, ale 2014?!);
- Dwa pliki dostały nowe rozszerzenie: *.BAK
Złośliwy kod był dodany jako zaszyfrowany fragment Base64 do pliku index.php i tylko do niego.
Na wszelki wypadek skasowałem z serwera wszystko, prócz katalogu /wp-content/uploads – wcześniej jednak sprawdziłem, czy w którymś z dziesiątków katalogów wewnątrz nie ma dziwnie wyglądających plików *.php
Zmieniłem hasło do bazy danych, od nowa wypełniłem plik wp-config i wgrałem czystego WordPressa pobranego z samego źródła. Dlatego, tymczasem, mój Pajmon wygląda jak kulawy, ale będę nad tym pracował ;-)
Niestety, nie mogę Wam pokazać, które to pliki były zainfekowane i jak to wyglądało pod klientem FTP, bo z rozpędu je skasowałem. Zanim porobiłem printskriny i notatki. Całkiem bez sensu – to nie był mój pierwszy raz, powinienem więc zachować zimna głowę, czego i Wam, w podobnych sytuacjach(2), życzę.
————
Przypisy
- I to jest jeden z wielu powodów, dla których warto komentować artykuły na innych blogach ;-)
- Rzecz jasna, nie życzę Wam podobnych sytuacji.
Jedyne co może pokazać Ci, że masz vira na WP to http://sitecheck.sucuri.net/scanner/ reszta skanerów online nawet w połowie dobrze nie radzi sobie z większością problemów.
często się zdarza wstrzykiwanie na wordpressach przez dziury w templatkach
@epapspot – no ale Panie Kolego! Przecież miałem templatkę od samego zespołu WordPress!
Udało Ci się znaleźć lukę? Jeśli nie, czy masz jakieś podejrzenia: skórka, plugin, włam przez FTP?
Włam odbył się tylko na tego jednego bloga; Jedyne co przychodzi mi do głowy, to wtyczka All in One SEO Pack którą dostałem emailem jako wersję PRO. Z jednej strony brzmi naiwnie – dostałem załącznik w zipie i załadowałem go na serwer, ale korzystam z tej wtyczki od samego początku, chyba się tam nawet rejestrowałem przy jakiejś okazji (było to tyle lat temu, że nawet nie pamiętam). Niestety, po uruchomieniu wtyczki nie było mowy o żadnej wersji PRO, w swoim panelu plugin wołał o upgrade, więc temat olałem. Wtyczkę odruchowo skasowałem i zainstalowałem nową kopię prosto z poziomu kokpitu. Żadnych sensacji nie zauważyłem, ale krzywda pewnie już się wydarzyła. Jak dzisiaj o tym myślę, to nie mogę wyjść ze zdumienia – o czym myślałem wtedy?!
IM, dzięki za link. Trzeba uważać, bo zło czai się wszędzie, niestety ;-). Pewnie to ta wtyczka.
Mi kiedyś jedną stronę co chwilę hakowali, nie wiedzieć czemu akurat na tamtą się uparli może kwestia szablonu, który był darmowy i wrzucony do sieci może tam coś było? kto wie, już tego bloga nie prowadzę i mam spokój.
Dlatego nie uznaję WP :). Skrypt fajny, ale trzeba być na bieżąco. Może jakiś zero-day?
Zmień sobie profilaktycznie wzsystkie hasła na serwer, bazę, bloga itp.
No niestety trzeba uważać co na naszego wordpressa wgrywamy. Mogę opowiedzieć o mojej sytuacji. Okazało się, że kod został dodany nie przez zhackowanie samego wordpressa, a mojego komputera. Okazało się wtedy, że gdy tylko łączyłem się przez ftp z serwerem (czy to wp czy joomla) to dodawał złośliwy kod do każdego pliku html, php itd. Od dzisiaj do takich dosyć „delikatnych” spraw używam linuksa.
Sugerujesz że to przez CommentLuv na jej blogu?
Ps. System IDS może nas w porę poinformować, że coś się dzieje, wtedy możemy manualnie podjąć akcję zbanować IPki które próbują wstrzyknąć złośliwy kod. Ostatnio widzę sporo z Rosji prób ataków. Olimpiada tuż tuż pewnie chłopaki z Rosji chcą się odrobić i zainfekować jak najwięcej blogów.
@Mariusz (Twój komentarz zablokował mi Akismet) – Nie, zdecydowanie włam u mnie nie miał nic wspólnego z CommentLuv, a zwłaszcza tym z bloga Justyny ;-)
Po prostu, dodając komentarz u Niej zwróciłem uwagę na to, że nie pobiera mojego feedu z RSS. Dopiero wtedy wróciłem do siebie, by sprawdzić co jest grane.
@Piotr Bielecki, wygląda, że dałeś się złapać ten tani chwyt z All in One SEO Pack PRO ;)
http://wpzen.pl/uwaga-na-e-maile-proponujace-bezplatna-instalacje-wtyczki-one-seo-pack-pro/
Tak czy inaczej, teraz to już po ptokach. Źródła infekcji szuka się na samym początku. Inaczej możesz sobie pozacierać wiele śladów i pozostaną zgadywanki.
@Paweł – Najprawdopodobniej. Gdyby ktoś miał ochotę na testy, mam na dysku spakowaną zipem paczkę z tą wtyczką ;)
UpDate
Poczytałem wpis z Twojego linku – dokładnie moja sytuacja. Nie będę się wstydził, bardziej się zadziwiam. Podejrzane oferty przychodzą do mnie co chwilkę i filtruję je odruchowo. Tutaj mój odruch nie zadziałał, dlatego nie pomyślałem. „Nie pomyślałem” jest tutaj kluczową sprawą. Myślenie nie boli, ale odruchy są mocniejsze ;-)
Myślę, że z WP jest jak z Windą, to że jest tak popularny sprawia że warto atakować ten CMS ;) Co do hacków, warto przyjrzeć się np. uploadify.php, timthumb.php częste miejsca przez które wchodzą. Wchodzą to za dużo powiedziane dzieciaki automatami lecą. Dodatkowo warto zabronić indeksowanie wp-content, bo jak trafi się jakiś hack w danym szablonie, łatwo jest go odnaleźć inurl:”wp-content/themes/twentyfourteen” i prezent gotowy. Aktualizacja core WP nic nie da, bo często tylna furtka jest w starych plikach szablonów, nawet nie muszą to być szablony z domieszką obcego kodu.