Бійтеся данайців, що дари приносять
Трояни: види, принципи роботи, захист

Рідкісний людина, що має відношення до IT, не стикався з троянами. По ідеї, вже давно пора б перестати вестися на трюки, начебто HotPics.jpg…..exe, ан ні, запускаємо «патчі для Експлорера» і «плагіни для Винампа», не кажучи вже про «крякерах інтернету». Набридло. Читай мануал і будь у всеозброєнні.

Знаєш, скільки видів живих істот мешкають на Землі? Я теж не знаю, але впевнений, що багато. Тим не менш, біологи змогли розділити все це різноманіття всього на п’ять царств (до речі, одне з них — віруси). Правда, царства, в свою чергу, поділяються на подцарства, подцарства — на типи, типи — на класи і т. д. Виходить досить складна система. Електронних форм життя, природно, набагато менше, але класифікація їх за складністю не поступається тій, що прийнята у біологів. Здивований? Звичайно, для користувача AOL є тільки два типи програм: “віруси-віруси :), звичайний юзер знає значення слова «троян», і тільки вже зовсім просунуті товариші знайомі з таким поняттям, як «черв’як». Але чи знаєш ти, яку класифікацію використовують антивирусники? Типове опис вірусу виглядає приблизно так: SamiiKrutoiVirus.Вірус.Win32.PE-інфектор.поліморфний(олигоморфный). Вражає? Якщо ні, додай сюди ім’я автора (якщо воно відомо), дату появи в Мережі, ступінь небезпеки etc.

Знаєш, яку помилку зробив Карл Лінней, коли намагався розділити рослини на кілька класів? Він об’єднував їх не за будовою, а за зовнішнім виглядом: тут квіти з п’ятьма тичинками, тут — з чотирма і т. д. Хм, щось я в біологію вдарився :). Ну, гаразд. Сучасна наука ділить живий світ на групи, виходячи із внутрішньої будови істот. Але якщо міркувати подібним чином про цифрових формах життя, виникають деякі проблеми, так як з точки зору користувача, тобто за зовнішнім виглядом, всі ці форми однакові і мають вид виконуваних файлів. А класифікуючи електронні суті за внутрішньою будовою, отримаємо показану вище систему антивирусников, яка не відрізняється наочністю і доволі незручна. Тому ми будемо по-старому ділити фауну Мережі всього на три групи — віруси, хробаки та троянці. Але перш ніж приступати до докладного розгляду останніх, з’ясуємо відмінності цих форм життя один від одного.

Вірус, черв’як або троян?

Отже, віруси. Основна ознака — віруси заражають файли. І забудь про шкідливі віруси — більшість з них написано озлобленими одинаками; рідкісна VX-група релизит віруси начебто CIH, тобто з «деструктивної корисним навантаженням», як вони це називають. Адже віруси для цього вирмейкера — це мистецтво, музика. Навіщо ж псувати мелодію криками невинних жертв? Повторюся, я говорю про справжніх вирмейкерах, яких сьогодні не так багато, а не про тих індивідуумах, що копіюють чужі роботи з єдиною метою — покрасуватися у вірусної десятці Касперського. І повір мені, ніхто з справжніх вирмейкеров не випускає свої творіння далі свого гвинта у вигляді, відмінному від вихідного.

Хробаки. Основна ознака — не заражають файли, а просто влаштовують собі де-небудь на гвинті приховану резиденцію і звідти розсилають себе на інші машини. Щоб створити ефективний вірус, треба чудово розбиратися в операційці, під яку ти пишеш, розбиратися у всіх тонкощах асемблера (і не говори мені про віруси на Сі) і, до того ж, дуже бажаний певний склад розуму. А знаєш, на чому написано більшість сьогоднішніх черв’яків? Visual Basic і VBScript. Тепер розумієш, чому їх так багато? Правда, серед черв’яків іноді трапляються дуже гідні екземпляри, але це, скоріше, виняток, ніж правило. Так що якщо сила вірусів — коду, то хробаків — у кількості інфікованих машин. На малюнку це показано дуже наочно.

