Главная » Мережеві технології » DNS » Що за вірус sality. Что за вірус sality

Що за вірус sality. Что за вірус sality

Що за вірус sality. Что за вірус sality

Вірус Sality модифікує DNS-сервіс роутерів

Esetnod32 8 квітня 2014 о 15:58 23007

Сімейство файлових інфекторов Win32 / Sality відомо вже давно і використовує ботнет на основі P2P ще з 2003 р Sality може виступати як в ролі вірусу, так і даунлоадер інших шкідливих програм, які використовуються для розсилки спаму, організації DDoS, генерації рекламного трафіку або злому VoIP акаунтів. Команди файли, що передаються через мережу Sality, зашифровані з використанням RSA (т. Н. Цифровий підпис). Модульна архітектура шкідливої ​​програми, а також довговічність ботнету показує наскільки добре зловмисники підійшли до створення цього шкідливого коду.

Ми відстежували ботнет Win32 / Sality протягом довгого часу і спостерігали понад 115 000 доступних IP-адрес, які інструктувалися «супер-вузлами» (super peers) для підтримки ботнету в робочому стані і їх координації. Ми бачили схожі компоненти Sality, які він завантажував на заражені комп'ютери. Деякі з них були схожі і розрізнялися тільки поведінкою. Однак, останнім часом, ми виявили новий компонент з раніше непоміченими властивостями. На відміну від уже відомих компонентів Sality, які використовуються для крадіжки паролів від FTP-акаунтів і розсилки спаму, він має можливість підміняти адреса основного DNS-сервера роутера (DNS hijacking). Згідно з нашими даними телеметрії, цей компонент з'явився в кінці жовтня 2013 г. Він отримав назву Win32 / Rbrute .

Компонент Win32 / RBrute додає дійсно нові можливості в роботу Win32 / Sality. Перший модуль, виявляється ESET як Win32 / RBrute. A . Здійснює пошук веб-сторінок панелей упраления роутера через сканування певного набору IP-адрес, щоб змінити запис основного DNS-сервера. Новий шахрайський DNS-сервер перенаправляє користувачів на підроблену веб-сторінку установки браузера Google Chrome в тому випадку, коли вони звертаються до веб-сайтів, які містять в назві домену слова «google» або «facebook». Замість браузера користувачеві завантажується шкідливий файл самого Win32 / Sality. Таким чином, зловмисники забезпечують собі нові її установки і розширення ботнету цього сімейства шкідливих програм.

IP-адреса, що використовується в якості основного DNS-сервера на скомпрометувати роутере, насправді, є частиною мережі Win32 / Sality. Існує ще одна модифікація шкідливої програми - Win32 / RBrute. B . Вона встановлюється Sality на скомпрометованих комп'ютерах і може виступати в якості DNS або HTTP проксі-сервера для доставки підробленого установника браузера Google Chrome до користувачів, які були перенаправлені через шкідливий роутер.

Можна сказати, що техніка модифікації основного DNS роутера вже досить поширена для різних цілей, починаючи, з цілей крадіжки даних онлайн-банкінгу і закінчуючи блокуванням підключень клієнта до веб-сайтам security-вендорів. Особливо це стало актуально в зв'язку з недавнім виявленням вразливостей в firmware різних моделей роутерів. Win32 / RBrute. A намагається знайти адміністративні веб-сторінки роутерів шляхом сканування діапазону IP-адрес, отриманих з C & C-сервера. Надалі, звіт про цю операцію буде відправлений назад на C & C-сервер. На момент проведення нашого аналізу, Win32 / RBrute. A використовувався для отримання доступу до наступних моделям роутерів:

  • Роутери Cisco, які містять рядок «level_15_» в атрибуті realm HTTP-протоколу
  • D-Link DSL-2520U
  • D-Link DSL-2542B
  • D-Link DSL-2600U
  • Huawei EchoLife
  • TP-LINK
  • TP-Link TD-8816
  • TP-Link TD-8817
  • TP-Link TD-8817 2.0
  • TP-Link TD-8840T
  • TP-Link TD-8840T 2.0
  • TP-Link TD-W8101G
  • TP-Link TD-W8151N
  • TP-Link TD-W8901G
  • TP-Link TD-W8901G 3.0
  • TP-Link TD-W8901GB
  • TP-Link TD-W8951ND
  • TP-Link TD-W8961ND
  • TP-Link TD-W8961ND
  • ZTE ZXDSL 831CII
  • ZTE ZXV10 W300

