Статьи

Чорний DDoS - Blog Imena.UA

  1. Чорний DDoS Чимало існує ботів, за допомогою яких зловмисники організовують DDoS-атаки на інтернет-сервера....
  2. Захисна оболонка
  3. Інфектор
  4. впроваджувана dll
  5. Основні плагіни
  6. плагін ddos
  7. плагін syn
  8. плагін http
  9. базові команди
  10. висновок
  11. Чорний DDoS
  12. Крок за кроком: складові бота
  13. Захисна оболонка
  14. Інфектор
  15. впроваджувана dll
  16. Основні плагіни
  17. плагін ddos
  18. плагін syn
  19. плагін http
  20. базові команди
  21. висновок
  22. Чорний DDoS
  23. Крок за кроком: складові бота
  24. Захисна оболонка
  25. Інфектор
  26. впроваджувана dll
  27. Основні плагіни
  28. плагін ddos
  29. плагін syn
  30. плагін http
  31. базові команди
  32. висновок
  33. Чорний DDoS
  34. Крок за кроком: складові бота
  35. Захисна оболонка
  36. Інфектор
  37. впроваджувана dll
  38. Основні плагіни
  39. плагін ddos
  40. плагін syn
  41. плагін http
  42. базові команди
  43. висновок

Чорний DDoS

Чимало існує ботів, за допомогою яких зловмисники організовують DDoS-атаки на інтернет-сервера. Одним з найпопулярніших таких інструментів є Black Energy. На даний момент «Лабораторією Касперського» виявлено та детектується більше 4000 варіацій цієї шкідливої ​​програми. У середині 2008-го року вирусописатели піддали первинну версію бота істотної зміни. З'явився так званий Black Energy 2 ( «Лабораторія Касперського» класифікує його як Backdoor.Win32.Blakken). Про нього і піде мова в цій статті.

Крок за кроком: складові бота

Автор реалізував в боті кілька основних завдань: приховування коду програми від антивірусних продуктів, зараження системних процесів і, нарешті, гнучкий механізм реалізації різної шкідливої ​​активності на зараженій машині по команді з центру управління ботнетом. За виконання кожного завдання відповідають різні складові шкідливої ​​програми.

рис
рис.1 Етапи роботи Black Energy 2

Захисна оболонка

Як і більшість шкідливих програм, Black Energy 2 має якусь захисну оболонку, що приховує шкідливу начинку від антивірусів: шифрування, архівування коду, також можуть бути використані анти-емуляціонние методи.

Після запуску на комп'ютері користувача exe-файлу Black Energy 2 шкідливий додаток виділяє віртуальну пам'ять, копіює в неї код дешіфровщіка і передає на нього управління.

В результаті виконання коду дешіфровщіка в пам'яті з'являється код з функцією Дроппер, виконання якого призводить до створення в системному каталозі «<WINDIR> system32drivers» драйвера-дешіфровщіка з випадковим ім'ям, наприклад, «EIBCRDZB.SYS». Після чого створюється і запускається пов'язана з цим драйвером служба, також з випадковим ім'ям:

Мал
Мал. 2 Запуск шкідливого драйвера-дешіфровщіка

Драйвер, як і початкове exe-додаток, що ініціює процес зараження комп'ютера, за своєю суттю є «обгорткою», в якій заховано найцікавіше.

Інфектор

У коді драйвера-дешіфровщіка присутній блок зашифрованих і запакованих даних:

Мал
Мал. 3 Зашифровані дані всередині драйвера-дешіфровщіка

Такий блок даних має певну структуру:

Мал
Мал. 4 Структура зашифрованих даних

За допомогою ключа з цього блоку будується інший ключ довжиною 100h байт, який використовується для розшифровки архіву. Алгоритм шифрування добре відомий - це RC4. Якщо розмір архіву збігається з розміром даних, то архівація даних відсутній, в іншому випадку розшифрований архів піддається розпакуванню.

Розшифровані дані представляють собою драйвер-інфектор, в функціонал якого закладено впровадження бібліотеки dll в процес користувацького режиму svchost.exe. Щоб запустити драйвер-інфектор, драйвер-дешифровщик виділяє під нього пам'ять, копіює туди розшифрований код, налаштовує під поточне адресний простір і передає управління. Шкідлива бібліотека dll зберігається в в секції «.bdata» драйвера-інфектора. Цей блок даних також має вищезгадану структуру. Драйвером-інфектором знаходиться процес svchost.exe, в його адресному просторі виділяється пам'ять, в неї копіюється шкідлива dll, яка налаштовується під адреси виділеної пам'яті. Код впровадженої бібліотеки з режиму ядра запускається в такий спосіб:

Мал
Мал. 5 Запуск впровадженої бібліотеки в svchost.exe

Тут використовується обробка черги APC. Спочатку инициализируется APC з адресою функції DllEntry впровадженої бібліотеки, потім за допомогою KeInsertQueueApc APC ставиться в чергу. Коли svchost.exe буде готовий до обробки APC черзі (що відбувається практично відразу ж), в його контексті запуститься потік з адреси DllEntry.

впроваджувана dll

Впроваджена в svchost.exe бібліотека dll є основним керуючим ланкою по організації DDoS-атаки з зараженого комп'ютера. Також як і драйвер-інфектор, бібліотека має секцію .bdata, в якій зберігається блок зашифрованих даних, що має вже відому нам структуру. Ці дані представляють собою xml-документ, в якому визначені необхідні початкові налаштування бота. Такий документ може виглядати, наприклад, ось так:

Мал
Мал. 6 Початкові налаштування бота

Найважливіша інформація - це, звичайно, адреса центру управління ботнетом. В даному випадку для надійності таких адрес вказано два: якщо буде закритий один, і бот до нього не «достукаєтеся», він зможе спробувати встановити зв'язок з господарем по резервному адресою.

На адресу центру управління бот посилає заздалегідь підготовлений http-запит, який представляє собою рядок, що містить ідентифікаційні дані зараженої машини. Ось як може виглядати такий рядок:

id = xCOMPUTERNAME_62CF4DEF & ln = ru & cn = RU & nt = 2600 & bid = 3

Параметр id, ідентифікатор зараженої машини, включає в себе ім'я комп'ютера і серійний номер жорсткого диска, на якому розміщений диск C :. Далі вказуються дані про операційну систему: мова системи, країна, в якій встановлена ​​система, і номер складання системи. В кінці додається ідентифікатор збірки бота (останнє поле «build_id» в xml-документі початкових налаштувань).

Певний вид рядка запиту служить підтвердженням того, що запит робить саме бот. Крім того, для центру управління свого роду паролем може служити також user-agent http-запиту.

Якщо центр управління приймає запит, то у відповідь він посилає файл конфігурації бота також у вигляді зашифрованого xml-документа. Шифрування використовується те ж саме, що і в разі шифрування даних в драйвері і dll - RC4. Ключем є ідентифікатор зараженої машини (параметр id рядка запиту, в наведеному вище прикладі - «xCOMPUTERNAME_62CF4DEF»).

Давайте подивимося на приклад таких інструкцій:

Мал
Мал. 7 Файл конфігурації: інструкції з центру управління