Нарешті добралися і до троянів. Все-таки справжніх вирмейкеров — ідейних і благородних — небагато, тому і віруси і черв’яки найчастіше несуть у собі певний деструктивний елемент. Навіть ті віруси, чия корисне навантаження вичерпується виведенням написи на екран, можуть попсувати користувачеві чимало нервів, що вже говорити про більш небезпечних віруси. Так ось основна ознака трояна полягає в тому, що це всього лише інструмент, а спосіб його застосування — справа друга. Одна людина може написати троян виключно в освітніх цілях, вивчаючи мережеві протоколи, а інший використовувати цей троян в цілях, м’яко кажучи, не зовсім законних :). Ось з цими-то дволикими сутностями ми і будемо розбиратися увесь час (вірніше, місце). І перше, що потрібно запам’ятати — є два типи троянів: мейлеры і бекдори.

Мейлеры

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

Для початку треба влаштуватися в системі, не викликавши підозр у жертви. Погодься, дивно, коли патч для Outlook не патчіть Бавовна? Цього має бути логічне пояснення. Тут методів маса: від примітивних «msmustdie.dll not found» і «already patched», до вишуканого методу, коли з’являється віконце установки патча», а після її завершення відкривається readme зі списком пофиксенных помилок :). А в цей час троян копіює себе куди-небудь в %windir%system і спокійно приступає до обробки системи. Для початку йому необхідно прописатися в автозавантаженні. Знову ж таки, способів купа. Відверто тупі трояни вписуються в папку «автозавантаження» або в autoexec.bat. Ті, що попродвинутей — win.ini і system.ini. Ну, а переважна більшість прописується в реєстрі в наступних місцях:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftwindowscurrentversionrun
HKEY_LOCAL_MACHINESOFTWAREMicrosoftwindowscurrentversionrunonce
HKEY_LOCAL_MACHINESOFTWAREMicrosoftwindowscurrentversionrunservices
HKEY_LOCAL_MACHINESOFTWAREMicrosoftwindowscurrentversionrunservicesonce

Освоївшись в системі, троян починає збирати дані. Низкоклассные особини просто відсилають на зазначене мило файли *.pwl, *.sam і т. д., наворочені ж влаштовують на гвинті жертви цілий расшифровочный цех, відправляючи господареві вже готові паролі від усього, до чого зміг дотягнутися троян. Найчастіше троян записує всі натискання клавіш і раз в день відправляє додому. Елементарні коні так і живуть: завантажився, отримав потрібну інформацію, відправив господареві. Трояни складніше реалізують такі речі, як періодичне самовідновлення і захист від антивірусів: шифрування і т. д. Самі ж гідні представники мейлеров дозволяють керувати собою за допомогою e-mail команд (а також IRC, ICQ або прямого з’єднання — прим. ред.). Тобто троян періодично перевіряє певний ящик, куди господар шле інструкції, типу «РЕПЛІКА „Have fun!“; DEL C:*.*; END».

Бекдори

Слово Virus означає «потайний хід». Такий троян складається з двох частин: клієнтської і серверної. Клієнт зазвичай має гарний GUI з купою кнопок та інші навороти, бо все своє життя проводить на комп’ютері господаря, а значить, не піклується про своє розмірі. Власне троян знаходиться в серверної частини. До тих пір, поки не прийшла пора збирати і надсилати дані, алгоритми бекдорів і мейлеров збігаються: обдурити користувача, влаштуватися в %windir%system і прописатися в автозавантаженні. Але потім починаються серйозні відмінності. Зловмисник, подославший трояна, виходить в Мережу, запускає клієнтську частину і дивиться, чи є відгук від сервера, тобто знаходиться жертва також в Мережі. Якщо відгук отримано, сервер і клієнт встановлюють зв’язок, а далі все залежить від конкретного трояна: ті, що скромніші, відкриють доступ до ворожого гвинта або ще щось в цьому дусі, а ті, що крутіше, просто віддадуть владу над усім комп’ютером в руки зловмисника: той зможе керувати комп’ютером жертви, як якщо б сам сидів за ним.