Якщо веб-сторінка буде знайдена, C & C-сервер посилає боту невеликий список з десяти паролів для перебору (brute force). У разі, коли бот підібрав потрібний пароль і може увійти в обліковий запис роутера, він приступить до зміни налаштувань DNS-сервера. Цікаво відзначити, що для отримання доступу до аккаунту адміністративної панелі доступне лише перебору паролів без експлуатації будь-якої уразливості. Аутентифікація може бути виконана з іменами користувачів «admin» або «support», хоча попередні версії також намагалися застосувати «root» і «Administrator». Нижче наведено список паролів, які передавалися з C & C-сервера боту:

  • Порожня стрічка
  • 111111
  • 12345
  • 123456
  • 12345678
  • Abc123
  • Admin
  • Administrator
  • Consumer
  • Dragon
  • Gizmodo
  • Iqrquksm
  • Letmein
  • Lifehack
  • Monkey
  • Password
  • Qwerty
  • Root
  • SoporteETB2006
  • Support
  • Tadpassword
  • Trustno1
  • We0Qilhxtx4yLGZPhokY

У разі успішного входу в обліковий запис, шкідливий код змінює адресу основного DNS-сервера на підроблений, повідомляє про операцію успішного зараження на C & C і продовжує сканування діапазону IP-адрес. Після того як проведена така модифікація DNS, всі запити на ні перетворювати адрес будуть проходити через цей сервер зловмисників, який буде ретранслювати їх на веб-сторінки з підробленими установниками браузера Google Chrome, в разі присутності доменів «facebook» чи «google» в оригінальному запиті.

Що за вірус sality. Что за вірус sality

Мал. Веб-сторінка в разі успішного перенаправлення домену, який містить слово «google».

Ця шкідлива програма чимось нагадує відомий DNSChanger, який перенаправляв користувачів на установку шкідливих програм через рекламу підробленого ПЗ. На самі рекламні сайти користувач перенаправлявся через шкідливий DNS.

У випадку з Sality, як тільки комп'ютер піддається зараженню через запущений користувачем підроблений установник браузера Google Chrome, настройка DNS-сервера в Windows змінюється шкідливим кодом на значення «8.8.8.8» через модифікацію параметра реєстру NameServer у вказаному ступені в розділі HKLM \ SYSTEM \ ControlSet001 \ Services \ Tcpip \ Parameters \ Interfaces \. Цей IP-адреса не є шкідливим і належить альтернативного DNS-сервера Google.

Після того як операція установки DNS-сервера завершена, DNS-запис роутера для цього ПК стає марною і ОС буде використовувати явно прописаний в реєстрі сервер. З іншого боку, інші комп'ютери, які будуть намагатися підключитися до цього роутера, піддадуться шкідливим перенапрямкам, так як DNS-запис роутера як і раніше модифікована.

Шкідливий код Win32 / Sality, який займається модифікацією DNS-сервісу роутера, складається з двох виконуваних файлів: сканер адрес роутерів і DNS / HTTP-сервер.

Сканер адрес виявляється ESET як Win32 / RBrute. A . На початку своєї роботи він створює м'ютекс з ім'ям «19867861872901047sdf», що дозволяє йому відстежувати вже запущений екземпляр шкідливої програми. Потім він щохвилини перевіряє жорстко зашитий в коді IP-адреса для отримання команди. Команда може бути двох типів: перевірити діапазон IP-адрес або спробувати увійти в обліковий запис панелі управління роутера для модифікації DNS-сервісу. Інструкція перевірки діапазону адрес приходить з IP-адресою початку діапазону і кількістю адрес. Win32 / RBrute. A відправлятиме HTTP GET-запит на TCP-порт 80, сподіваючись отримати помилку 401 - Unauthorized. Модель роутера буде залучена з атрибута realm HTTP-протоколу (точніше, див. Його схему аутентифікації). Якщо роутер знайдений, шкідлива програма відправляє назад на C & C його IP-адресу.

Що за вірус sality. Что за вірус sality

Мал. Блок-схема роботи Win32 / RBrute. A.

Після того як IP-адреса відправлений на C & C, бот отримує команду на вхід в панель управління роутером. При цьому використовуються логін і пароль, видані C & C. У разі успішного входу, шкідливий код модифікує адресу основного DNS-сервера, який тепер буде вказувати на інший комп'ютер, заражений інший модифікацією RBrute - Win32 / RBrute. B .

Раніше ми згадували компонент шкідливої ​​програми, який виконує роль DNS / HTTP-сервера. Він виявляється як Win32 / RBrute. B і виконання його коду ділиться на три потоки: керуючий потік, потік DNS-сервера і потік HTTP-сервера. Хоча цей шкідливий компонент може одночасно запустити і DNS - і HTTP-сервіси, насправді, він вибирає для запуску якийсь один з них з використанням

Випадково згенерованої величини. Спеціальна константа у формулі використовується для гарантії, що в 80% випадках бот буде працювати як DNS-сервер, хоча в початковий період відстеження операції з використанням цієї шкідливої ​​програми ми спостерігали константу, яка гарантувала 50% випадків роботи в якості DNS.

