Інвентаризація мережевих ресурсів Nt/2000
Перше, що може спробувати здійснити видалений зломщик після скрупульозного вивчення мережі, — це отримати уявлення про наявні в ній ресурси. Спочатку ми розглянемо інвентаризацію ресурсів NETBIOS, а потім перейдемо до інвентаризації служб Tcp/ip, які в більшості випадків функціонують в системах
Nt/2000.
Інвентаризація NETBIOS
Засоби і прийоми, які можна застосовувати до вивчення ресурсів мережі з протоколом NETBIOS, можна знайти без зусиль — більшість з них вбудована в саму операційну систему! Саме з них ми і почнемо. Потім ви познайомитеся з деякими утилітами сторонніх виробників. Можливі контрзаходи краще розглядати в самому кінці обговорення, оскільки одночасно вирішити всі проблеми набагато простіше.
Інвентаризація доменів Nt/2000 за допомогою команди net view
Як один з найяскравіших прикладів вбудованих інструментів можна привести команду net view. Це надзвичайно проста утиліта командного рядка систем Nt/2000, яка дозволяє проглянути всі домени мережі, а також практично всі комп'ютери доменів. От як виконати інвентаризацію доменів в мережі з використанням команди net view:
C:\>net view /domain
Domain --------------------------------------------- CORLEONE
Barzini_domain Tatagglia_domain BRAZZI
The command completed successfully.
За допомогою наступної команди будуть перераховані всі комп'ютери певного домена.
C:\>net view /domain:corleone
Server Name Remark
\\VITO ' Make him an offer he can't refuse
\\MICHAEL Nothing personal
\\SONNY Badda bing badda boom
\\FREDO I'm smart
\\CONNIE Don't forget the cannoli
He забувайте про те, що можна використовувати інформацію, отриману за допомогою ping-прослушивания (розділ 2), і підставити IP-адреса замість імен NETBIOS окремих комп'ютерів. Зазвичай IP-адреса і імена NETBIOS взаємозамінні (наприклад, \\192.168.202.5 еквівалентно \\SERVER_NAME). Для зручності зломщики часто додають відповідні записи з
ключовим словом #pre В свій файл %systemroot%\system32\drivers\etc\LMHOSTS, а потім запускають в командному рядку команду nbtstat -r, щоб перезавантажити буфер таблиці імен. З цієї миті при атаці можна без проблем використовувати ім'я NETBIOS, яке автоматично перетворюватиметься у відповідну IP-адрес, задану у файлі LMHOSTS.
Отримання дампу таблиці імен NETBIOS за допомогою команд
nbtstat і nbtscan
Іншою могутньою вбудованою утилітою є nbtstat, яка дозволяє отримати таблицю імен NETBIOS видаленої системи. Як видно з наступного прикладу, в цій таблиці міститься важлива інформація.
C:\>nbtstat -a 192.168.202.33
NETBIOS Remote Machine Name Table Name Type
Status
Servr9 <00> UNIQUE Registered
Servr9 <20> UNIQUE Registered
9doman <00> GROUP Registered
9doman <1e> GROUP Registered
Servr9 <03> UNIQUE Registered
Inet-services <1c> GROUP Registered
Is-servr9......<00> UNIQUE Registered
9doman <1d> UNIQUE Registered
.._MSBROWSE_.<01> GROUP Registered
ADMINISTRATOR <03> UNIQUE Registered
MAC Address = 00-ao-cc-57-8c-8a
Фрагмент лістингу указує, що за допомогою команди nbtstat було отримано ім'я комп'ютера (Servr9), домен, в якому він розташований (9domain), імена зареєстрованих користувачів (ADMINISTRATOR), всі запущені служби (inet-services) і МАС-адрес. Всю цю інформацію можна дізнатися по кодах служби NETBIOS (числа з двох цифр, розташовані праворуч від імені), частково представленим в таблиці. 3.1.
Таблиця 3. 1. Стандартні коди служб NETBIOS
Код NETBIOS
|
Ресурс
|
<ім'я комп'ютера>[00]
|
Служба робочій станції
|
<ім'я домена>[00]
|
Ім'я домена
|
<ім'я комп'ютера>[03]
|
Служба розсилки (для повідомлень, переданих на даний комп'ютер)
|
<ім'я користувача>[03]
|
Служба розсилки (для повідомлень, переданих даному користувачеві)
|
<ім'я комп'ютера>[20]
|
Служба сервера
|
<ім'я домена>[10]
|
Головний броузер (master browser)
|
<ім'я домена>[1е]
|
Служба перегляду (browser service elections)
|
<ім'я домена>[1в]
|
Головний броузер домена (domain master browser)
|
Двома основними недоліками команди nbtstat є можливість її застосування до одного вузла одночасно і декілька незрозумілі вихідні дані. Обидва цих недоліків позбавлена вільно поширювана утиліта nbtscan Алли Безручко (Alia Bezroutchko), яку можна знайти за адресою
http://www.abb.aha. ru/software/nbtscan.html.
Ця утиліта дозволяє швидко виконати ті ж дії, що і команда nbtstat, над всією мережею і при цьому надає результати, що чудово відформатували.
D:\toolbox\nbtscanl02> nbtscan 192.168.234.0/24
Doing NBT name scan for adresses from
192.168.234.0/24
IP address NETBIOS Name
Server User MAC address
192.168.234.36 Workstn12 <server> RSMITH 00-00-86-16-47-d6
192.168.234.110 CORP-DC <server> CORP-DC 00-cO-4f-86-80-05
192.168.234.112 Workstn15 <server> ADMIN 00-80-c7-0f-a5-6d
192.168.234.200 Servr9 <server> ADMIN 00-ao-cc-57-8c-8a
Утиліта nbtscan дозволяє швидко отримати дані про вузли мережі, на яких використовується система Windows. Спробуйте запустити її для мережі класу Із з Internet, і ви зрозумієте, що саме ми хотіли сказати.
Інвентаризація контроллерів доменів
Для
того, щоб проникнути в структуру мережі Windows NT трохи глибше, знадобиться інструмент, що входить в комплект NTRK. У наступному прикладі ми побачимо, як за допомогою засобу NTRK nltest можна дізнатися, які контроллери доменів є первинними (РІС — Primary Domain Controller), а які — вторинними (Вdc — Backup Domain Controller).
C:\> nltest /dclist:corleone
List of Dcs in Domain corleone
\\VITO (PDC)
\\MICHAEL
\\SONNY
The command completed successfully
Для
подальшого просування вперед нам необхідно скористатися нульовим з'єднанням. (Пам'ятаєте про нього? Якщо немає, то поверніться на початок даного розділу.) Досить встановити нульовий сеанс з одним з вузлів домена, що представляє інтерес, щоб потім за допомогою команди виду nltest /server :<имя_сервера>, а також параметра /trusted_ domains дізнатися всю інформацію про домени NT, в які входить даний комп'ютер.
Інвентаризація спільно використовуваних ресурсів NETBIOS за допомогою команди net view і утиліт NTRK
Встановивши нульовий сеанс, можна знову узятися за стару добру команду net view і провести інвентаризацію ресурсів видаленої системи, наданих для сумісного доступу:
C:\>net view \\vito
Shared resources at \\192.168.7.45
VITO Share name Type Used as Comment NETLOGON
Disk Logon server share Test Disk Public access
The command completed successfully.
До складу комплекту NTRK входять три утиліти, які можуть виявитися корисними для інвентаризації спільно використовуваних ресурсів, — rmtshare, srvcheck і srvinfo (з параметром -s). Утиліта rmtshare виводить результат приблизно в тому ж вигляді, що і команда net view. Утиліта srvcheck відображає відомості про спільно використовувані ресурси і авторизованих користувачів, включаючи приховані ресурси. Проте для цього необхідно дістати доступ до видаленої системи як привілейований користувач. Нарешті, утиліта srvinfo з параметром -s дозволяє проглянути перелік спільно використовуваних ресурсів, а також отримати про досліджувану систему безліч іншої корисної інформації.
Інвентаризація спільно використовуваних ресурсів NETBIOS за допомогою утиліти Dumpsec (раніше DUMPACL)
Одним з кращих інструментів для інвентаризації спільно використовуваних ресурсів NT (причому цим можливості .не обмежуються), є пакет Dumpsec (раніше DUMPACL), основне діалогове вікно якого показане на мал. 3.1. Він розповсюджується безкоштовно компанією Somarsoft
(http://www.somarsoft.com). Навряд чи можна знайти інший інструмент, який заслуговував би на таку ж увагу
адміністратора NT. Програма Dumpsec виконує надзвичайно широкий аудит, починаючи від дозволів на використання файлової системи видаленого вузла і закінчуючи переліком запущених на ній служб. На мал. 3.1 показаний приклад роботи програми Dumpsec для отримання інформації про спільно використовувані ресурси видаленої системи. Основна інформація про користувачів може бути отримана навіть через нульове з'єднання. Крім того, цю програму можна запускати з командного рядка, що дозволяє без особливих проблем застосовувати її при автоматизації процесу збору і обробки інформації, а також при написанні сценаріїв.
Мал. 3.1. Шляхом установки нульового з'єднання з досліджуваним комп'ютером програма Dumpsec надає перелік спільно використовуваних ресурсів
Пошук спільно використовуваних ресурсів за допомогою утиліт Legion і NAT
Відкриття нульового
сеансу і використання описаних вище інструментів в ручному режимі чудово підходять для прямого вторгнення, проте більшість хакерів вважають за краще використовувати сканер NETBIOS, щоб швидко перевірити цілу мережа на предмет наявності незахищених ресурсів. Однією з найбільш популярних утиліт є Legion (її можна знайти в багатьох архівах Internet), діалогове вікно якої показане на наступному малюнку.
Утиліта Legion може обстежувати мережу класу і представити в своєму вікні перелік всіх виявлених спільно використовуваних ресурсів. Її версія 2.1 підтримує режим підбору пароля "в лоб", при використанні якого утиліта намагається підключитися до певного ресурсу за допомогою наданого користувачем списку паролів. Докладніша інформація про підбір паролів Windows 9x і Windows NT приведена в розділах 4 і 5 відповідно.
Мал. 3.2. Дві версії утиліти NAT— з графічним інтерфейсом і для використання в командному рядку
Ще одним популярним сканером спільно використовуваних ресурсів
Windows є утиліта NETBIOS Auditing Tool (NAT), робота якої грунтується на коді, написаному Ендрю Трідгеллем (Andrew Tridgell). Цю утиліту можна знайти на Web-узле книги за адресою
http://www.hacking exposed.com.
Учасники нині вже не існуючої групи Rhino9 Security Team Неон Суржиків (Neon Surge) і Хамелеон (Chameleon) написали графічний інтерфейс для утиліти NAT (мал. 3.2). Утиліта NAT не тільки знаходить спільно використовувані ресурси, але і намагається підключиться до них за допомогою списків призначених для користувача імен і паролів.
Інші засоби інвентаризації мережі Nt/2000
Необхідно згадати ще декілька програм, призначених для інвентаризації ресурсів NT: epdump компанії Microsoft (її можна знайти за адресою
http: //www.ntshop.net/security/tools/def.htm), getmac і netdom (з комплекту NTRK), а також утиліту netviewx Джеспера Лоріцена (Jesper Lauritsen)
http://www.ibt.ku.dk/jesper/NTtools). Утиліта
epdump за допомогою звернення :< інтерфейсу RPC відображає перелік служб, пов'язаних з IP-адресами і номерами портів (при цьому результати відображаються далеко не кращим чином). Утиліта getmac, використовуючи нульовий сеанс, відображає МАС-адреса і імена пристроїв, привласнених мережевим адаптерам видалених вузлів. Ця інформація має особливий інтерес тільки для хакера, який шукає систему з декількома мережевими адаптерами. Утиліта netdom корисніша, оскільки вона видає інформацію про всі зв'язані домени, включаючи відомості про приналежність до домена і його резервні контроллери. Утиліта netviewx також є могутнім інструментом, що дозволяє отримати інформацію про вузли домена і запущені на них служби. Ми часто використовуємо netviewx для перевірки наявності служби видаленого доступу NT (RAS— Remote Access Service), щоб отримати уявлення про кількість серверів в мережі, що забезпечують видалений доступ. Для цього можна скористатися представленою нижче командою. За допомогою параметра
-t задається ім'я досліджуваного домена, а параметр -т дозволяє задати тип комп'ютера або служби.
C:\>netviewx -d CORLEONE -т dialin_server
Vito,4,0,500,nt%workstation%server% domain_ctrl%time_source%dialin_server% backup_browser%master_browser",
Make him an offer he can't refuse "
Імена служб, запущених на цьому сервері, представлені між символами %. Крім того, утиліта netviewx є хорошим засобом для пошуку комп'ютера, який не є контроллером домена. Це не позбавлено сенсу, оскільки вірогідність того, що такий комп'ютер не матиме надійного захисту набагато вище, ніж у контроллера домена.
Утиліта Winfo Арні Відстрома (Arne Vidstrom), яку можна знайти за адресою
http://www.ntsecurity.nu дозволяє витягувати з видаленого комп'ютера інформацію про облікові записи користувачів, спільно використовувані ресурси, а також дані про встановлені довірчі стосунки. Ця утиліта дозволяє навіть автоматично відкрити нульовий сеанс, якщо при її запуску вказаний параметр -n.
Програма nbtdump Девіда Літчфілда (David Litchfield) (http://www.cerberus-infosec.uk/toolsn.shtml)
дозволяє використовувати нульові сеанси, виконувати пошук даних про спільно використовувані ресурси і призначені для користувача облікові записи, а, крім того, отримані результати представляє в прекрасному звіті HTML.
Універсальний засіб інвентаризації: утиліта
еnum
Ця утиліта була розроблена групою Razor компанії Bindview. У ній реалізовані можливості всіх інших засобів інвентаризації NETBIOS. Розробники назвали цю програму enum, і це дуже підходить для даного розділу. Утиліту
enum можна знайти за адресою http://razor.bind-view.com. У приведеному нижче лістингу представлені можливі Параметри командного рядка. З лістингу видно, наскільки всесторонні можливості надає ця утиліта.
D:\toolbox>enum
використання: enum [параметри] [імя_узла|ip-адрес]
-U: отримати список користувачів
-М: отримати список вузлів
-N: отримати дамп імен (на відміну від -U|-M)
-S: отримати список спільно використовуваних ресурсів
-Р: отримати дані про прийняту політику шифрування паролями
-G: отримати список груп і їх членів
-L: отримати дані про політика LSA
-D: злом з використанням словника, потрібний -і і -f
-d: з деталізацією, застосовується до -u і -s
-з: не переривати сеанс
-і: задає ім'я користувача (за умовчанням "")
-р: задає пароль (за умовчанням "")
-f: задає файл словника (для -d)
Утиліта enum
дозволяє автоматично встановлювати і завершувати нульовий сеанс. На окрему згадку заслуговує параметр -р, що надає інформацію про прийняту політику шифрування паролями. З його допомогою зломщики можуть оцінити можливість видаленого визначення призначених для користувача паролів (за допомогою параметрів -о, -і і -?) до того моменту, як буде знайдений найбільш легкий з них. Детальніше
утиліта еnum розглядатиметься в наступному розділі, присвяченому інвентаризації облікових записів користувачів
Nt/2000.
Інвентаризація NETBIOS: контрзаходи
Практично у
всіх розглянутих вище прийомах задіюється механізм передачі даних NETBIOS, так що при забороні доступу до портів TCP і UDP з 135 до 139 всіх спроб отримання інформації виявляться невдалими. Для цього краще всього заблокувати доступ до цих портів з використанням маршрутизатора, брандмауера або будь-якого іншого пристрою управління доступом. У розділі, присвяченому нульовим сеансам, ви дізналися, як заборонити використання протоколу NETBIOS поверх Tcp/ip і потрібного чину набудувати параметр системного реєстру Restrictanonymous. Це дозволить запобігти небезпеці витягання важливих даних за допомогою установки анонімних з'єднань. Проте правильна конфігурація параметра Restrictanonymous не здатна заблокувати запити, що згенерували з використанням команд net view і nbtstat. Крім того, не забувайте про те, що в системі Win 2000 деяку інформацію можна отримати і через порт Tcp/udp з номером 445, так що доступ до цьому порту також доцільно заблокувати.
Інвентаризація SNMP Nt/2000
Навіть якщо
ви зробили все, щоб запобігти доступу до служб NETBIOS, з комп'ютера Nt/2000 як і раніше можна отримати аналогічну інформацію, якщо на нім запушений агент SNMP (Simple Network Management Protocol). Доступ до цього агента можна отримати за допомогою рядка доступу public, використовуваною за умовчанням. У таких випадках інвентаризація користувачів NT через протокол SNMP за допомогою програми sranputil з комплекту NTRK перетворюється на розважальну прогулянку як в прямому (від англійського слова walk ("пройтися"), що фігурує як параметр), так і у переносному розумінні.
С:\>snmputil walk 192.168.202.33 public .1.3.6.1.4.1.77.1.2.25
Variable = .iso.org.dod. internet.private.enterprises.lanmanager.
lanmgr-2.server.svUserTable. svuserentry.svUserName.5.
71.117.101.115.116 Value = OCTET STRING - Guest
Variable = .iso.org.dod.internet. private.enterprises.lanmanager.
lanmgr-2.server. svusertable.svUserEntry.svUserName.13.
65.100.109.105.110.105.115.116.114.97.116.111.114
Value=octet STRING - Administrator
End of MIB subtree.
У
приведеному вище прикладі запуску утиліти snmputil останній параметр (.1.3.6.1.4.1.77.1.2.25) — це ідентифікатор об'єкту (OID — Object Identifier), який відповідно до вимог протоколу SNMP визначає гілку інформаційної бази (MIB — Management Information Base) компанії Microsoft, що управляє. База MIB — це ієрархічний простір імен, тому "прогулянка" по всьому дереву (тобто використання менш точного значення, наприклад .1.3.6.1.4.1.77) приведе до отримання дуже великих об'ємів інформації. Запам'ятати всі номери досить складно, тому зломщик, швидше за все, обмежиться їх строковими еквівалентами. Нижче перераховані деякі сегменти MIB, за допомогою яких можна отримати відповідну інформацію (для цього необхідно додати той або інший сегмент
.iso.оrg.dod.internet.private.enterprises.lanmanager.lanmgr-2).
Сегмент MIB
|
Інформація,
що виводиться
|
.server. svsvctable. svsvcentry.svSvcName
|
Запушені служби
|
.server.svShareTable. svshareentry.svShareName
|
Імена спільно використовуваних ресурсів
|
. erver.svShareTable. svshareentry.svSharePath
|
Шлях до спільно використовуваних ресурсів
|
.server.svShareTable. svshareentry.svShareComment
|
Коментарі до спільно використовуваних
ресурсів
|
.server.svUserTable. svuserentry.svUserName
|
Імена користувачів
|
.domain.domPrimaryDomain
|
Ім'я домена
|
Звичайно, можна позбавитися від рутинної роботи по введенню таких довгих параметрів. Для цього досить знайти в Internet (наприклад, за адресою
http: //www.solar winds.net) прекрасний snmp-броузер з ім'ям IP Network Browser, що надає всю перераховану вище інформацію в наочній формі. На мал. 3.3 показано, як програма IP Network Browser перевіряє мережу на наявність в ній комп'ютерів, на яких використовується протокол SNMP.
Мал.
3.3. Утиліта IP Network Browser компанії Solar Winds дозволяє отримати докладну інформацію про комп'ютер, на якому запущений агент SNMP. Для цього достатньо правильно вказати рядок доступу (community string). Би даному прикладі показана система, що використовує заданий за умовчанням рядок доступу public
Контрзаходи: захист протоколу SNMP
Найпростіший спосіб
попередження такої діяльності полягає у видаленні агента SNMP або у відключенні служби SNMP за допомогою аплета Services панелі управління. Якщо даний варіант вам не підходить, то як мінімум переконаєтеся в тому, що доступ до даної служби правильно настроєний і використовується рядок доступу private, а не встановлений за умовчанням рядок public. Можна також відредагувати системний реєстр, щоб вирішити тільки санкціонований доступ до служби SNMP і заборонити передачу інформації NETBIOS про систему. Для цього запустите програму regedt32 і знайдіть параметр Hklm\ Systemncurrentcontrolset\services\ Snmp\paramaters\validconununities.
Виберіть команду Permissions>security і встановите
в діалоговому вікні, що відкрилося, значення так, щоб вирішити доступ тільки аутентіфіцированним користувачам системи. Потім перейдіть до розділу Hklm\system\currentcontrolset\ Services\snmp\ Parametersnextensionagents,
видалите значення, що містить рядок Lanmanagermib2agent, а потім перейменуйте решту параметрів, щоб відновити правильну послідовність. Наприклад, якщо ви видалили параметр з номером 1, перейменуйте параметри 2, 3, 4 і так далі в 1, 2, 3 і так далі
Крім того, якщо ви використовуєте протокол SNMP для управління мережею, заблокуйте доступ до портів TCP і LJDP з номерами 161 і 162 (SNMP Get/set) по всьому периметру граничних пристроїв управління доступом. Як ми ще неодноразово побачимо в цій і подальших розділах, дозвіл передачі внутрішнього потоку SNMP за межі мережі — це дуже серйозна загроза безпеці. Докладніша інформація про протокол SNMP приводиться у відповідних документах RFC, які можна знайти за адресою
http://www.rfc-editor.org.
Перенесення зони DNS Win 2000
Як було показано в розділі 1, однією з основних цілей попереднього збору інформації є отримання даних про систему доменних імен (DNS), використовувану в Internet, і перетворення IP-адресов вузлів в дружні імена, такі як
amazon.com. Оскільки простір імен активного каталога грунтується на використанні служби DNS, компанія Microsoft повністю відновила реалізацію сервера DNS в Win 2000, щоб задовольнити всім новим потребам.
Для забезпечення клієнтам можливості пошуку служб домена Wind 2000, наприклад служб активного каталога і Kerberos, в Win 2000 є запис DNS SRV (RFC 2052), що дозволяє визначити місцезнаходження сервера за типом служби (наприклад, LDAP, FTP або WWW) і протоколом (наприклад, Tcp/ip). Таким чином, при виконанні простого перенесення зони (nslookup, Is -d <імя-домвна>) можна отримати саму різну інформацію, як показано в наступному прикладі, в якому здійснюється перенесення зони домена labf arce. org. (Скорочено і підвищення читабельності лістинг був відредагований.)
D:\toolbox>nslookup
Default Server: corp-dc.labfarce.org
Address: 192.168.234.110
> Is -d labfarce.org
[[192.168.234.110]]
labfarce.org. SOA corp-dc.
labfarce,org admin.
labfarce.org. A 192.168.234.110
labfarce.org. NS corp-dc.labfarce.org
_gc._tcp SRV priority=0, weight=100, port=3268
corp-dc. labfarce.org
_kerberos._tcp SRV priority=0, weight=100, port=88
corp-dc. labfarce.org
_kpasswd._tcp SRV priority=0, weight=100, port=464
corp-dc. labfarce.org
_ldap._tcp SRV priority=0, weight=100, port=389
corp-dc. labfarce.org
Згідно специфікації RFC 2052, запис SRV має наступний формат.
Service.Proto.Name TTL Class SRV Priority Weight Port Target
З цієї інформації зломщик може отримати деякі відомості, а саме місцеположення доменної служби глобального каталога (Global Catalog) (_gc._tcp), контроллерів домена, на яких використовується аутентифікація по протоколу Kerberos (_kerberos._tcp), серверів LDAP (_ldap._tcp), а також пов'язані з ними номери портів (в даному випадку представлені лише порти
TCP).
Блокування перенесення зони DNS Win 2000
На щастя, в системі Win 2000 служба DNS реалізована таким чином, що можна без проблем обмежити перенесення зони, як показано нижче на малюнку. На нім представлено діалогове вікно властивостей зони пошуку в прямому напрямі (в даному випадку для сервера labf arce. org). Для того, щоб відкрити це вікно, запустите консоль управління Computer Management і відкрийте елемент Server Applications and Services\dns\<імя_cepверa>\forward Lookup
Zones\[імя_зони], а потім виберіть команду Properties.
Неважко здогадатися, що за умовчанням в системі Windows 2000 дозволено перенесення зони по будь-якому запиту. Можна повністю заборонити перенесення зони, просто скинувши прапорець Allow zone transfers, проте реалістичніше було б припустити, що на резервних серверах DNS інформація повинна регулярно оновлюватися. Отже в діалоговому вікні властивостей зони можна встановити і менш обмежуючий режим.
|