WSO Shell: Złodziej nadchodzi z wnętrza domu!

WSO Shell: Złodziej nadchodzi z wnętrza domu!

Poznaj skrypt, który po wejściu na stronę internetową działa jak włamywacz żyjący w piwnicy okradanego domu i siejący spustoszenie prawie całkowicie niezauważalnie.

Wyobraź sobie, że pewnego dnia wracasz do domu i odkrywasz włamywacza, który próbuje uciec z twoim dużym telewizorem. W obawie o swoje bezpieczeństwo natychmiast dzwonisz na policję, która natychmiast zatrzymuje przestępcę. Ku twojemu przerażeniu dowiadujesz się szokujących informacji, że włamywacz mieszka w piwnicy twojego domu od miesięcy. Zupełnie niezauważony przez ciebie, przekształcił piwnicę w rozbudowaną bazę dla wszystkich jego działań przestępczych.

Oczywiście, jesteś zszokowany i zbulwersowany!
Jak mogłeś nie zauważyć, że tuż pod twoim nosem przestępca okrada twój dom?
Ile zdążył już wyrządzić szkód bez twojej wiedzy?

Twoja strona internetowa została zhakowana, a hakerzy na stałe zadomowili się na serwerze. Przepustowość jak i przestrzeń dyskowa zostały całkowicie skradzione. Nawet nie jesteś świadomy, że możesz uczestniczyć w przestępstwie.

Jest jeden szczególnie inwazyjny skrypt, który po wejściu na stronę internetową działa dokładnie tak samo, jak włamywacz w powyższym scenariuszu. Żyjąc w „piwnicy” twojej strony internetowej atakuje i sieje spustoszenie prawie całkowicie niezauważalnie. Nie wiesz kiedy się włamał i po cichu zainstalował złośliwą aplikację (powłokę internetową). Nie zdajesz sobie sprawy że tam jest, wykonuje wszelkiego rodzaju złośliwe skrypty i zachowania.

Co to jest powłoka internetowa?

Powłoka internetowa to skrypt, który działa na serwerze podobnie jak WordPress, Joomla lub jakikolwiek inny kod PHP. Pozwala użytkownikowi robić rzeczy tak, jakby był zalogowany bezpośrednio na serwerze. Działa jak narzędzie do administrowania serwerem: pozwala użytkownikowi przeglądać lub edytować pliki, pracować z bazami danych, a nawet uruchamiać programy. Powłoki internetowe tworzone przez hakerów mają zwykle dodatkowe złośliwe funkcje, takie jak wysyłanie spamu lub automatyczne niszczenie strony internetowej.

Powłoki internetowe nie są z natury rodzajem ataku ani exploita. Są raczej narzędziem używanym do manipulowania zhakowaną stroną internetową. Luki w zabezpieczeniach różnych systemów CMS, tzw. „gotowców”, to zaledwie pierwszy krok do każdego udanego włamania. Celem atakującego jest zainstalowanie skryptu WSO Shell, a następnie użycie go, aby przejąć w całości serwer.

Co to jest WSO Shell?

WSO Shell, to powłoka zwana jako backdoor i przechowywana jest w plikach o różnych nazwach. Ma wyglądać jak prawdziwy, podstawowy plik WordPress lub Joomla (są to darmowe i popularne systemy zarządzania treścią z których korzysta ponad 30% stron na świecie).

Backdoor w tych systemach jest instalowany w fałszywych motywach i katalogach wtyczek, a także jest wstawiany do prawdziwych katalogów wtyczek i motywów. Oto niektóre z lokalizacji, w których można znaleźć „tylne drzwi”. W WordPress większość z tych lokalizacji używa nazwy pliku wp-ajax.php.

    Inne lokalizacje i nazwy plików w WordPress:
  • /wp-content/plugins/wp-db-ajax-made1/wp-ajax.php
  • /wp-content/plugins/wp-db-ajax-made/wp-ajax.php
  • /wp-content/plugins/ml-slider/wp-ajax.php
  • /wp-content/plugins/siteorigin-panels/wp-ajax.php
  • /wp-content/plugins/wp-db-ajax-made/wp-ajax.php
  • /wp-content/plugins/Akismet3/wp-ajax.php
  • /wp-content/plugins/accesspress-twitter-auto-post/wp-ajax.php
  • /wp-content/plugins/advanced-custom-fields/wp-ajax.php
  • /wp-content/plugins/ajax-thumbnail-rebuild/wp-ajax.php
  • /wp-content/plugins/bb_press/wp-ajax.php
  • /wp-content/plugins/bb_press1/wp-ajax.php
  • /wp-content/plugins/bb_press2/wp-ajax.php
  • /wp-content/plugins/oa-social-login/wp-ajax.php
  • /wp-content/plugins/wp-db-ajax-made-1/wp-ajax.php
  • /wp-content/plugins/wp-db-ajax-made-2/wp-ajax.php
  • /wp-content/plugins/wp-db-ajax-made/wp-ajax.php
  • /wp-content/themes/sketch/404.php
  • /wp-content/themes/twentyeleven/wp-ajax.php
  • /wp-content/themes/twentyfourteen/author.php
  • /wp-content/themes/twentyfourteen/wp-ajax.php
  • /wp-content/themes/twentyten/wp-ajax.php
  • /wp-content/themes/twentythirteen/wp-ajax.php
  • /wp-content/themes/twentytwelve/author.php
    Prawdopodobne lokalizacje i nazwy plików w Joomla:
  • /libraries/rokcommon/Doctrine/Record/Listener/sites-ui.php
  • /templates/gantry/html/joomla/3.0/library-edit.php
  • /modules/bamegamenu/ajax_phpcode.php
  • /modules/jmsslider/ajax_jmsslider.php