Що за вірус sality. Что за вірус sality

Мал. Код вибору DNS - або HTTP-сервера для старту.

RBrute. B має і іншу гілку коду, яка виконується в тому випадку, коли вищенаведений код відпрацював невірно.

Що за вірус sality. Что за вірус sality

Мал. Інший механізм запуску потоків HTTP / DNS-серверів в коді шкідливої ​​програми.

Оператори RBrute можуть вручну запустити вищевказані потоки через відправку спеціальним чином сформованого DNS - або HTTP-запиту. Як і RBrute. A, RBrute. B використовує спеціальний м'ютекс з ім'ям «SKK29MXAD» для запобігання запуску своєї другої копії на зараженій системі.

Керуючий потік (control thread) використовується для відправки даних, зібраних шкідливої ​​програми, назад на C & C-сервер. Кожні дві хвилини RBrute. B відправляє пакет даних по жорстко зашиті IP-адресою. Цей пакет містить інформацію про систему, в якій працює бот. Потім керуючий сервер надасть боту IP-адреса, який буде використовуватися для доставки підробленого установника Google Chrome. Якщо бот працює в режимі DNS-сервера, то IP-адреса C & C-сервера буде збігатися з адресою, який потрібно використовувати в якості сервера поширення підробленого установника браузера. В іншому випадку, керуючий сервер відправить той IP-адресу, який знаходиться за межами інфраструктури Sality P2P і буде використовуватися для поширення підроблених установників Chrome.

Нижче наводиться інформація про систему, яка відправляється керуючим потоком на віддалений сервер.

  • Ім'я системи - GetComputerName () .
  • Зафіксоване час - GetLocalTime () .
  • Країна - GetLocaleInfo () .
  • Шлях до директорії Windows - GetWindowsDirectoryA () .
  • Назва продукту ОС - з системного реєстру HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Product Name.
  • Назви процесорів - з системного реєстру HKEY_LOCAL_MACHINE \ HARDWARE \ DESCRIPTION \ System \ CentralProcessor \ <CPU #> \ ProcessorNameString.
  • Обсяг пам'яті GlobalMemoryStatus () .
  • Присутність відладчика - IsDebuggerPresent () .
  • Кількість пам'яті, що використовується шкідливою програмою GetProcessMemoryInfo () .
  • Час роботи шкідливої ​​програми - в хвилинах.
  • Кількість працюючих потоків.

Пакет з інформацією має такий вигляд:

0x00 DWORD Контрольная_сумма (CRC32)

0x04 WORD Размер_полезной_нагрузкі

0x06 BYTE Не_іспользуется

0x07 BYTE Режім_работи (HTTP - 0x32 або DNS - 0x64)

Нижче показаний скріншот з інформацією пакета, відправленого на C & C.

Що за вірус sality. Что за вірус sality

Мал. Пакет, що відправляється ботом на віддалений сервер. Синім відзначено поле контрольної суми, червоним поле розміру корисного навантаження, чорним зашифрована константа режиму роботи сервера, зеленим зашифрована інформація про систему.

Інформація про систему може мати вигляд (в пакеті зашифрована з використанням RC4):

9BC13555 | 24.03.2014 21: 56: 27 | United States | C: \ WINDOWS | Microsoft Windows XP | proc # 0 QEMU Virtual CPU version 1.0 | 1 | 358 | 511 | 1117 | 1246 | 0 | 2 | 0 | 0 |

Керуючий сервер потім відповість пакетом, який містить IP-адресу для використання. Пакет має вигляд.

0x00 DWORD Контрольная_сумма (CRC32)

0x04 WORD Размер_полезной_нагрузкі

0x06 BYTE Не_іспользуется

0x07 BYTE Команда (0x02 - запустити або 0x03 - зупинити сервіс)

0x08 DWORD IP_адрес_сервіса (Система з запущеним Win32 / Rbrute. B або інший HTTP-сервер)

Потік компонента DNS-сервера очікує запити, які містять слова «google» або «facebook» в назві домену. Якщо він виявляє подібний запит, то нічого не підозрює клієнта висилається IP-адреса необхідного зловмисникам HTTP-сервера, який вони раніше вже відправили цього боту (Win32 / Rbrute. B) через C & C. Якщо запит не містить цих двох слів, то він перенаправив до DNS-сервісу Google ( «8.8.8.8» або «8.8.4.4»), а потім клієнту.

