Stan zagrożeń w internecie znajduje się obecnie na poziomie standardowym. Nie występują duże epidemie a eksperci z Kaspersky Lab nie zanotowali żadnych poważnych incydentów związanych z bezpieczeństwem. Poziom zagrożenia: 1

Spełniło się nieuchronne – pojawił się 64-bitowy ZeuS z możliwością komunikacji za pośrednictwem sieci Tor

Dmitrij Tarakanow
Kaspersky Lab Expert
Dodany 13 grudnia 2013, 09:44 CET
Tagi:

Im więcej ludzi przechodzi na 64-bitowe platformy, tym więcej pojawia się 64-bitowego szkodliwego oprogramowania 64-bit. Obserwujemy ten proces już od kilku lat. Czasami są to bardzo specyficzne aplikacje, np. aplikacje bankowe... Jeżeli ktoś chce włamać się do takiej aplikacji i ukraść informacje, najlepszym narzędziem byłby 64-bitowy szkodliwy agent. A jaki jest najbardziej osławiony szkodnik bankowy? Naturalnie ZeuS, który ustanawia trendy dla większości współczesnego szkodliwego oprogramowania bankowego. Jego wstrzyknięcia sieciowe stały się podstawową funkcją niemal każdej rodziny szkodliwego oprogramowania bankowego.  Pojawienie się 64-bitowej wersji ZeuSa było jedynie kwestią czasu – nie spodziewaliśmy się jednak, że nastąpi to tak szybko.

Nie spodziewaliśmy się dlatego, że cyberprzestępcy tak naprawdę nie potrzebują 64-bitowej wersji. Głównym celem ZeuSa jest przechwytywanie danych przechodzących przez przeglądarki i modyfikowanie ich w taki sposób, aby operator mógł ukraść informacje związane z bankowością online, przesyłać transakcje lub zacierać swoje ślady. Dzisiaj ludzie nadal wykorzystują 32-bitowe przeglądarki – nawet na 64-bitowych systemach operacyjnych. A zatem 32-bitowe wersje ZeuSa wystarczyły, aby złodzieje byli zadowoleni ze swoich zysków.    

Wtedy, zupełnie niespodziewanie, odkryliśmy nową 32-bitową próbkę ZeuSa, która wewnątrz posiada wersję 64-bitową. Co więcej, wersja ta działa za pośrednictwem anonimowej sieci Tor. Pierwotna próbka wstrzykuje szkodliwy kod do odpowiednich procesów. Jeżeli taki proces należy do 64-bitowej aplikacji, ZeuS wstrzykuje do niego swoją 64-bitową wersję; w przeciwnym wypadku – wersję 32-bitową. Test, który przeprowadziliśmy, aby przekonać się, jak 64-bitowa wersja ZeuSa działa wewnątrz 64-bitowej wersji przeglądarki Internet Explorer, potwierdził zwykłą funkcjonalność ZeuSa: w każdym razie wstrzykiwanie szkodliwego kodu działało jak zwykle.     

Istnieje jeden bank, którego adres strony bankowości online znalazł się w regułach wstrzykiwania sieciowego dla tej wersji ZeuSa. Jedna z reguł wstrzykiwania sieciowego wygląda następująco:

data_before
    <input id="e_finance_login" class="button" type="submit"
data_end

data_inject
    onclick="return gotoo();"
data_end

co oznacza, że gdy ofiara odwiedzi stronę bankowości online tego banku i jej kod HTML zawiera ciąg po znaczniku “data_before”, ZeuS wstrzykuje dodatkowy tekst po znaczniku “data_inject” zaraz po początkowym ciągu celu. Odwiedzając tę stronę podczas aktywnej infekcji ZeuSa w 64-bitowej przeglądarce Internet Explorer zaobserwowaliśmy następującą szkodliwą wstawkę w kodzie HTML w przeglądarce:  

1_auto.jpg
Kod wstrzyknięty w stronę bankowości online w 64-bitowej przeglądarce IE

Szkodliwa funkcja gotoo() została określona w innej regule wstrzykiwania sieciowego dla tej strony i jest dodawana do kodu HTML strony bankowej wraz z innym szkodliwym kodem. Funkcja ta jest wykorzystywana do gromadzenia cennych informacji z tej strony (login, hasło, ciasteczka i inne specjalne wartości wyszczególnione na stronie) i wysyłania ich do domeny kontrolowanej przez operatora ZeuSa.