W przypadku systemu Joomla w którym znalazłem powłokę WSO, był to index.php. Haker bezpośrednio podmienił źródło pliku i zakodował go w MIME base64. Na początku nie było oczywiste, że zakodowana treść, to kod źródłowy WSO. Strona nie działała i wyświetlała błąd.

W kolejnym artykule opisuję cały tok szukania backdoora na stronie internetowej znajomego. Poprosił on mnie o pomoc w uruchomieniu jego strony, która nie działała już od dłuższego czasu.

Co jest „specjalnego” w WSO?

WSO jest zaprojektowany do użytku przez przeglądarkę internetową i ma dość prosty, przyjazny dla użytkownika interfejs dzięki czemu łatwo się z niego korzysta. Po zainstalowaniu go na stronie internetowej, powłoka ta jest bardzo trudna do usunięcia. Hakerzy często umieszczają wiele kopii w różnych miejscach strony internetowej, nawet jeśli zostanie usunięta część złośliwego oprogramowania, to może chociaż jedna kopia zostanie pominięta.

    Posiada wyjątkowo potężny zestaw funkcji:
  • ochrona hasłem;
  • szczegółowe informacje o serwerze;
  • zarządzanie plikami (przesyłanie, pobieranie, edycja);
  • tworzenie, przeglądanie katalogów i wyszukiwanie tekstu w plikach;
  • konsola wiersza poleceń;
  • administracja bazami danych;
  • wykonanie kodu PHP;
  • kodowanie i dekodowanie wprowadzanych tekstów;
  • ataki siłowe na zewnętrzne serwery FTP lub bazy danych;
  • instalacja skryptu Perl jako bardziej bezpośredniego backdoora na serwerze;
  • i wiele, wiele innych.

Historia

Jak na tak wszechobecne narzędzie, pochodzenie WSO pozostaje nierozwiązaną tajemnicą.

WSO najwyraźniej oznacza „web shell by oRb”. Po raz pierwszy pojawił się w społecznościach hakerów w latach 2008-2009. Głębsze dochodzenie prowadziła korporacja Defiant Inc. w stanie Delaware, zajmująca się zabezpieczaniem stron internetowych oraz danych osobowych klientów i ich inwestycji. Najwcześniejszą wzmianką, jaką znaleźli, był wątek na rosyjskim forum hakerskim w styczniu 2009 r. autorstwa użytkownika o imieniu oRb od którego pochodzi nazwa skryptu.

Ten wątek został jednak użyty do ogłoszenia dużej aktualizacji skryptu, więc prawdopodobnie nie było to pierwsze wydanie WSO. Jednak wkrótce potem wyszukiwania „WSO Shell” w wyszukiwarce Google zaczęły rosnąć.

oRb kontynuował publikowanie aktualizacji i nowych wersji skryptu do końca 2010 roku, kiedy to wydano wersję 2.5. Jest to najpopularniejsza wersja, chociaż niektórzy hakerzy od tego czasu wydali różne odmiany (i nie zawsze z altruizmu wobec innych hakerów - niektóre wydania zawierają ukryty kod, który powiadamia autora, gdzie zostało zainstalowane, powodując tym samym wiele poziomów infiltracji i szkód). Czy opisana wersja 2.6 jest autorstwa oRb? Nie wiem.

Powłoka WSO jest szeroko używana przez niezliczonych hakerów na całym świecie, a społeczność użytkowników, którzy preferują ją jako powłokę internetową, rośnie każdego dnia.

Jak zabezpieczyć się przed WSO?

Należy prześledzić wszystkie pliki PHP na serwerze. W pierwszej kolejności przeszukać wszystkie pliki, które zawierają słowo „WSO”. Jeśli nie znajdziemy nic tą metodą, to nie znaczy że go nie ma. Może się okazać, że cały skrypt został zakodowany do base64 i wykonany funkcją eval(). Dlatego w drugiej kolejności należy przeszukać wszystkie pliki, które zawierają słowo „eval” i sprawdzić czy któraś z funkcji nie wykonuje zakodowanego tekstu w base64. Jeśli tak, to należy ten kod rozkodować i upewnić się że to aby nie czasem WSO.

Podsumowanie

Z całym szacunkiem do wszystkich systemów CMS, to aby z nich bezpiecznie korzystać, należy mieć pojęcie jak. Już na pewno nie instalować wtyczek i różnych dodatków do strony internetowej ze źródeł niewiadomego pochodzenia. Najlepszym sposobem byłoby pisanie wszystkiego od podstaw, ale nie każdy to potrafi. Nie ma złotego środka ale trzeba być świadomym zagrożeń i nie wpuszczać złodzieja przez otwarte „tylne drzwi”.

zuku