Відправка ботом запиту на сервер через протокол UDP на порт 53 пакета з константою «0xCAFEBABE» в поле корисного навантаження призведе до встановлення прапора «udme» в розділі системного реєстру HKEY_CURRENT_USER \ SOFTWARE \ Fihd4. Цей прапор гарантує, що потік DNS-сервера буде запущений після перезавантаження. Сервер повинен відповісти константою «0xDEADCODE» для підтвердження виконання цієї дії.

Ми згадували окремий потік HTTP-сервісу в Win32 / RBrute. B. Розглянемо його більш детально. Цей сервіс обслуговує користувачів, які були перенаправлені через шкідливий DNS роутера на скачування підробленого дистрибутива браузера Google Chrome. При отриманні запиту через HTTP, потік сервісу спочатку проаналізує параметр User-Agent в заголовку. Подальша поведінка сервісу залежить від того, що знаходиться в цьому параметрі.

Якщо параметр User-Agent містить рядок «linux» або «playstation», сервіс просто розірве з'єднання. У разі, якщо User-Agent містить інформацію про те, що використовується браузер на мобільному пристрої (зустрічаються «android», «tablet», «Windows CE», «blackberry» або «opera mini»), то сервіс може відповісти підробленим монтажником браузера. Також підроблений установник Chrome буде доставлений, якщо User-Agent містить «opera», «firefox», «chrome», «msie», або щось інше.

Що за вірус sality. Что за вірус sality

Як і у випадку з DNS-сервісом, оператор може сам вплинути на поведінку HTTP-сервісу шляхом відправки спеціальним чином сформованого HTTP-пакета. Він може це зробити відправивши GET або POST запит із спеціальним User-Agent «BlackBerry9000 / 5.0.0.93 Profile / MIDP-2.0 Configuration / CLDC-2.1 VendorID / 831», що призведе до встановлення прапора «htme» ботом в розділі реєстру HKEY_CURRENT_USER \ SOFTWARE \ Fihd4. Це гарантує запуск HTTP-сервера після перезавантаження. Сервер (бот з Win32 / RBrute. B) повинен відповісти сполученням «kenji oke» для підтвердження виконання команди.

Всі компоненти Sality, оскільки вони часто отримують з'єднання з мережі, мають в своєму складі один і той же код для додавання спеціального правила Windows Firewall, яке дозволить вхідні з'єднання для процесу шкідливої програми. Така операція виконується за рахунок додавання параметра « Імя_файла_вредоносной_программи: *: Enabled: ipsec » в розділ реєстру HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ SharedAccess \ Parameters \ FirewallPolicy \ StandardProfile \ AuthorizedApplications \ List. Нижче зазначений код функції Add_to_firewall_exception Sality . який виконує цю операцію.

Що за вірус sality. Что за вірус sality

У компоненті Win32 / RBrute. B ця функція викликається на початку виконання шкідливої ​​програми.

Що за вірус sality. Что за вірус sality

Мал. Звідси здійснюється виклик функції Add_to_firewall_exception .

Аналогічний код знаходиться в компоненті спам-бота, який належить Sality.

Що за вірус sality. Что за вірус sality

Мал. Код спам-бота Sality, в якому викликається Add_to_firewall_exception .

Наші дані телеметрії показують, що активність Win32 / Sality в даний час знижується або, принаймні, залишається на такому ж рівні як в 2012 р Ми вважаємо, що скорочення числа виявлень пов'язано з низькою ефективністю текующіх векторів зараження користувачів. Це могло б пояснити той факт, що зловмисники шукають нові способи для поширення Win32 / Sality.

Що за вірус sality. Что за вірус sality

Якщо ми подивимося на статистику виявлень Sality за останній рік, то побачимо невелике збільшення кількості виявлень, приблизно, в грудні 2013. Ця дата збігається з часом першої активності компонента RBrute, який виконує підміну DNS-сервісу роутера.

Що за вірус sality. Что за вірус sality

Ми не впевнені в реальної ефективності компонента RBrute для зловмисників, оскільки переважна кількість роутерів прослуховують тільки жорстко фіксоване адресний простір (т. Е. 192.168.0.0/16), що робить панель управління недоступною з інтернету. Крім цього, компонент RBrute не виконує сильний перебір паролів, а тільки намагається застосувати десять паролів з реєстру.

Висновок

Прості вектори зараження користувачів шкідливим кодом Win32 / Sality не можуть бути досить ефективними, щоб підтримувати популяцію ботнету на відповідному рівні. Зловмисники мали потребу в новому способі поширення шкідливої ​​програми і таким способом став DNS hijacking для роутера. Залежно від того, чи схильна обраний роутер експлуатації, його жертвами перенаправлень може стати безліч підключених до нього користувачів. Ми рекомендуємо використовувати безпечні паролі для акаунтів панелей управління роутерів, а також перевіряти чи дійсно необхідно вирішувати доступ до неї з інтернету.