Тут вже відкривається простір для витонченої фантазії: можна відключити на віддаленому компі антивірус, можна поставити ще пару троянів — на всяк випадок, можна використовувати чужий комп’ютер як плацдарм для проведення мережевих атак або просто для подальшого поширення троянів. Взагалі, бекдори — відмінне підмога у справі перебору або розшифровки паролів: підкинувши свій троян десятку людина, ти витратиш на це в десять разів менше часу (а якщо троянів буде сто або тисяча?) і заодно перекладеш відповідальність на чужі плечі :).

Ще один тип

Як бачиш, обидва типи троянів так чи інакше вказують на «господаря». Мейлеры знають його поштова адреса, бекдори взагалі зв’язуються з його комп’ютером безпосередньо, тобто в обох випадках існують ниточки, по яких кваліфікований людина може обчислити того, хто підіслав троян. Витрати технології. Кожен троян вирішує цю проблему по-своєму. Наприклад, можна зберігати інформацію про господаря в зашифрованому вигляді і виконувати розшифровку тільки в разі необхідності. Прийнятним варіантом також є використання проксі, ланцюжків ремейлеров і інших цікавих речей.

Взагалі можна виділити ще один тип троянів, хоча правильніше було б відносити такі програми до черв’якам — це трояни, які взагалі не підтримують зв’язок з господарем. Якщо мета мейлеров і бекдорів полягає в наданні доступу до конфіденційної інформації, то мета цих троянів — захоплення або мережевих обчислювальних ресурсів комп’ютера жертви. Тепер зрозуміло, чому таких коней іноді називають загарбниками? Вони, будучи запущені в стан ворога, назавжди забувають про будинку і займаються виключно своїми справами, такими як розсилання спаму або атаки на який-небудь сервер — сотня-інша троянів може провести досить ефективну атаку, будь то DoS або щось ще. І головне, як і у випадку з бекдор — відповідальність перекладається їх нещасних власників.

Як не встряти?

Вірус, що розплодився ту на твоєму комп’ютері — це проблема, вірус, що знищив твою інформацію — це біда, але усвідомлення того, що хтось дивиться твої картинки, читає твої листи, і сидить в інтернеті за твій рахунок, дратує набагато більше. У всякому разі, мене. Як же не встряти? Насамперед, почитай статтю «Правила поведінки в Мережі» в цьому номері нашого журналу. Там більш ніж докладно все описано. Відшукуючи в Мережі цікаві трояни для цієї статті, я насилу знайшов незаражені різними подарунками, типу вирей і інших троянів. Знаєш, як весело виглядає клієнт бекдор А, насправді є ще і сервером трояна B? 🙂 До речі, ось ще інформація для роздумів: пишеться троян, в його коді робиться спеціальний «чорний хід», і троян викладається в Мережу, на який-небудь хацкерский сайт — «Новий крутий троян! Скачай швидше!» Народ кидається пробувати: захоплюють чужі системи, безкоштовно сидять в інеті і т. д. А тим часом людина, яка написала трояна, насолоджується владою над усіма затрояненными комп’ютерами. Чимось нагадує фінансову піраміду. Але так як користувач нині пуганый пішов, часто робиться так: разом з трояном публікуються його вихідні коди, мовляв, все по-чесному. Юзер бачить файл *.cpp, заспокоюється і потрапляє у великі неприємності, так як що варто викинути з исходника реалізацію того самого «чорного ходу»? Правда, товариші зі стажем у подібних справах, у таких випадках не користуються готовим экзешником, а компілюють свій рахунок наданого оригіналу. Але і для цього методу є контрзаходи: трапляється так, що ті п’ятнадцять рядків, що відповідають за потаємний хід, вдень з вогнем не знайти в тисячах рядків коду трояна.

Але що робити людині, яка все-таки запустив «патч для Outlook»? Або того, хто розкусив підставу і хоче дістатися до господаря? Читати далі.

Розтин