Розділ <plugins> повідомляє боту, які модулі є на сервері господаря для організації DDoS-атаки. Якщо у бота ще немає такого модуля, або на сервері новішої версії, то бот посилає запит серверу на скачування плагіна, наприклад:

getp = http & id = xCOMPUTERNAME_62CF4DEF & ln = ru & cn = RU & nt = 2600 & bid = 3

Плагін являє собою бібліотеку dll. Передається вона боту в зашифрованому вигляді. Якщо для шифрування використовується ключ, відмінний від значення параметра id, то він вказується у файлі конфігурації в поле <key>. Після отримання та розшифровки бібліотеки-плагіна, вона розміщується в виділену під неї пам'ять, після чого готова приступити до DDoS-атаці, як тільки прийде відповідна команда.

Модулі завантажуються на заражений комп'ютер регулярно: як тільки вирусописатели поліпшить метод атаки, бот Black Energy 2 довантажити новішу версію плагіна.

Завантажені таким чином плагіни зберігаються на жорсткому диску зараженого комп'ютера в системному каталозі «<WINDIR> system32drivers» під ім'ям «str.sys». Вміст файлу «str.sys» шифрується, ключем є значення параметра id. До шифрування дані, що зберігаються в «str.sys», виглядають так:

Мал
Мал. 8 незашифрованому вміст файлу str.sys: сховище плагінів

У кожному плагін є продукція, що експортується функція DispatchCommand, яку викликає основний керуючий модуль - впроваджена в процес svchost.exe бібліотека dll. Функції DispatchCommand передається параметр - одна з команд розділу в файлі конфігурації бота. Після чого плагін виконує дану команду.

Основні плагіни

Основними плагінами Black Energy 2 є ddos, syn і http. Розповімо трохи про кожен з них.

плагін ddos

На вхід плагіну ddos ​​надходить адреса атакується сервера, протокол і порт. Відповідно, не започатковано масові з'єднання з сервером на певний порт за певним протоколу. Після встановлення з'єднання на сервер надсилається заповнений випадковим чином пакет даних. Підтримуються протоколи tcp, udp, icmp і http.

Ось приклад реалізації виконання команди «ddos_start udp <інтернет-адреса> 80»:

Мал
Мал. 9 Створення сокета, протокол UDP

Мал
Мал. 10-1 Відправка даних: sendto і стек

Мал
Мал. 10-2 Відправка даних - куди. pTo: ip-адреса і порт

Мал
Мал. 10-3 Відправка даних - що. Data: випадковий набір байт

За протоколом http плагіном ddos ​​за допомогою функцій socket, connect і send на сервер надсилається GET-запит.

плагін syn

На відміну від інших плагінів, згаданих у цій статті, в плагін syn присутній мережевий драйвер. При виконанні функції DllEntry плагіна цей драйвер встановлюється в системний каталог «system32drivers» під ім'ям «synsenddrv.sys». Відправку мережевих пакетів він бере на себе. Функція DispatchCommand, як уже можна здогадатися, чекає від керуючої бібліотеки параметр такого виду: «syn_start» або «syn_stop». У разі отримання першого параметра плагін починає атаку, якщо отриманий другий - припиняє. Атака в даному випадку є множинні запити серверу на установку з'єднання, відкриття мережевий сесії, так званий «обмін рукостисканнями»:

Мал
Мал. 11 SYN-атака: SYN-> ACK-> RST

Природно, коли такі множинні запити виходять від великої кількості заражених комп'ютерів, це створює відчутну навантаження на сервер.

плагін http

Проти описаних вище методів DDoS-атак часто застосовується редирект: сервер з інтернет-ресурсами ховається за шлюз, який видно ззовні, а шлюз перенаправляє запити на сервер з ресурсами. Від DDoS-атак шлюз захищається всілякими способами, і «звалити» його не так-то просто. Відповідно, плагінами ddos ​​і syn по IP-адресою може бути атакований тільки шлюз, так як ніякого функціоналу розпізнавання перенаправлення трафіку у них немає, і мережевий «флуд», який вони генерують, до сервера з інтернет-ресурсами просто не доходить. На цей випадок вірусопісателямі і був розроблений плагін http.

Отримавши команду «http_start <url> <port>», плагін http створює COM-об'єкт «Internet Explorer (Ver 1.0)» з інтерфейсом «IWebBrowser2». Викликається метод Navigate з параметром з команди «http_start». В результаті COM-об'єкт «Internet Explorer (Ver 1.0)» реалізує перехід на зазначену сторінку. Далі за допомогою методу Busy шкідлива програма очікує, коли запит повністю відпрацює.

Мал
Мал. 12-1 Створення COM-об'єкта

Мал
Мал. 12-2 Покажчик на CLSID

Мал
Мал. 12-3 Покажчик на ID інтерфейсу

Мал
Мал. 13 Виклик методу Navigate

Мал
Мал. 14 Виклик методу Busy

Таким чином, повністю емулюється візит на сторінку звичайного користувача. Різниця лише в тому, що, на відміну від користувача, описувана шкідлива програма робить безліч заходів на один і той же адреса був призначений додатковий короткий проміжок часу. Навіть якщо використовується шлюз з перенаправленням, http-запит перенаправляється на захищається сервер з інтернет-ресурсами, і на цей сервер створюється навантаження.

базові команди

Крім завантаження плагінів і виконання команд, пов'язаних з цими плагінами, Black Energy 2 «розуміє» кілька загальних команд, які можуть виходити від центру управління:

rexec - завантажити з інтернету вказаний файл і запустити його;

lexec - запустити вказаний файл, який знаходиться на зараженому комп'ютері;

die - припинити виконання бота;

upd - оновити бот;

setfreq - встановити частоту звернення до центру управління;

http - послати http-запит на вказану статтю в інтернеті.

висновок

Спочатку Black Energy створювався як бот для організації DDoS-атак, але з появою в другій версії плагінів функціонал цього шкідливого сімейства практично не обмежений (правда зловмисники поки використовують його, в основному, як засіб для DDoS). Можна встановити плагін, наприклад, для розсилки спаму, перехоплення даних користувача, організації проксі-сервера і т.д., і т.п. Команда upd дозволяє оновлювати бот, наприклад, по-новому зашифрованою версією. Регулярне оновлення дає боту можливість довгий час ховатися від ряду антивірусних програм, які можуть бути встановлені на зараженому комп'ютері. Потенціал цього шкідливого інструменту досить високий, що, безумовно, є великою небезпекою. Благо в Мережі відсутні так звані публічні версії білдерів для збірки ботів Black Energy 2, тому різні варіації цієї шкідливої ​​програми з'являються не в таких кількостях, як, наприклад, того ж ZeuS або першого Black Energy. Але, судячи за наявними у нас даними, у зловмисників побудовані великі ботнети на платформі Black Energy 2, які вже проявили себе в DDoS-атаках.