A zatem, 64-bitowa wersja ZeuSa działa. Czy jednak z przeglądarek 64-bit zaczęło korzystać tak wielu użytkowników, aby uzasadnić wysiłek włożony w stworzenie 64-bitowej wersji ZeuSa? Nie. Odsetek użytkowników korzystających z 64-bitowych przeglądarek nadal jest nieznaczny. Według naszych danych statystycznych, udział użytkowników surfujących po internecie przy użyciu 64-bitowej wersji przeglądarki IE stanowi mniej niż 0,01%. A więc dlaczego niektórzy twórcy wirusów skompilowali działającą 64-bitową wersję ZeuSa? Z naszej strony nie wygląda to na coś bardzo skomplikowanego – dostępny jest kod źródłowy, trzeba tylko wprowadzić kilka poprawek, aby mógł działać w 64-bitowych procesach i skompilować go jako aplikację 64-bitową. A może jest inaczej i potrzeba znacznie więcej pracy, aby stworzyć działającą wersję 64-bitowego ZeuSa.  Zauważyliśmy błąd w aktualnej wersji: gdy ZeuS wstrzykuje 64-bitowy odpowiednik do 64-bitowego procesu aplikacji EMET Notifier, powoduje nagłe przerwanie tego procesu. Wynika to z błędu w obliczeniach niektórych adresów funkcji API – próbka ZeuSa wewnątrz procesu EMET Notifier próbuje wywołać funkcję WSAStartup, ale zmienna, która powinna zawierać adres tej funkcji, nie wskazuje na nią. Zamiast tego wskazuje na nieprzydzieloną pamięć, która powoduje, że cały proces EMET Notifier generuje wyjątek “Access violation” i kończy proces.

2.png
EMET Notifier niespodziewanie przerywa działanie z powodu błędnego kodu w ZeuSie x64

Skoro stworzenie dość stabilnej 64-bitowej wersji ZeuSa nie jest w rzeczywistości takie proste, a ogromna większość użytkowników nadal wykorzystuje 32-bitowe przeglądarki, nasuwa się następujące pytanie: po co zadawać sobie trud? Być może jest to tylko trik marketingowy – nowa funkcja, nawet jeśli jest w większości bezużyteczna, która ma trochę wywołać  efekt “wow”! Obsługa 64-bitowych przeglądarek – doskonały sposób na zareklamowanie produktu i przyciągnięcie klientów.   

Co ciekawe, plik konfiguracyjny dla tej wersji ZeuSa zawiera długą listę programów, na których może działać to szkodliwe oprogramowanie, jeżeli zostaną znalezione w zainfekowanym systemie. Są to aplikacje różnego rodzaju, jednak wszystkie z nich zawierają cenne prywatne informacje, które cyberprzestępcy chcieliby ukraść – dane uwierzytelniające logowanie, certyfikaty itd. Nie wolno zapominać, że ZeuS potrafi przechwytywać uderzenia klawiszy i dane przed szyfrowaniem/po zaszyfrowaniu, które są wysyłane/otrzymywane w sieci przy użyciu niektórych typowych systemowych funkcji API. A więc, działając wewnątrz tych programów ZeuS potrafi przechwytywać i przesyłać wiele cennych informacji do operatora botnetu. Poniżej znajduje się cała lista wyszczególnionych programów: 

bitcoin-qt.exe

tiny.exe

ibank2.exe

putty.exe

winscp.exe

filezilla.exe

openvpn-gui.exe

openvpn.exe

mstsc.exe

java.exe

javaw.exe

Zvit1DF.exe

iFOBSClient.exe

KLBS.exe

vegaClient.exe

Pionner.exe

cb193w.exe

BK_KW32.exe

KlientBnk.exe

ibconsole.exe

CliBank.exe

CliBankOnlineUa.exe

CliBankOnlineRu.exe

CliBankOnlineEn.exe

SftMailW.exe

SRCLBClient.exe

EximClient.exe

client.exe

CbShell.exe

CB.exe

ARMSH95.exe

arm.exe

arm_mt.exe

asbank_lite.exe

bank.exe

bank32.exe

bbclient.exe

bbms.exe

bk.exe

bnk.exe

budget.exe

cbank.exe

cbmain.exe

clb.exe

client6.exe

clientbk.exe

clntstr.exe

clntw32.exe

cncclient.exe

contactng.exe

core.exe

cshell.exe

cyberterm.exe

dealer.exe

dsstart.exe

dtpaydesk.exe

edealer.exe

eelclnt.exe

elbank.exe

etprops.exe

etsrv.exe

fcclient.exe

ip-client.exe

iwallet.exe

jscashmain.exe

kb_cli.exe

lfcpaymentais.exe

loadmain.exe

lpbos.exe

mmbank.exe

mstsc.exe

mwclient32.exe

payments.exe

paymmaster.exe

pinpayr.exe

pkimonitor.exe

pmodule.exe

pn.exe