Що ми маємо: у тебе є сильні підозри, що твоя машина затроянена, і тобі потрібно, як мінімум, вбити коня, а якщо пощастить, то і дістатися до господаря. Отже, алгоритм полювання на троянів!

1. Для початку необхідно знайти файл трояна. Самий простий і швидкий спосіб зробити це — антивірус. Якщо він знайде трояна, найбільше, що він зможе зробити — видалити його. Якщо тебе це влаштовує, дій. Мене ж цікавить той гад, який підіслав до мене заразу. Якщо троян знайдений, вирубуємо антивірус і goto 4.
2. Якщо антивирь нічого не знайшов, будемо шукати вручну. Запускаємо regedit і вивчаємо ключі автозавантаження (див. вище), а також переглядаємо system.ini, win.ini, якщо ми живемо під убогою Windows 9x. Шукаємо всі підозрілі назви: якщо бачиш програму з назвою, типу «virus» або «msfucker», пошук закінчено; також потрібно звертати увагу на назви, в яких є слова «server», «srv» або «ras» (Remote Access Service). Якщо троян знайдений, goto 4.
3. 99% троянів завантажуються разом з операційкою, і залишаються в пам’яті до вимикання комп’ютера. А значить, якщо ми переглянемо всі процеси, запущені системою, серед них опиниться і троян. Запускаємо Task Manager і починаємо вивчати список процесів у пошуках «лівого». Більшість троянів не називають свої процеси підозрілими іменами, а вибирають щось нейтральне, на кшталт «print service» або «sound mixer». Але який, до біса, саундмиксер, якщо у нас запущені тільки основні служби? Так що шукай все, відмінне від ядра системи. Якщо троян все ще не знайдений, можеш відмовлятися від пошуків: на жаль, цей екземпляр тобі не по зубах (або це просто параноя).
4. Отже, ми знаємо, в якому файлі сидить троян! Найкраще взяти в руки дізассемблер і розібратися з ним раз і назавжди. Якщо з дизасмом туго, читай далі. Запускаємо regedit і шукаємо в реєстрі всі згадки про це файлі. А знайти можна багато цікавого: мило, на яке йдуть твої паролі, порт, по якому з’єднується бекдор, розташування копій трояна на твоєму гвинті і т. д. Якщо вся інформація про господаря є в реєстрі — вітаю, що ти будеш робити далі, залежить виключно від тебе і, головне, від твоїх можливостей :).
5. Якщо пошук по реєстру нічого не дав, запускаємо пошук по всьому гвинта: нас цікавлять файли, що містять ім’я трояна. Кінь може зберігати свої параметри в якому-небудь wincmd.ini, під самим твоїм носом.
6. Якщо і п’ятий пункт не дав результатів, робимо наступне: уважно переглядаємо файл, в якому сидить троян. Можна знайти багато цікавого: електронну адресу господаря, IP, порти і т. д. Я бачив багато троянів-мейлеров, які зберігали в незашифрованому вигляді адреса, за якою відсилали інфу.
7. Отже, всі попередні методи не допомогли, чи тобі потрібна додаткова інформація про господаря. Все досить просто: ставимо firewall (я віддаю перевагу ZoneAlarmPro) і виходимо в онлайн. Троян, будь то мейлер або бекдор, періодично перевіряє, чи комп’ютер в Мережі, і, якщо так, відправляє додому крадену інформацію або намагається з’єднатися з клієнтом. Ось у цей момент, будь-який нормальний брандмауер виводить повідомлення, мовляв, така-то програма (ось троян і попався) намагається відкрити з’єднання на такому-то порту — дозволити? Нам потрібен господар, тому дозволяємо. Троян спокійно з’єднується з будинком, і наш фаєрвол показує IP-адреса цього самого будинку! Все, рубаємо з’єднання, позбавляємося від трояна і починаємо згадувати, що можна зробити з людиною, знаючи його IP :).

Ich bin trojan