Яким чином господарі вирішать використовувати свої ботнети надалі, заздалегідь не вгадаєш. Для вирусописатели нескладно створити плагін і завантажити його на заражені комп'ютери користувачів. При цьому код плагіна проявиться лише в пам'яті зараженого комп'ютера, в інших місцях - при пересиланні даних чи, при зберіганні чи на жорсткому диску - шкідливі модулі будуть зашифровані. До того ж самі по собі плагіни для Black Energy 2 виконуваними файлами «.exe» не є. Модулі завантажуються тільки на заражену машину, відповідно, поширюватися розрахованими на масові зараження методами не будуть і можуть довгий час не потрапляти на очі антивірусним компаніям. Але саме плагіни в кінцевому підсумку виконують задум зловмисника - ті шкідливі дії, заради яких і були заражені Black Energy 2 комп'ютери користувачів. Знати їх необхідно! Для цього в нашій Лабораторії і організований моніторинг підвантажуваних плагінів для Black Energy 2, так що тенденції використання цього зловреда не повинні від нас вислизнути. Будемо тримати в курсі і вас.

(Автор: Дмитро Тараканов , Експерт «Лабораторії Касперського»)

Чорний DDoS

Чимало існує ботів, за допомогою яких зловмисники організовують DDoS-атаки на інтернет-сервера. Одним з найпопулярніших таких інструментів є Black Energy. На даний момент «Лабораторією Касперського» виявлено та детектується більше 4000 варіацій цієї шкідливої ​​програми. У середині 2008-го року вирусописатели піддали первинну версію бота істотної зміни. З'явився так званий Black Energy 2 ( «Лабораторія Касперського» класифікує його як Backdoor.Win32.Blakken). Про нього і піде мова в цій статті.

Крок за кроком: складові бота

Автор реалізував в боті кілька основних завдань: приховування коду програми від антивірусних продуктів, зараження системних процесів і, нарешті, гнучкий механізм реалізації різної шкідливої ​​активності на зараженій машині по команді з центру управління ботнетом. За виконання кожного завдання відповідають різні складові шкідливої ​​програми.

рис
рис.1 Етапи роботи Black Energy 2

Захисна оболонка

Як і більшість шкідливих програм, Black Energy 2 має якусь захисну оболонку, що приховує шкідливу начинку від антивірусів: шифрування, архівування коду, також можуть бути використані анти-емуляціонние методи.

Після запуску на комп'ютері користувача exe-файлу Black Energy 2 шкідливий додаток виділяє віртуальну пам'ять, копіює в неї код дешіфровщіка і передає на нього управління.

В результаті виконання коду дешіфровщіка в пам'яті з'являється код з функцією Дроппер, виконання якого призводить до створення в системному каталозі «<WINDIR> system32drivers» драйвера-дешіфровщіка з випадковим ім'ям, наприклад, «EIBCRDZB.SYS». Після чого створюється і запускається пов'язана з цим драйвером служба, також з випадковим ім'ям:

Рис
Рис. 2 Запуск шкідливого драйвера-дешіфровщіка

Драйвер, як і початкове exe-додаток, що ініціює процес зараження комп'ютера, за своєю суттю є «обгорткою», в якій заховано найцікавіше.

Інфектор

У коді драйвера-дешіфровщіка присутній блок зашифрованих і запакованих даних:

Рис
Рис. 3 Зашифровані дані всередині драйвера-дешіфровщіка

Такий блок даних має певну структуру:

Рис
Рис. 4 Структура зашифрованих даних

За допомогою ключа з цього блоку будується інший ключ довжиною 100h байт, який використовується для розшифровки архіву. Алгоритм шифрування добре відомий - це RC4. Якщо розмір архіву збігається з розміром даних, то архівація даних відсутній, в іншому випадку розшифрований архів піддається розпакуванню.

Розшифровані дані представляють собою драйвер-інфектор, в функціонал якого закладено впровадження бібліотеки dll в процес користувацького режиму svchost.exe. Щоб запустити драйвер-інфектор, драйвер-дешифровщик виділяє під нього пам'ять, копіює туди розшифрований код, налаштовує під поточне адресний простір і передає управління. Шкідлива бібліотека dll зберігається в в секції «.bdata» драйвера-інфектора. Цей блок даних також має вищезгадану структуру. Драйвером-інфектором знаходиться процес svchost.exe, в його адресному просторі виділяється пам'ять, в неї копіюється шкідлива dll, яка налаштовується під адреси виділеної пам'яті. Код впровадженої бібліотеки з режиму ядра запускається в такий спосіб:

Рис
Рис. 5 Запуск впровадженої бібліотеки в svchost.exe

Тут використовується обробка черги APC. Спочатку инициализируется APC з адресою функції DllEntry впровадженої бібліотеки, потім за допомогою KeInsertQueueApc APC ставиться в чергу. Коли svchost.exe буде готовий до обробки APC черзі (що відбувається практично відразу ж), в його контексті запуститься потік з адреси DllEntry.

впроваджувана dll

Впроваджена в svchost.exe бібліотека dll є основним керуючим ланкою по організації DDoS-атаки з зараженого комп'ютера. Також як і драйвер-інфектор, бібліотека має секцію .bdata, в якій зберігається блок зашифрованих даних, що має вже відому нам структуру. Ці дані представляють собою xml-документ, в якому визначені необхідні початкові налаштування бота. Такий документ може виглядати, наприклад, ось так:

Рис
Рис. 6 Початкові налаштування бота

Найважливіша інформація - це, звичайно, адреса центру управління ботнетом. В даному випадку для надійності таких адрес вказано два: якщо буде закритий один, і бот до нього не «достукаєтеся», він зможе спробувати встановити зв'язок з господарем по резервному адресою.

На адресу центру управління бот посилає заздалегідь підготовлений http-запит, який представляє собою рядок, що містить ідентифікаційні дані зараженої машини. Ось як може виглядати такий рядок:

id = xCOMPUTERNAME_62CF4DEF & ln = ru & cn = RU & nt = 2600 & bid = 3

Параметр id, ідентифікатор зараженої машини, включає в себе ім'я комп'ютера і серійний номер жорсткого диска, на якому розміщений диск C :. Далі вказуються дані про операційну систему: мова системи, країна, в якій встановлена ​​система, і номер складання системи. В кінці додається ідентифікатор збірки бота (останнє поле «build_id» в xml-документі початкових налаштувань).

Певний вид рядка запиту служить підтвердженням того, що запит робить саме бот. Крім того, для центру управління свого роду паролем може служити також user-agent http-запиту.

Якщо центр управління приймає запит, то у відповідь він посилає файл конфігурації бота також у вигляді зашифрованого xml-документа. Шифрування використовується те ж саме, що і в разі шифрування даних в драйвері і dll - RC4. Ключем є ідентифікатор зараженої машини (параметр id рядка запиту, в наведеному вище прикладі - «xCOMPUTERNAME_62CF4DEF»).

Давайте подивимося на приклад таких інструкцій:

Рис
Рис. 7 Файл конфігурації: інструкції з центру управління

Розділ <plugins> повідомляє боту, які модулі є на сервері господаря для організації DDoS-атаки. Якщо у бота ще немає такого модуля, або на сервері новішої версії, то бот посилає запит серверу на скачування плагіна, наприклад:

getp = http & id = xCOMPUTERNAME_62CF4DEF & ln = ru & cn = RU & nt = 2600 & bid = 3

Плагін являє собою бібліотеку dll. Передається вона боту в зашифрованому вигляді. Якщо для шифрування використовується ключ, відмінний від значення параметра id, то він вказується у файлі конфігурації в поле <key>. Після отримання та розшифровки бібліотеки-плагіна, вона розміщується в виділену під неї пам'ять, після чого готова приступити до DDoS-атаці, як тільки прийде відповідна команда.

Модулі завантажуються на заражений комп'ютер регулярно: як тільки вирусописатели поліпшить метод атаки, бот Black Energy 2 довантажити новішу версію плагіна.

Завантажені таким чином плагіни зберігаються на жорсткому диску зараженого комп'ютера в системному каталозі «<WINDIR> system32drivers» під ім'ям «str.sys». Вміст файлу «str.sys» шифрується, ключем є значення параметра id. До шифрування дані, що зберігаються в «str.sys», виглядають так:

Рис
Рис. 8 незашифрованому вміст файлу str.sys: сховище плагінів

У кожному плагін є продукція, що експортується функція DispatchCommand, яку викликає основний керуючий модуль - впроваджена в процес svchost.exe бібліотека dll. Функції DispatchCommand передається параметр - одна з команд розділу в файлі конфігурації бота. Після чого плагін виконує дану команду.

Основні плагіни

Основними плагінами Black Energy 2 є ddos, syn і http. Розповімо трохи про кожен з них.

плагін ddos

На вхід плагіну ddos ​​надходить адреса атакується сервера, протокол і порт. Відповідно, не започатковано масові з'єднання з сервером на певний порт за певним протоколу. Після встановлення з'єднання на сервер надсилається заповнений випадковим чином пакет даних. Підтримуються протоколи tcp, udp, icmp і http.

Ось приклад реалізації виконання команди «ddos_start udp <інтернет-адреса> 80»:

Рис
Рис. 9 Створення сокета, протокол UDP

Рис
Рис. 10-1 Відправка даних: sendto і стек

Рис
Рис. 10-2 Відправка даних - куди. pTo: ip-адреса і порт

Рис
Рис. 10-3 Відправка даних - що. Data: випадковий набір байт

За протоколом http плагіном ddos ​​за допомогою функцій socket, connect і send на сервер надсилається GET-запит.

плагін syn

На відміну від інших плагінів, згаданих у цій статті, в плагін syn присутній мережевий драйвер. При виконанні функції DllEntry плагіна цей драйвер встановлюється в системний каталог «system32drivers» під ім'ям «synsenddrv.sys». Відправку мережевих пакетів він бере на себе. Функція DispatchCommand, як уже можна здогадатися, чекає від керуючої бібліотеки параметр такого виду: «syn_start» або «syn_stop». У разі отримання першого параметра плагін починає атаку, якщо отриманий другий - припиняє. Атака в даному випадку є множинні запити серверу на установку з'єднання, відкриття мережевий сесії, так званий «обмін рукостисканнями»:

Рис
Рис. 11 SYN-атака: SYN-> ACK-> RST

Природно, коли такі множинні запити виходять від великої кількості заражених комп'ютерів, це створює відчутну навантаження на сервер.

плагін http

Проти описаних вище методів DDoS-атак часто застосовується редирект: сервер з інтернет-ресурсами ховається за шлюз, який видно ззовні, а шлюз перенаправляє запити на сервер з ресурсами. Від DDoS-атак шлюз захищається всілякими способами, і «звалити» його не так-то просто. Відповідно, плагінами ddos ​​і syn по IP-адресою може бути атакований тільки шлюз, так як ніякого функціоналу розпізнавання перенаправлення трафіку у них немає, і мережевий «флуд», який вони генерують, до сервера з інтернет-ресурсами просто не доходить. На цей випадок вірусопісателямі і був розроблений плагін http.

Отримавши команду «http_start <url> <port>», плагін http створює COM-об'єкт «Internet Explorer (Ver 1.0)» з інтерфейсом «IWebBrowser2». Викликається метод Navigate з параметром з команди «http_start». В результаті COM-об'єкт «Internet Explorer (Ver 1.0)» реалізує перехід на зазначену сторінку. Далі за допомогою методу Busy шкідлива програма очікує, коли запит повністю відпрацює.

Рис
Рис. 12-1 Створення COM-об'єкта

Рис
Рис. 12-2 Покажчик на CLSID

Рис
Рис. 12-3 Покажчик на ID інтерфейсу

Рис
Рис. 13 Виклик методу Navigate

Рис
Рис. 14 Виклик методу Busy

Таким чином, повністю емулюється візит на сторінку звичайного користувача. Різниця лише в тому, що, на відміну від користувача, описувана шкідлива програма робить безліч заходів на один і той же адреса був призначений додатковий короткий проміжок часу. Навіть якщо використовується шлюз з перенаправленням, http-запит перенаправляється на захищається сервер з інтернет-ресурсами, і на цей сервер створюється навантаження.

базові команди

Крім завантаження плагінів і виконання команд, пов'язаних з цими плагінами, Black Energy 2 «розуміє» кілька загальних команд, які можуть виходити від центру управління:

rexec - завантажити з інтернету вказаний файл і запустити його;

lexec - запустити вказаний файл, який знаходиться на зараженому комп'ютері;

die - припинити виконання бота;

upd - оновити бот;

setfreq - встановити частоту звернення до центру управління;

http - послати http-запит на вказану статтю в інтернеті.

висновок

Спочатку Black Energy створювався як бот для організації DDoS-атак, але з появою в другій версії плагінів функціонал цього шкідливого сімейства практично не обмежений (правда зловмисники поки використовують його, в основному, як засіб для DDoS). Можна встановити плагін, наприклад, для розсилки спаму, перехоплення даних користувача, організації проксі-сервера і т.д., і т.п. Команда upd дозволяє оновлювати бот, наприклад, по-новому зашифрованою версією. Регулярне оновлення дає боту можливість довгий час ховатися від ряду антивірусних програм, які можуть бути встановлені на зараженому комп'ютері. Потенціал цього шкідливого інструменту досить високий, що, безумовно, є великою небезпекою. Благо в Мережі відсутні так звані публічні версії білдерів для збірки ботів Black Energy 2, тому різні варіації цієї шкідливої ​​програми з'являються не в таких кількостях, як, наприклад, того ж ZeuS або першого Black Energy. Але, судячи за наявними у нас даними, у зловмисників побудовані великі ботнети на платформі Black Energy 2, які вже проявили себе в DDoS-атаках.