postmove.exe

prclient.exe

productprototype.exe

qiwicashier.exe

qiwiguard.exe

quickpay.exe

rclaunch.exe

rclient.exe

retail.exe

retail32.exe

rtadmin.exe

rtcert.exe

saadm.exe

saclient.exe

sxdoc.exe

termw.exe

translink.exe

twawebclient.exe

uarm.exe

ubs_net.exe

unistream.exe

upofcards.exe

uralprom.exe

w32mkde.exe

wclnt.exe

webmoney.exe

wfinist.exe

winpost.exe

wupostagent.exe

xplat_client.exe

 

Instalacja

Oprócz włączenia 64-bitowej wersji i komunikacji CnC za pośrednictwem anonimowej sieci Tor opisywany wariant ZeuSa zachowuje się jak każdy inny szkodnik oparty na ZeuSie. Wrzuca swoje pliki do folderów o losowo wygenerowanych nazwach w folderze %APPDATA% z losowymi nazwami plików:

3.png
Foldery instalacji

4.PNG
Zainstalowany trojan

5.PNG

Lokalna strefa zrzutu ZeuSa

Szkodnik utrzymuje się w systemie poprzez stworzenie wartości w kluczu Run autostartu systemowego w rejestrze:

6_auto.png
ZeuS został zarejestrowany, tak aby uruchamiał się podczas startu systemu

Wewnętrzna wersja szkodnika określonego w ciele bota ma numer 3.0.0.0, co w rzeczywistości nie oznacza nic. Z pewnością nie jest to trzecia generacja ZeuSa, ponieważ autor tego szkodnika poinformowałby o tym. Proces pobierania pliku konfiguracyjnego sugeruje, że wersja ta jest bardziej zbliżona do pierwotnego kodu źródłowego ZeuSa 2.0.8.9, który wyciekł, niż do odgałęzienia Citadel. W wersji Citadel usunięto prosty dostęp do pliku konfiguracyjnego, a jego centrum kontroli pozwala na pobranie go przy użyciu dokładnego zapytania HTTP POST, podczas gdy opisywana wersja  ZeuSa nie uniemożliwia pobranie pliku konfiguracyjnego poprzez proste żądanie URL do ścieżki pliku. Dlatego, każdy, kto zna poprawny adres URL, może pobrać go przy użyciu przeglądarek, narzędzi wget, curl itd.   

Anonimowa sieć Tor

Oprócz 64-bitowego komponentu opisywana wersja ZeuSa zawiera w swoim ciele narzędzie tor.exe znane z wersji 0.2.3.25. Tor.exe jest uruchamiany pośrednio – ZeuS uruchamia aplikację systemową svchost.exe w stanie wstrzymania, następnie wstrzykuje kod tor.exe do tego procesu svchost.exe, dostosowuje go, aby działał poprawnie, i wznawia wykonywanie procesu svchost.  W efekcie, zamiast svchost.exe proces w rzeczywistości zaczyna wykonywać tor.exe.

Narzędzie Tor zamaskowane jako proces svchost.exe tworzy serwer proxy HTTP nasłuchujący na porcie TCP 9050.

7.png
Proxy Tor uruchomiony jako proces svchost.exe

A zatem, jeśli dostosujesz przeglądarkę na zainfekowanym hoście, tak aby działała za pośrednictwem proxy127.0.0.1:9050, cały ruch przeglądarki będzie przechodził przez sieć Tor. Serwer kontroli tej wersji ZeuSa jest zlokalizowany w domenie online: egzh3ktnywjwabxb.onion. Dlatego gdy szkodnik komunikuje się z serwerem kontroli, kieruje żądania poprzez wspomniane proxy, uzyskując dostęp do sieci Tor, a następnie jego serwera kontroli. 

Co więcej, ZeuS tworzy ukrytą usługę Tor na zainfekowanej maszynie, przekazując następujące parametry, gdy uruchamia tor.exe:  

--HiddenServiceDir "%APPDATA%\tor\hidden_service" --HiddenServicePort "1080 127.0.0.1:<losowy port 1>" --HiddenServicePort "5900 127.0.0.1: <losowy port 2> "

Zasadniczo, parametry te mają określać, w jaki sposób uruchomić ukrytą usługę (cebulowy serwer sieciowy) na określonych maszynach. HiddenServiceDir określa, gdzie zlokalizowana jest lokalnie konfiguracja ukrytej usługi, a HiddenServicePort - jak przekierowywać użytkowników łączących się z domeną cebulową do działającego lokalnie serwera sieciowego. Użytkownicy zwykle łączą się z domenami sieciowymi na porcie 80, który jest przydzielony do protokołu HTTP, ale serwer sieciowy mógłby akceptować połączenia przychodzące z innego portu, np. 1080. W takim przypadku, tor.exe musi zostać uruchomiony z następującym parametrem:

--HiddenServicePort "80 127.0.0.1:1080"

co oznacza, że gdy użytkownicy łączą się w standardowy sposób za pośrednictwem przeglądarki do

<nazwa_domeny>.onion, uzyskują dostęp do twojej maszyny, gdzie tor.exe akceptuje połączenie na porcie 80 i przekierowuje je do portu 1080 na lokalnej maszynie, która jest podsłuchiwana przez serwer sieciowy. W efekcie, użytkownicy łączą się z twoim serwerem sieciowym.

Jednak w przypadku ZeuSa, najprawdopodobniej nie istnieje żaden serwer sieciowy działający na zainfekowanym hoście. Skoro tak, to dlaczego oprócz mapowania portu do losowych portów szkodliwe oprogramowanie chciałoby wprowadzić ukrytą usługę? Odpowiedź można znaleźć w samym ZeuSie. Szkodnik ten tworzy folder konfiguracji tor dla każdego zainfekowanego hosta, generując unikatowy prywatny klucz dla ukrytej usługi, a – w efekcie – unikatową nazwę domeny. Z kolei tor.exe aktywuje ukrytą usługę z unikatową nazwą domeny cebulowej.

8.png
Stworzony przez ZeuSa folder konfiguracji Tor

9.PNG

Stworzony przez ZeuSa folder konfiguracji Tor

10.PNG
Przykład wygenerowanej domeny związanej z zainfekowanym hostem

Działając w zainfekowanym systemie, ZeuS podsłuchuje porty, które zostały losowo wygenerowane i zapamiętane podczas pierwszego uruchomienia szkodliwego oprogramowania. Operator botnetu będzie wiedział o wygenerowanej domenie cebulowej związanej z każdą zainfekowaną maszyną, ponieważ szkodnik informuje serwer kontroli o swojej nazwie domeny cebulowej. Gdy zainfekowana maszyna jest online, operator botnetu może uzyskać do niej dostęp, łącząc się z jej unikatową domeną cebulową za pośrednictwem sieci Tor. Jednym z celów takiego podejścia jest zdalna kontrola zainfekowanego hosta. Na przykład, jeden z tych portów prowadzi podsłuchiwanie w funkcji VNC ZeuSa, co oznacza, że ZeuS zapewnia operatorowi zdalną kontrolę desktopu za pośrednictwem tego portu.  

Jednak ZeuS działający za pośrednictwem sieci Tor nie jest niczym nowym. Wykryliśmy próbki ZeuSa ze śladami komunikacji za pośrednictwem sieci Tor, które pochodzą z 2012 r., gdy podczas infekcji ZeuSa na zainfekowanych maszynach został stworzony serwer proxy oraz ukryta usługa sieci Tor. W internecie istnieją nawet instrukcje krok po kroku, mówiące, jak wykorzystać tor.exe, aby przekazywał ruch ZeuSa lub Spyeye przez sieć Tor, oraz, jak stworzyć hosting domen cebulowych dla serwera kontroli dla tych trojanów bankowych. Jednak wcześniejsze próbki w większości posiadały domeny CnC określone w ich ciele jako host lokalny lub 127.0.0.1, co oznacza, że same próbki ZeuSa czy Spyeye nie były zbyt ściśle powiązane z komunikacją przez sieć Tor, podczas gdy opisywana tu wersja ZeuSa posiada domenę cebulową CnC egzh3ktnywjwabxb.onion określoną w jej wewnętrznym bloku ustawień. tor.exe jest włączony bezpośrednio do jej ciała i jest uruchamiany przez samego ZeuSa. A zatem, komunikacja za pośrednictwem sieci Tor oraz 64-bitowa wersja stanowią nierozerwalne elementy tej próbki  ZeuSa, a funkcjonalność ta została dodana na etapie rozwoju.    

 

Wniosek

Niezależnie od intencji osoby, która stworzyła tę próbkę ZeuSa – czy był to trik marketingowy czy podbudowa dla przyszłych potrzeb – w końcu istnieje „czysty” 64-bitowy ZeuS i można powiedzieć, że został wykonany nowy krok milowy w ewolucji ZeuSa. Co więcej, próbka ta pokazuje, że funkcjonalność ZeuSa została wzbogacona o kolejną funkcję – ZeuS potrafi działać samodzielnie za pośrednictwem sieci Tor z cebulowymi domenami CnC, co oznacza, że dołączył właśnie do ekskluzywnego klubu rodzin szkodliwego oprogramowania posiadających tę możliwość.