Bieżący tydzień minął nam pod znakiem czyszczenia infekcji na stronach, a szybkie wyszukanie jej oznak w Google pokazuje, że jeszcze sporo osób się z nią zmierzy. Opiszmy więc, jak ta infekcja wyglądała i jak działa.

Jak wyglÄ…da atak

Doklejenie szkodliwego kodu do pliku header.php w motywie

W pliku header.php doklejany jest następujący fragment kodu:

Infekcja letsmakeparty3 - plik header.php

W tej formie oczywiście trudno jest zrozumieć, co ten kod dokładnie robi. Dlatego go sobie rozszyfrujmy i przeformatujmy, aby stał się bardziej czytelny i zrozumiały:

Infekcja letsmakeparty3 - plik header.php w wersji czytelnej

Teraz widać już, że wklejka ta ma za zadanie:

  1. Pobrać z pliku /n.txt z serwera atakującego kod PHP i umieścić go w pliku sdfsd234
  2. Plik ten ma być odświeżany co 6400 sekund.
  3. Pozwolić atakujÄ…cemu na zdalne uruchamianie kodu PHP na serwerze – atakujÄ…cy musi wysÅ‚ać request o okreÅ›lonej konstrukcji, a skrypt pobierze wskazany przez niego plik, zapisze go lokalnie na serwerze, uruchomi, a nastÄ™pnie usunie, aby nie zostawić po sobie Å›ladów.

Zawartość pliku sdfsd234

Skrypt ten wykonuje nastÄ™pujÄ…ce akcje (uwaga – przypominam, że zawartość tego pliku jest odÅ›wieżana co niecaÅ‚e 2 godziny, wiÄ™c jego dziaÅ‚anie może zmieniać siÄ™ w czasie):

  1. Szuka wszystkich plików *.php, a następnie szuka w nich tagu <head> i dokleja w nim wywołanie skryptu JS.
  2. Szuka wszystkich plików index.*, a następnie dokleja do nich bardzo podobny kod, jaki znajduje się w pliku header.php.
  3. Szuka wszystkich plików *.js i dokleja do nich kod, który dokleja na stronie wywołanie zdalnego pliku JS.
  4. Szuka wszystkich plików wp-config.php i wyparsowuje z nich dane połączenia do bazy danych (stałe DB_NAME, DB_HOST, DB_USER, DB_PASSWORD). Następnie nawiązuje połączenie z bazą danych, odnajduje tabelę pasującą do zapytania %post% i do każdego wpisu dokleja kod JS, który odpowiedzialny jest za przekierowywanie osoby odwiedzające stronę.

Wszystkie powyższe poszukiwania prowadzone sÄ… w obrÄ™bie wszystkich plików, do których skrypt ma dostÄ™p (wychodzÄ…c przy tym poza katalog danej domeny – jeÅ›li na serwerze znajduje siÄ™ wiele stron, to wszystkie zostanÄ… zainfekowane).

Po tych operacjach, atakujący ma już pełną kontrolę nad zaatakowaną stroną.

Może m. in.:

  • w dowolnym momencie wysÅ‚ać do strony kod PHP i wykonać go na serwerze,
  • Å›ledzić każdego odwiedzajÄ…cego stronÄ™,
  • zbierać wszystkie dane, które na tej stronie zostanÄ… przez odwiedzajÄ…cych podane,
  • przekierować odwiedzajÄ…cych stronÄ™ na wskazany przez atakujÄ…cego adres,
  • itd.

Jak dochodzi do infekcji?

Tego jednoznacznie nie da się ustalić. Wiemy już natomiast, że:

  1. Plik header.php modyfikowany jest nawet kilka tygodni wcześniej niż zaczyna się faktyczne działanie szkodliwych skryptów.
  2. Infekcja wystÄ™puje także na stronach, które majÄ… zainstalowanego Wordfence’a.
  3. Na wszystkich zainfekowanych stronach, które do nas trafiły, znajdowały się nieaktualne wtyczki i motywy z TF. Z dużym prawdopodobieństwem źródłem infekcji jest nieaktualna wersja jednej z wtyczek, z których te motywy korzystają.

Czy moja strona jest zainfekowana?

To akurat dość łatwo można sprawdzić. Zaloguj się na FTP i sprawdź, czy w folderze głównym strony znajduje się plik sdfsd234 oraz czy plik header.php Twojego motywu nie zawiera pokazanego wyżej fragmentu kodu.

JeÅ›li znajdziesz któryÅ› z tych plików lub Twoja strona już przekierowuje odwiedzajÄ…cych na inne strony (w czyszczonych przez nas przypadkach byÅ‚y to strony „WygraÅ‚eÅ› konkurs!”), to Twoja strona jest zainfekowana i czeka CiÄ™ żmudne czyszczenie skutków infekcji i zabezpieczenie strony, aby atak siÄ™ nie powtórzyÅ‚.

JeÅ›li potrzebujesz pomocy w usuniÄ™ciu skutków ataku – zapraszam do współpracy.

Change consents