Яким чином господарі вирішать використовувати свої ботнети надалі, заздалегідь не вгадаєш. Для вирусописатели нескладно створити плагін і завантажити його на заражені комп'ютери користувачів. При цьому код плагіна проявиться лише в пам'яті зараженого комп'ютера, в інших місцях - при пересиланні даних чи, при зберіганні чи на жорсткому диску - шкідливі модулі будуть зашифровані. До того ж самі по собі плагіни для Black Energy 2 виконуваними файлами «.exe» не є. Модулі завантажуються тільки на заражену машину, відповідно, поширюватися розрахованими на масові зараження методами не будуть і можуть довгий час не потрапляти на очі антивірусним компаніям. Але саме плагіни в кінцевому підсумку виконують задум зловмисника - ті шкідливі дії, заради яких і були заражені Black Energy 2 комп'ютери користувачів. Знати їх необхідно! Для цього в нашій Лабораторії і організований моніторинг підвантажуваних плагінів для Black Energy 2, так що тенденції використання цього зловреда не повинні від нас вислизнути. Будемо тримати в курсі і вас.

(Автор: Дмитро Тараканов , Експерт «Лабораторії Касперського»)

Чорний DDoS

Чимало існує ботів, за допомогою яких зловмисники організовують DDoS-атаки на інтернет-сервера. Одним з найпопулярніших таких інструментів є Black Energy. На даний момент «Лабораторією Касперського» виявлено та детектується більше 4000 варіацій цієї шкідливої ​​програми. У середині 2008-го року вирусописатели піддали первинну версію бота істотної зміни. З'явився так званий Black Energy 2 ( «Лабораторія Касперського» класифікує його як Backdoor.Win32.Blakken). Про нього і піде мова в цій статті.

Крок за кроком: складові бота

Автор реалізував в боті кілька основних завдань: приховування коду програми від антивірусних продуктів, зараження системних процесів і, нарешті, гнучкий механізм реалізації різної шкідливої ​​активності на зараженій машині по команді з центру управління ботнетом. За виконання кожного завдання відповідають різні складові шкідливої ​​програми.

рис
рис.1 Етапи роботи Black Energy 2

Захисна оболонка

Як і більшість шкідливих програм, Black Energy 2 має якусь захисну оболонку, що приховує шкідливу начинку від антивірусів: шифрування, архівування коду, також можуть бути використані анти-емуляціонние методи.

Після запуску на комп'ютері користувача exe-файлу Black Energy 2 шкідливий додаток виділяє віртуальну пам'ять, копіює в неї код дешіфровщіка і передає на нього управління.

В результаті виконання коду дешіфровщіка в пам'яті з'являється код з функцією Дроппер, виконання якого призводить до створення в системному каталозі «<WINDIR> system32drivers» драйвера-дешіфровщіка з випадковим ім'ям, наприклад, «EIBCRDZB.SYS». Після чого створюється і запускається пов'язана з цим драйвером служба, також з випадковим ім'ям:

Рис
Рис. 2 Запуск шкідливого драйвера-дешіфровщіка

Драйвер, як і початкове exe-додаток, що ініціює процес зараження комп'ютера, за своєю суттю є «обгорткою», в якій заховано найцікавіше.

Інфектор

У коді драйвера-дешіфровщіка присутній блок зашифрованих і запакованих даних:

Рис
Рис. 3 Зашифровані дані всередині драйвера-дешіфровщіка

Такий блок даних має певну структуру:

Рис
Рис. 4 Структура зашифрованих даних

За допомогою ключа з цього блоку будується інший ключ довжиною 100h байт, який використовується для розшифровки архіву. Алгоритм шифрування добре відомий - це RC4. Якщо розмір архіву збігається з розміром даних, то архівація даних відсутній, в іншому випадку розшифрований архів піддається розпакуванню.

Розшифровані дані представляють собою драйвер-інфектор, в функціонал якого закладено впровадження бібліотеки dll в процес користувацького режиму svchost.exe. Щоб запустити драйвер-інфектор, драйвер-дешифровщик виділяє під нього пам'ять, копіює туди розшифрований код, налаштовує під поточне адресний простір і передає управління. Шкідлива бібліотека dll зберігається в в секції «.bdata» драйвера-інфектора. Цей блок даних також має вищезгадану структуру. Драйвером-інфектором знаходиться процес svchost.exe, в його адресному просторі виділяється пам'ять, в неї копіюється шкідлива dll, яка налаштовується під адреси виділеної пам'яті. Код впровадженої бібліотеки з режиму ядра запускається в такий спосіб:

Рис
Рис. 5 Запуск впровадженої бібліотеки в svchost.exe

Тут використовується обробка черги APC. Спочатку инициализируется APC з адресою функції DllEntry впровадженої бібліотеки, потім за допомогою KeInsertQueueApc APC ставиться в чергу. Коли svchost.exe буде готовий до обробки APC черзі (що відбувається практично відразу ж), в його контексті запуститься потік з адреси DllEntry.

впроваджувана dll

Впроваджена в svchost.exe бібліотека dll є основним керуючим ланкою по організації DDoS-атаки з зараженого комп'ютера. Також як і драйвер-інфектор, бібліотека має секцію .bdata, в якій зберігається блок зашифрованих даних, що має вже відому нам структуру. Ці дані представляють собою xml-документ, в якому визначені необхідні початкові налаштування бота. Такий документ може виглядати, наприклад, ось так:

Рис
Рис. 6 Початкові налаштування бота

Найважливіша інформація - це, звичайно, адреса центру управління ботнетом. В даному випадку для надійності таких адрес вказано два: якщо буде закритий один, і бот до нього не «достукаєтеся», він зможе спробувати встановити зв'язок з господарем по резервному адресою.

На адресу центру управління бот посилає заздалегідь підготовлений http-запит, який представляє собою рядок, що містить ідентифікаційні дані зараженої машини. Ось як може виглядати такий рядок:

id = xCOMPUTERNAME_62CF4DEF & ln = ru & cn = RU & nt = 2600 & bid = 3

Параметр id, ідентифікатор зараженої машини, включає в себе ім'я комп'ютера і серійний номер жорсткого диска, на якому розміщений диск C :. Далі вказуються дані про операційну систему: мова системи, країна, в якій встановлена ​​система, і номер складання системи. В кінці додається ідентифікатор збірки бота (останнє поле «build_id» в xml-документі початкових налаштувань).

Певний вид рядка запиту служить підтвердженням того, що запит робить саме бот. Крім того, для центру управління свого роду паролем може служити також user-agent http-запиту.

Якщо центр управління приймає запит, то у відповідь він посилає файл конфігурації бота також у вигляді зашифрованого xml-документа. Шифрування використовується те ж саме, що і в разі шифрування даних в драйвері і dll - RC4. Ключем є ідентифікатор зараженої машини (параметр id рядка запиту, в наведеному вище прикладі - «xCOMPUTERNAME_62CF4DEF»).

Давайте подивимося на приклад таких інструкцій:

Рис
Рис. 7 Файл конфігурації: інструкції з центру управління

Розділ <plugins> повідомляє боту, які модулі є на сервері господаря для організації DDoS-атаки. Якщо у бота ще немає такого модуля, або на сервері новішої версії, то бот посилає запит серверу на скачування плагіна, наприклад:

getp = http & id = xCOMPUTERNAME_62CF4DEF & ln = ru & cn = RU & nt = 2600 & bid = 3

Плагін являє собою бібліотеку dll. Передається вона боту в зашифрованому вигляді. Якщо для шифрування використовується ключ, відмінний від значення параметра id, то він вказується у файлі конфігурації в поле <key>. Після отримання та розшифровки бібліотеки-плагіна, вона розміщується в виділену під неї пам'ять, після чого готова приступити до DDoS-атаці, як тільки прийде відповідна команда.