Тепер я поділюся враженнями про деяких троянах, які попалися мені на очі за останній час. До речі, ти знаєш, як розбиратися в особливостях роботи конкретного трояна, не маючи жертви? У випадку з мейлерами все просто — ставиш у налаштуваннях свою адресу і читаєш власні паролі, дивишся, які антивіруси виявляють троян і т. д. Якщо ж тебе цікавить бекдор, запускаєш у себе на машині сервер і коннектишься до нього через клієнт по IP 127.0.0.1. Таким чином без зайвого ризику можна розібратися в тонкощах налаштування і роботи трояна, перш ніж використовувати його по-справжньому.

BO2K (backdoor, розмір сервера 112 Кб, невидимий для TaskInfo в 9x)

Тільки не кажи, що не чув про нього. Я не хотів включати в статтю опис таких відомих троянів, як NetBus або GirlFriend, але обійти мовчанням BackOrifice я просто не міг.
Самий наворочений бекдор з усіх, що я бачив. Єдиний з перерахованих в цьому розділі троянів, який міг сховати свій процес від TaskInfo. Про BO2K можна написати не одну статтю: гнучке конфігурування, різні способи шифрування, кілька десятків плагінів, Linux-версія — цим список достоїнств BackOrifice не вичерпується. Але рекомендувати цей троян для використання я не можу з-за одного-єдиного недоліку, який зводить нанівець всі його достоїнства. Справа в тому, що BackOrifice настільки поширений і відомий, що наука не знає антивіруса, нездатного його виявити. Хлопці з CultDeadCow намагалися виправити це, релизя плагіни, покликані приховувати BO від конкретних антивирей, але в цілому ситуація не змінилася, і сьогодні BackOrifice2000 — відмінний інструмент для віддаленого адміністрування, але ніяк не троян.

[email protected] сусіда (mailer, розмір сервера 13 Кб, бачимо для TaskInfo)
Цей мейлер користується в Росії особливим успіхом, я б навіть сказав, що це наш національний троян. Елементарно настроюється, елементарно використовується. Примітний також маленький розмір сервера, так що троян можна непомітно приєднати до іншої програми. Одним словом, народний вибір: знань не потрібно ніяких, ефективність висока.

Anti-Lamer Light (mailer, розмір сервера 24 Кб, бачимо для TaskInfo)

Простенький поштовий троян, обіцяє вирубувати відомі йому антивіруси і фаєрволи. Через конфігуратор сервер можна склеїти з іншим файлом.
Це «полегшена версія трояна Anti-Lamer Virus, який має кілька цікавих можливостей, але, звичайно, і в підметки не годиться BO.

FurierTrojan (mailer, розмір сервера 38 Кб, бачимо для TaskInfo)
Хм. Великий сервер, відсутність можливостей для конфігурації (налаштовується тільки e-mail), визначається TaskInfo. Коротше кажучи, не наш вибір.

GROB (trojan/mailer, розмір сервера 49 Кб, бачимо для TaskInfo)

Повноцінний мейлер з деякими можливостями бекдор. Самозахист — мінімальна, алгоритм роботи — стандартний, сервер — великий. Єдиною перевагою перед побратимами є приємний інтерфейс клієнта :).

Знаєш, навіщо я додав до статті цей короткий огляд? Щоб ти вловив загальний стан ринку троянів» на сьогодні. Що ми бачимо: нових бекдорів практично немає, захисту не вистачає навіть на те, щоб якісно сховати свій процес, всюди низькосортні поштові трояни, фантазія авторів обмежується виведенням віконця «data.cab not found». Але в постійній появі нових троянів, нехай і низькопробних, є свої плюси. Пам’ятаєш, що я говорив про BackOrifice? При тому, що технічно це самий хороший бекдор з існуючих, використовувати його сьогодні, щонайменше, нерозумно. У той же час, примітивний троян, який вийшов тиждень тому, і тому ще не занесений до бази антивірусів, буде набагато ефективніше могутнього BO2K. У якості «золотої середини» можна порадити використовувати такі екземпляри, як DonaldDick або NetSphere, які є проміжною ланкою між елітними, але надто поширеними троянами і маловідомими низькосортними.