Альянс богів – 64-бітний Зевс та Tor на допомогу, Securelist
Чим більше людей переходить на 64-бітні операційні системи, тим більше 64-бітних програм створюється розробниками і більше 64-бітних шкідливих файлів з'являється «в дикій природі». Ми спостерігаємо цей процес уже кілька років. Справді, найбільш зручним інструментом для проникнення в 64-бітний додаток, наприклад, банківську програму-клієнт, буде 64-бітний шкідливий агент. А яка найвідоміша шкідлива банківська програма? Це ZeuS – «законодавець мод» у світі шкідливого банківського ПЗ, веб-інжекти якого стали невід'ємним атрибутом практично будь-якого сучасного банківського троянця. І рано чи пізно 64-бітове складання ZeuS мало з'явитися. Але, якщо чесно, ми не очікували, що це станеться так скоро.
Кіберзлочинці не потребують 64-бітного ZeuS. Цей троянець використовується переважно для того, щоб перехоплювати та змінювати інформацію у браузерах, але в наші дні люди користуються 32-бітними браузерами навіть на 64-бітових системах.
Ми детектуємо 32-бітні зразки ZeuS, про які йтиметься в цьому блогпості, якTrojan.Win32.Scarsi.uhm — 52d3b26a03495d02414e621ee4d0c04eHEUR:2> — b33d3509ce930bcc796a9e2904f426d7
64-бітний зразок ZeuS, витягнутий з вищезгаданих 32-бітних зразків, детектується якTrojan-Spy.Win64.Zbot.a — cc793e5b0df621b8d572cf4e7f26e053
Початковий 32-бітний сампл впроваджує шкідливий код у цільові процеси, і якщо такий процес належить 64-бітному додатку, то ZeuS впроваджує свою 64-бітну версію. Ми перевірили, як 64-бітна версія троянця працює всередині 64-бітного Internet Explorer. Шкідлива програма показала свій звичайний функціонал – принаймні,веб-інжекти спрацювали, як і у стандартній 32-бітовій програмі.
Адреса сторінки сервісу онлайн-банкінгу одного з банків потрапила до правил веб-інжектів виявленого нами ZeuS. Одне таке правило виглядає так:
Воно означає, що коли жертва заходить на сторінку онлайн-банкінгу, і HTML-код цієї сторінки містить рядок, визначений тегом data_before, ZeuS повинен вставити додатковий текст (визначений наступним тегом data_inject) відразу після цільового рядка. Коли ми на зараженому ZeuS комп'ютері відвідали цю сторінку в 64-бітному Internet Explorer, то її HTML-код ми побачили доповнення, впроваджене шкідливою програмою.
Код, впроваджений на сторінці онлайн-банкінгу, у 64-бітному IE
Шкідлива функція gotoo() визначена в іншому правилі веб-інжектів і додається до HTML-коду сторінки разом з іншим шкідливим кодом. У цій функції з веб-сторінки збирається інформація, цікава зловмиснику (логін, пароль, значення cookies та інші дані), а потім відправляється на сервер, контрольований оператором ZeuS.
Ну що ж, ми переконалися, що 64-бітна версія ZeuS працює. Але невже на 64-бітові браузери перейшло стільки користувачів, що виникла потреба у 64-бітній версії троянця? Ні це не так. Згідно з нашою статистикою, наприклад, за допомогою 64-бітного IE на сайти в інтернеті заходить менше 0,01% користувачів. З іншого боку, створення 64-бітного ZeuS не здається якоюсь складною справою: вихідники давно доступні, потрібно лише внести деякі зміни, щоб код нормально працював з 64-бітними процесами, і скомпілювати код у 64-бітний додаток.

Крах EMETNotifier внаслідок помилки в коді 64-бітного ZeuS
Якщо створити більш-менш стабільну 64-бітнуверсію ZeuS все ж таки було скільки-небудь трудомістким, то питання про доцільність її створення стає особливо актуальним. Беручи до уваги, що переважна більшість користувачів все ще користуються 32-бітними браузерами, цілком можливо, що створення 64-бітної версії ZeuS - це маркетинговий хід. Нова функція за великим рахунком марна, зате як звучить - підтримка 64-бітних браузерів! Це може бути досить ефективним для просування шкідливого продукту та залучення покупців – операторів ботнетів.
| 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 |
Крім 64-бітної версії та спілкування з центром управління через мережу Tor, виявлений нами зразок ZeuS за своєю суттю мало чим відрізняється від подібних до нього шкідливих програм цього сімейства. Він також встановлюється в папки зі згенерованими випадковим чином іменами в каталозі %APPDATA% під випадково згенерованими іменами файлів:

Установчі папки ZeuS
Локальне сховище ZeuS
Постійна присутність у системі досягається звичайним для ZeuS способом – прописуванням себе у ключі реєстру Run, пов'язаним із автозапуском програм:
ZeuS реєструє себе, щоб запускатися під час старту системи
Крім 64-бітного компонента, ця версія ZeuS також несе у своєму тілі програму tor.exe версії 0.2.3.25. Ця програма запускається не прямим способом: ZeuS запускає системний процес svchost.exe у зупиненому стані, впроваджує tor.exe на згадку про процес, налаштовує впроваджений код так, щоб він працював коректно, і відновлює виконання svchost. В результаті замість системного svchost.exe процес насправді починає виконувати tor.exe.
tor.exe під прикриттям лже-процесу svchost.exe створює HTTP-проксі сервер, який слухає вхідні з'єднання на TCP порту 9050.

Тор-проксі, що працює як процесsvchost.exe
Таким чином, якщо ви, наприклад, налаштуєте браузер на зараженій машині працювати через проксі 127.0.0.1:9050, весь трафік браузера піде через мережу Tor. Центр керування цієї версії ZeuS розташований на onion домені, доступному тільки через мережу Tor: egzh3ktnywjwabxb.onion. Отже, коли шкідлива програма звертається до свого центру управління, вона з'єднується з ним через згаданий проксі-сервер і мережу Tor.
Більше того, ZeuS створює на зараженій машині прихований сервіс Tor, запускаючи tor.exe з наступними параметрами:
-HiddenServiceDir "%APPDATA%torhidden_service" -HiddenServicePort "1080 127.0.0.1:" -HiddenServicePort "5900 127.0.0.1: "
Ці параметри задумувалися для налаштування запуску прихованого сервісу (onion-сервер). HiddenServiceDir визначає, де локально розташована конфігурація прихованого сервісу, що піднімається, а HiddenServicePort визначає, як перенаправляти користувачів, що підключаються до вашого onion-домену, на ваш веб-північ. Користувачі, швидше за все, будуть з'єднуватися з onion-доменом на порт 80, призначений для протоколу HTTP, але ваш веб-сервер, пов'язаний з цим доменом, може приймати з'єднання і на іншому порту.
Допустимо, веб-сервер працює на тій же машині, де розгорнуть прихований сервіс, і він чекає вхідних з'єднань на порт 1080. Тоді прихований сервіс повинен бути запущений за допомогою tor.exe з таким параметром:
-HiddenServicePort "80 127.0.0.1:1080"
Це означає, що коли користувач заходить звичайним способом у браузері на .onion, він досягає вашої машини, де tor.exe прийме з'єднання на порт80 і перенаправить трафік на локальну машину на порт 1080, на якому слухає веб-сервер. Таким чином, користувач з'єднається з вашим веб-сервером.
Але вУ випадку з ZeuS, швидше за все, ніякого веб-сервера на зараженій машині не існує. Так навіщо ZeuS розгортає прихований сервіс, та ще й з перенаправленням портів? Відповідь у самому ZeuS. Для кожної зараженої системи він створює каталог конфігурації прихованого сервісу Тоr, генеруючи унікальний для кожної жертви приватний ключ, на основі якого виходить унікальне доменне ім'я. У свою чергу, програма tor.exe запускає прихований сервіс із цим унікальним ім'ям onion-домену.

Каталог конфігурації прихованого сервісу, створений ZeuS
Каталог конфігурації прихованого сервісу, створений ZeuS
Приклад згенерованого імені onion домену для зараженого хоста
Працюючи в зараженій системі, ZeuS слухає порти, що згенеровані випадковим чином і запам'ятовуються при першому запуску шкідливої програми. Оператор ботнета знає імена onion-доменів, що асоціюються з кожною зараженою машиною, оскільки шкідлива програма відправляє такі імена до командного центру. Таким чином, коли заражена машина в мережі, оператор може з'єднатися з нею за унікальним onion-доменом через мережу Тоr. Основною метою такого методу є віддалене керування зараженими системами. Наприклад, ZeuS слухає один певний при запуску tor.exe порт функції, що відповідає за роботу Virtual Network Computing (VNC). Отже, через цей порт троянець надає оператору можливість дистанційного керування Робочим столом жертви.