Модулі завантажуються на заражений комп'ютер регулярно: як тільки вирусописатели поліпшить метод атаки, бот Black Energy 2 довантажити новішу версію плагіна.

Завантажені таким чином плагіни зберігаються на жорсткому диску зараженого комп'ютера в системному каталозі «<WINDIR> system32drivers» під ім'ям «str.sys». Вміст файлу «str.sys» шифрується, ключем є значення параметра id. До шифрування дані, що зберігаються в «str.sys», виглядають так:

Рис
Рис. 8 незашифрованому вміст файлу str.sys: сховище плагінів

У кожному плагін є продукція, що експортується функція DispatchCommand, яку викликає основний керуючий модуль - впроваджена в процес svchost.exe бібліотека dll. Функції DispatchCommand передається параметр - одна з команд розділу в файлі конфігурації бота. Після чого плагін виконує дану команду.

Основні плагіни

Основними плагінами Black Energy 2 є ddos, syn і http. Розповімо трохи про кожен з них.

плагін ddos

На вхід плагіну ddos ​​надходить адреса атакується сервера, протокол і порт. Відповідно, не започатковано масові з'єднання з сервером на певний порт за певним протоколу. Після встановлення з'єднання на сервер надсилається заповнений випадковим чином пакет даних. Підтримуються протоколи tcp, udp, icmp і http.

Ось приклад реалізації виконання команди «ddos_start udp <інтернет-адреса> 80»:

Рис
Рис. 9 Створення сокета, протокол UDP

Рис
Рис. 10-1 Відправка даних: sendto і стек

Рис
Рис. 10-2 Відправка даних - куди. pTo: ip-адреса і порт

Рис
Рис. 10-3 Відправка даних - що. Data: випадковий набір байт

За протоколом http плагіном ddos ​​за допомогою функцій socket, connect і send на сервер надсилається GET-запит.

плагін syn

На відміну від інших плагінів, згаданих у цій статті, в плагін syn присутній мережевий драйвер. При виконанні функції DllEntry плагіна цей драйвер встановлюється в системний каталог «system32drivers» під ім'ям «synsenddrv.sys». Відправку мережевих пакетів він бере на себе. Функція DispatchCommand, як уже можна здогадатися, чекає від керуючої бібліотеки параметр такого виду: «syn_start» або «syn_stop». У разі отримання першого параметра плагін починає атаку, якщо отриманий другий - припиняє. Атака в даному випадку є множинні запити серверу на установку з'єднання, відкриття мережевий сесії, так званий «обмін рукостисканнями»:

Рис
Рис. 11 SYN-атака: SYN-> ACK-> RST

Природно, коли такі множинні запити виходять від великої кількості заражених комп'ютерів, це створює відчутну навантаження на сервер.

плагін http

Проти описаних вище методів DDoS-атак часто застосовується редирект: сервер з інтернет-ресурсами ховається за шлюз, який видно ззовні, а шлюз перенаправляє запити на сервер з ресурсами. Від DDoS-атак шлюз захищається всілякими способами, і «звалити» його не так-то просто. Відповідно, плагінами ddos ​​і syn по IP-адресою може бути атакований тільки шлюз, так як ніякого функціоналу розпізнавання перенаправлення трафіку у них немає, і мережевий «флуд», який вони генерують, до сервера з інтернет-ресурсами просто не доходить. На цей випадок вірусопісателямі і був розроблений плагін http.

Отримавши команду «http_start <url> <port>», плагін http створює COM-об'єкт «Internet Explorer (Ver 1.0)» з інтерфейсом «IWebBrowser2». Викликається метод Navigate з параметром з команди «http_start». В результаті COM-об'єкт «Internet Explorer (Ver 1.0)» реалізує перехід на зазначену сторінку. Далі за допомогою методу Busy шкідлива програма очікує, коли запит повністю відпрацює.

Рис
Рис. 12-1 Створення COM-об'єкта

Рис
Рис. 12-2 Покажчик на CLSID

Рис
Рис. 12-3 Покажчик на ID інтерфейсу

Рис
Рис. 13 Виклик методу Navigate

Рис
Рис. 14 Виклик методу Busy

Таким чином, повністю емулюється візит на сторінку звичайного користувача. Різниця лише в тому, що, на відміну від користувача, описувана шкідлива програма робить безліч заходів на один і той же адреса був призначений додатковий короткий проміжок часу. Навіть якщо використовується шлюз з перенаправленням, http-запит перенаправляється на захищається сервер з інтернет-ресурсами, і на цей сервер створюється навантаження.

базові команди

Крім завантаження плагінів і виконання команд, пов'язаних з цими плагінами, Black Energy 2 «розуміє» кілька загальних команд, які можуть виходити від центру управління:

rexec - завантажити з інтернету вказаний файл і запустити його;

lexec - запустити вказаний файл, який знаходиться на зараженому комп'ютері;

die - припинити виконання бота;

upd - оновити бот;

setfreq - встановити частоту звернення до центру управління;

http - послати http-запит на вказану статтю в інтернеті.

висновок

Спочатку Black Energy створювався як бот для організації DDoS-атак, але з появою в другій версії плагінів функціонал цього шкідливого сімейства практично не обмежений (правда зловмисники поки використовують його, в основному, як засіб для DDoS). Можна встановити плагін, наприклад, для розсилки спаму, перехоплення даних користувача, організації проксі-сервера і т.д., і т.п. Команда upd дозволяє оновлювати бот, наприклад, по-новому зашифрованою версією. Регулярне оновлення дає боту можливість довгий час ховатися від ряду антивірусних програм, які можуть бути встановлені на зараженому комп'ютері. Потенціал цього шкідливого інструменту досить високий, що, безумовно, є великою небезпекою. Благо в Мережі відсутні так звані публічні версії білдерів для збірки ботів Black Energy 2, тому різні варіації цієї шкідливої ​​програми з'являються не в таких кількостях, як, наприклад, того ж ZeuS або першого Black Energy. Але, судячи за наявними у нас даними, у зловмисників побудовані великі ботнети на платформі Black Energy 2, які вже проявили себе в DDoS-атаках.

Яким чином господарі вирішать використовувати свої ботнети надалі, заздалегідь не вгадаєш. Для вирусописатели нескладно створити плагін і завантажити його на заражені комп'ютери користувачів. При цьому код плагіна проявиться лише в пам'яті зараженого комп'ютера, в інших місцях - при пересиланні даних чи, при зберіганні чи на жорсткому диску - шкідливі модулі будуть зашифровані. До того ж самі по собі плагіни для Black Energy 2 виконуваними файлами «.exe» не є. Модулі завантажуються тільки на заражену машину, відповідно, поширюватися розрахованими на масові зараження методами не будуть і можуть довгий час не потрапляти на очі антивірусним компаніям. Але саме плагіни в кінцевому підсумку виконують задум зловмисника - ті шкідливі дії, заради яких і були заражені Black Energy 2 комп'ютери користувачів. Знати їх необхідно! Для цього в нашій Лабораторії і організований моніторинг підвантажуваних плагінів для Black Energy 2, так що тенденції використання цього зловреда не повинні від нас вислизнути. Будемо тримати в курсі і вас.

(Автор: Дмитро Тараканов , Експерт «Лабораторії Касперського»)

Чорний DDoS

Чимало існує ботів, за допомогою яких зловмисники організовують DDoS-атаки на інтернет-сервера. Одним з найпопулярніших таких інструментів є Black Energy. На даний момент «Лабораторією Касперського» виявлено та детектується більше 4000 варіацій цієї шкідливої ​​програми. У середині 2008-го року вирусописатели піддали первинну версію бота істотної зміни. З'явився так званий Black Energy 2 ( «Лабораторія Касперського» класифікує його як Backdoor.Win32.Blakken). Про нього і піде мова в цій статті.

Крок за кроком: складові бота

Автор реалізував в боті кілька основних завдань: приховування коду програми від антивірусних продуктів, зараження системних процесів і, нарешті, гнучкий механізм реалізації різної шкідливої ​​активності на зараженій машині по команді з центру управління ботнетом. За виконання кожного завдання відповідають різні складові шкідливої ​​програми.

рис
рис.1 Етапи роботи Black Energy 2

Захисна оболонка

Як і більшість шкідливих програм, Black Energy 2 має якусь захисну оболонку, що приховує шкідливу начинку від антивірусів: шифрування, архівування коду, також можуть бути використані анти-емуляціонние методи.

Після запуску на комп'ютері користувача exe-файлу Black Energy 2 шкідливий додаток виділяє віртуальну пам'ять, копіює в неї код дешіфровщіка і передає на нього управління.

В результаті виконання коду дешіфровщіка в пам'яті з'являється код з функцією Дроппер, виконання якого призводить до створення в системному каталозі «<WINDIR> system32drivers» драйвера-дешіфровщіка з випадковим ім'ям, наприклад, «EIBCRDZB.SYS». Після чого створюється і запускається пов'язана з цим драйвером служба, також з випадковим ім'ям:

Рис
Рис. 2 Запуск шкідливого драйвера-дешіфровщіка

Драйвер, як і початкове exe-додаток, що ініціює процес зараження комп'ютера, за своєю суттю є «обгорткою», в якій заховано найцікавіше.

Інфектор

У коді драйвера-дешіфровщіка присутній блок зашифрованих і запакованих даних:

Рис
Рис. 3 Зашифровані дані всередині драйвера-дешіфровщіка

Такий блок даних має певну структуру:

Рис
Рис. 4 Структура зашифрованих даних

За допомогою ключа з цього блоку будується інший ключ довжиною 100h байт, який використовується для розшифровки архіву. Алгоритм шифрування добре відомий - це RC4. Якщо розмір архіву збігається з розміром даних, то архівація даних відсутній, в іншому випадку розшифрований архів піддається розпакуванню.

Розшифровані дані представляють собою драйвер-інфектор, в функціонал якого закладено впровадження бібліотеки dll в процес користувацького режиму svchost.exe. Щоб запустити драйвер-інфектор, драйвер-дешифровщик виділяє під нього пам'ять, копіює туди розшифрований код, налаштовує під поточне адресний простір і передає управління. Шкідлива бібліотека dll зберігається в в секції «.bdata» драйвера-інфектора. Цей блок даних також має вищезгадану структуру. Драйвером-інфектором знаходиться процес svchost.exe, в його адресному просторі виділяється пам'ять, в неї копіюється шкідлива dll, яка налаштовується під адреси виділеної пам'яті. Код впровадженої бібліотеки з режиму ядра запускається в такий спосіб:

Рис
Рис. 5 Запуск впровадженої бібліотеки в svchost.exe

Тут використовується обробка черги APC. Спочатку инициализируется APC з адресою функції DllEntry впровадженої бібліотеки, потім за допомогою KeInsertQueueApc APC ставиться в чергу. Коли svchost.exe буде готовий до обробки APC черзі (що відбувається практично відразу ж), в його контексті запуститься потік з адреси DllEntry.

впроваджувана dll

Впроваджена в svchost.exe бібліотека dll є основним керуючим ланкою по організації DDoS-атаки з зараженого комп'ютера. Також як і драйвер-інфектор, бібліотека має секцію .bdata, в якій зберігається блок зашифрованих даних, що має вже відому нам структуру. Ці дані представляють собою xml-документ, в якому визначені необхідні початкові налаштування бота. Такий документ може виглядати, наприклад, ось так:

Рис
Рис. 6 Початкові налаштування бота

Найважливіша інформація - це, звичайно, адреса центру управління ботнетом. В даному випадку для надійності таких адрес вказано два: якщо буде закритий один, і бот до нього не «достукаєтеся», він зможе спробувати встановити зв'язок з господарем по резервному адресою.

На адресу центру управління бот посилає заздалегідь підготовлений http-запит, який представляє собою рядок, що містить ідентифікаційні дані зараженої машини. Ось як може виглядати такий рядок:

id = xCOMPUTERNAME_62CF4DEF & ln = ru & cn = RU & nt = 2600 & bid = 3

Параметр id, ідентифікатор зараженої машини, включає в себе ім'я комп'ютера і серійний номер жорсткого диска, на якому розміщений диск C :. Далі вказуються дані про операційну систему: мова системи, країна, в якій встановлена ​​система, і номер складання системи. В кінці додається ідентифікатор збірки бота (останнє поле «build_id» в xml-документі початкових налаштувань).

Певний вид рядка запиту служить підтвердженням того, що запит робить саме бот. Крім того, для центру управління свого роду паролем може служити також user-agent http-запиту.

Якщо центр управління приймає запит, то у відповідь він посилає файл конфігурації бота також у вигляді зашифрованого xml-документа. Шифрування використовується те ж саме, що і в разі шифрування даних в драйвері і dll - RC4. Ключем є ідентифікатор зараженої машини (параметр id рядка запиту, в наведеному вище прикладі - «xCOMPUTERNAME_62CF4DEF»).

Давайте подивимося на приклад таких інструкцій:

Рис
Рис. 7 Файл конфігурації: інструкції з центру управління

Розділ <plugins> повідомляє боту, які модулі є на сервері господаря для організації DDoS-атаки. Якщо у бота ще немає такого модуля, або на сервері новішої версії, то бот посилає запит серверу на скачування плагіна, наприклад:

getp = http & id = xCOMPUTERNAME_62CF4DEF & ln = ru & cn = RU & nt = 2600 & bid = 3

Плагін являє собою бібліотеку dll. Передається вона боту в зашифрованому вигляді. Якщо для шифрування використовується ключ, відмінний від значення параметра id, то він вказується у файлі конфігурації в поле <key>. Після отримання та розшифровки бібліотеки-плагіна, вона розміщується в виділену під неї пам'ять, після чого готова приступити до DDoS-атаці, як тільки прийде відповідна команда.

Модулі завантажуються на заражений комп'ютер регулярно: як тільки вирусописатели поліпшить метод атаки, бот Black Energy 2 довантажити новішу версію плагіна.

Завантажені таким чином плагіни зберігаються на жорсткому диску зараженого комп'ютера в системному каталозі «<WINDIR> system32drivers» під ім'ям «str.sys». Вміст файлу «str.sys» шифрується, ключем є значення параметра id. До шифрування дані, що зберігаються в «str.sys», виглядають так:

Рис
Рис. 8 незашифрованому вміст файлу str.sys: сховище плагінів

У кожному плагін є продукція, що експортується функція DispatchCommand, яку викликає основний керуючий модуль - впроваджена в процес svchost.exe бібліотека dll. Функції DispatchCommand передається параметр - одна з команд розділу в файлі конфігурації бота. Після чого плагін виконує дану команду.

Основні плагіни

Основними плагінами Black Energy 2 є ddos, syn і http. Розповімо трохи про кожен з них.

плагін ddos

На вхід плагіну ddos ​​надходить адреса атакується сервера, протокол і порт. Відповідно, не започатковано масові з'єднання з сервером на певний порт за певним протоколу. Після встановлення з'єднання на сервер надсилається заповнений випадковим чином пакет даних. Підтримуються протоколи tcp, udp, icmp і http.

Ось приклад реалізації виконання команди «ddos_start udp <інтернет-адреса> 80»:

Рис
Рис. 9 Створення сокета, протокол UDP

Рис
Рис. 10-1 Відправка даних: sendto і стек

Рис
Рис. 10-2 Відправка даних - куди. pTo: ip-адреса і порт

Рис
Рис. 10-3 Відправка даних - що. Data: випадковий набір байт

За протоколом http плагіном ddos ​​за допомогою функцій socket, connect і send на сервер надсилається GET-запит.

плагін syn

На відміну від інших плагінів, згаданих у цій статті, в плагін syn присутній мережевий драйвер. При виконанні функції DllEntry плагіна цей драйвер встановлюється в системний каталог «system32drivers» під ім'ям «synsenddrv.sys». Відправку мережевих пакетів він бере на себе. Функція DispatchCommand, як уже можна здогадатися, чекає від керуючої бібліотеки параметр такого виду: «syn_start» або «syn_stop». У разі отримання першого параметра плагін починає атаку, якщо отриманий другий - припиняє. Атака в даному випадку є множинні запити серверу на установку з'єднання, відкриття мережевий сесії, так званий «обмін рукостисканнями»:

Рис
Рис. 11 SYN-атака: SYN-> ACK-> RST

Природно, коли такі множинні запити виходять від великої кількості заражених комп'ютерів, це створює відчутну навантаження на сервер.

плагін http

Проти описаних вище методів DDoS-атак часто застосовується редирект: сервер з інтернет-ресурсами ховається за шлюз, який видно ззовні, а шлюз перенаправляє запити на сервер з ресурсами. Від DDoS-атак шлюз захищається всілякими способами, і «звалити» його не так-то просто. Відповідно, плагінами ddos ​​і syn по IP-адресою може бути атакований тільки шлюз, так як ніякого функціоналу розпізнавання перенаправлення трафіку у них немає, і мережевий «флуд», який вони генерують, до сервера з інтернет-ресурсами просто не доходить. На цей випадок вірусопісателямі і був розроблений плагін http.

Отримавши команду «http_start <url> <port>», плагін http створює COM-об'єкт «Internet Explorer (Ver 1.0)» з інтерфейсом «IWebBrowser2». Викликається метод Navigate з параметром з команди «http_start». В результаті COM-об'єкт «Internet Explorer (Ver 1.0)» реалізує перехід на зазначену сторінку. Далі за допомогою методу Busy шкідлива програма очікує, коли запит повністю відпрацює.

Рис
Рис. 12-1 Створення COM-об'єкта

Рис
Рис. 12-2 Покажчик на CLSID

Рис
Рис. 12-3 Покажчик на ID інтерфейсу

Рис
Рис. 13 Виклик методу Navigate

Рис
Рис. 14 Виклик методу Busy

Таким чином, повністю емулюється візит на сторінку звичайного користувача. Різниця лише в тому, що, на відміну від користувача, описувана шкідлива програма робить безліч заходів на один і той же адреса був призначений додатковий короткий проміжок часу. Навіть якщо використовується шлюз з перенаправленням, http-запит перенаправляється на захищається сервер з інтернет-ресурсами, і на цей сервер створюється навантаження.

базові команди

Крім завантаження плагінів і виконання команд, пов'язаних з цими плагінами, Black Energy 2 «розуміє» кілька загальних команд, які можуть виходити від центру управління:

rexec - завантажити з інтернету вказаний файл і запустити його;

lexec - запустити вказаний файл, який знаходиться на зараженому комп'ютері;

die - припинити виконання бота;

upd - оновити бот;

setfreq - встановити частоту звернення до центру управління;

http - послати http-запит на вказану статтю в інтернеті.

висновок

Спочатку Black Energy створювався як бот для організації DDoS-атак, але з появою в другій версії плагінів функціонал цього шкідливого сімейства практично не обмежений (правда зловмисники поки використовують його, в основному, як засіб для DDoS). Можна встановити плагін, наприклад, для розсилки спаму, перехоплення даних користувача, організації проксі-сервера і т.д., і т.п. Команда upd дозволяє оновлювати бот, наприклад, по-новому зашифрованою версією. Регулярне оновлення дає боту можливість довгий час ховатися від ряду антивірусних програм, які можуть бути встановлені на зараженому комп'ютері. Потенціал цього шкідливого інструменту досить високий, що, безумовно, є великою небезпекою. Благо в Мережі відсутні так звані публічні версії білдерів для збірки ботів Black Energy 2, тому різні варіації цієї шкідливої ​​програми з'являються не в таких кількостях, як, наприклад, того ж ZeuS або першого Black Energy. Але, судячи за наявними у нас даними, у зловмисників побудовані великі ботнети на платформі Black Energy 2, які вже проявили себе в DDoS-атаках.

Яким чином господарі вирішать використовувати свої ботнети надалі, заздалегідь не вгадаєш. Для вирусописатели нескладно створити плагін і завантажити його на заражені комп'ютери користувачів. При цьому код плагіна проявиться лише в пам'яті зараженого комп'ютера, в інших місцях - при пересиланні даних чи, при зберіганні чи на жорсткому диску - шкідливі модулі будуть зашифровані. До того ж самі по собі плагіни для Black Energy 2 виконуваними файлами «.exe» не є. Модулі завантажуються тільки на заражену машину, відповідно, поширюватися розрахованими на масові зараження методами не будуть і можуть довгий час не потрапляти на очі антивірусним компаніям. Але саме плагіни в кінцевому підсумку виконують задум зловмисника - ті шкідливі дії, заради яких і були заражені Black Energy 2 комп'ютери користувачів. Знати їх необхідно! Для цього в нашій Лабораторії і організований моніторинг підвантажуваних плагінів для Black Energy 2, так що тенденції використання цього зловреда не повинні від нас вислизнути. Будемо тримати в курсі і вас.

(Автор: Дмитро Тараканов , Експерт «Лабораторії Касперського»)

Новости