Виявлення
На цьому етапі застосовується сканування портів з використанням різноманітних інструментів, про які ми вже досить детально говорили в попередніх розділах. В більшості випадків для виконання всіх робіт буде цілком достатньо таких утиліт, як traceroute, netcat і nmap.
Дослідження маршруту за допомогою traceroute
За
допомогою утиліт traceroute або tracert, що входять в комплект постачання UNIX і NT, відповідно, можна визначити основні маршрути, по яких проходять пакети від вашого вузла до іншого вузла Internet або внутрішній мережі Tcp/ip. Володіючи цією інформацією, можна виявити дуже важливий елемент мережевої інфраструктури — маршрутизатор. Саме маршрутизатор чаші всього стає "мішенню № 1" в спробах зловмисника обстежувати структуру мережі. Нижче приведений приклад роботи утиліти traceroute, з якого видно, як пакети проходять від одного маршрутизатора (або брандмауера) до іншого.
[sm@tsunami sm]$ traceroute www.destination.com
traceroute to www.destination.com (192.168.21.3),30 hops max,40 byte packets
1 happy (172.29.10.23) 6.809 ms 6.356 ms 6.334 ms
2 rtrl.internal.net (172.30.20.3) 36.488 ms 37.428 ms 34.300 ms
3 rtr2.internal.net (172.30.21.3) 38.720 ms 38.037 ms 35.077 ms
4 core.externalp.net (10.134.13.1) 49.188 ms 54.787 ms 72.094 ms
5 nj.externalp.net (10.134.14.2) 54.420 ms 64.554 ms 52.191 ms
6 sfo.externalp.net (10.133.10.2) 54.726 ms 57.647 ms 53.813 ms
7 lax-rtr.destination.com (192.168.0.1) 55.727 ms 57.039 ms 57.795 ms
8 www.destination.com (192.168.21.3) 56.182 ms 78.542 ms 64.155 ms
Знаючи,
що перед вузлом, що представляє інтерес, знаходиться вузол 192.168.0.1, можна припустити, що він є не що інше, як маршрутизатор, керівник розподілом пакетів по вузлах мережі. Саме тому на цей пристрій (так само як і на інших, проходження пакетів, що потрапили у виявлений маршрут), зловмисник зверне увагу насамперед. (Строго кажучи, швидше за все, що об'єктом його уваги стане вся підмережа, в яку входить даний пристрій.) Проте знання IP-адреса маршрутизатора не спричиняє за собою автоматичного отримання відомостей про вади в його архітектурі і налаштуванні. Для того, щоб отримати такі відомості, необхідно удатися до сканування портів, визначення операційної системи, а також збору будь-якої додаткової інформації, яка може дати ключ до злому системи зашиті пристрої.
Контрзаходи: захист від дослідження маршруту
Для того, щоб заборонити маршрутизатору Cisco відповідати на запити із значенням TTL більше допустимого, скористайтеся наступною командою.
access-list 101 deny icmp any any 11 0
Якщо ж
ви хочете вирішити проходження ICMP-запросов, що поступають лише з певних довірених мереж, і заборонити маршрутизатору відповідати на запити, що відправляються з інших мереж, скористайтеся наступними командами.
access-list 101 permit icmp any 172.29.20.0 0.255.255.255 11 0
access-list 101 deny
ip any any log
Сканування портів
За допомогою утиліти nmар, до якої ми дуже часто вдаємося в подібних ситуаціях, з операційної системи Linux можна з'ясувати, які порти маршрутизатора (192.168.0.1) знаходяться в стані очікування запитів. По комбінації виявлених портів часто можна судити про тип маршрутизатора. У таблиці. 10.1 перераховані стандартні порти TCP і UDP, використовувані на найпопулярніших мережевих пристроях.
Для того, щоб ідентифікувати тип пристроїв, можна удатися до сканування портів, а потім проаналізувати отримані результати. Не забувайте про те, що в різних реалізаціях комбінації портів можуть відрізнятися від приведених.
Таблиця 10.1. Стандартні TCP- і UDP-порты деяких мережевих пристроїв
Пристрій
|
TCP
|
UDP
|
Маршрутизатори Cisco
|
21 (ftp)
23 (telnet)
79 (finger)
80 (http)
512 (exec)
513 (login)
514 (shell)
1993 (Cisco SNMP)
1999 (Cisco ident)
2001
4001
6001 9001 (Xremoute)
|
0 (tcpmux)
49 (domain)
67 (bootps)
69 (tftp)
123(ntp)
161 (snmp)
|
Комутатори Cisco
|
23 (telnet)
7161
|
0 (tcpmux)
123(ntp)
161 (snmp)
|
Маршрутизатори Bay
|
21 (ftp)
23 (telnet)
|
7 (echo)
9 (discard)
67 (bootps)
68 (bootpc)
69 (tftp)
161 (snmp)
520 (route)
|
Маршрутизатори Ascend
|
23 (telnet)
|
7 (echo)
9 (discard)
161 (snmp)
162 (snmp-trap)
514 (shell)
520 (route)
|
Так, якщо вас цікавлять маршрутизатори Cisco, виконаєте сканування портів
1-25, 80, 512-515, 2001, 4001, 6001 і 9001. Отримані при цьому результати допоможуть визначити виготівника пристрою і його тип.
[/tmp]# nmap -pl-25,80,512-515,2001,4001,6001,9001 192.168.0.1
Starting nmap V. 2.12 by Fyodor (fyodor@dhp.com,
www.insecure.org/nmap/)
Interesting ports on (192.168.0.1):
Port State Protocol Service 7 open tcp echo 9
open tcp discard 13 open tcp daytime 19 open tcp chargen 23
filtered tcp telnet 2001 open tcp dc
6001 open tcp Xll:l
За допомогою ще одного з наших улюблених засобів, утиліти Superscan Робіна Кейра (Robin Keir), сканування можна виконати з системи NT і знайти всі відкриті порти маршрутизатора. Ця програма дозволяє задати список портів, який згодом можна застосовувати при кожній операції сканування (мал. 10.1).
Мал. 10.1. Утиліта Superscan дозволяє задати безліч портів, завдяки чому значно полегшується їх подальше сканування
Після вибору необхідного переліку портів можна приступати до сканування мережі (172 .16. 255. 0) на предмет пошуку пристроїв Cisco.
Отримана
картина використання портів підштовхує до думки про те. що в даному випадку ми маємо справу з маршрутизатором Cisco. Звичайно, поки цього не можна сказати з усією певністю, оскільки ми ще не встановили тип використовуваної операційної системи. Для того, щоб підтвердити або спростувати наші припущення, необхідно провести попередній збір інформації TCP, яку ми детально розглядали в розділі 2.
Характерною особливістю більшості маршрутизаторів Cisco є також наявність запрошення User Access Verification при підключенні до портів vty (23 і 2001). Спробуйте зв'язатися з даними портами пристрою за допомогою утиліти telnet і, якщо це дійсно маршрутизатор Cisco, ви побачите наступне запрошення.
User Access
Verification
Password:
Ідентифікація
операційної системи
В попередньому прикладі для того, щоб упевнитися в тому, що ми не помилилися, ідентіфіцировав вузол 192.168 . 0.1 як маршрутизатор Cisco, можна удатися до утиліти птаар і використовувати її для визначення типу операційної системи (ОС). Оскільки порт TCP 13 відкритий, ми можемо просканувати вузол за допомогою утиліти nmap, укотивши параметр -о, і встановити, під управлінням якої операційної системи працює вузол. В даному випадку, як видно в приведеному нижче лістингу, ця система — Cisco IOS 11.2.
[root@source /tmp]# nmap -о -р!3 -n 192.168.0.1
Starting nmap V. 2.12 by Fyodor {fyodor@dhp.com,
www.insecure.org/nmap/)
Warning: No ports found open on this machine, OS detection will be
MUCH less reliable
Interesting ports on (172.29.11.254):
Port State Protocol
Service 13 filtered tcp daytime
Remote operating system guess: Cisco Router/switch with IDS 11.2
Завжди, коли це можливо, для ідентифікації типу операційної системи скануйте тільки один порт. Багато операційних систем, зокрема IOS компанії Cisco і Solaris компанії Sun, відомо тим, що як відповідь повертають відправникові пакети, не відповідні стандартам RFC, що може привести до зависання окремих систем. Для отримання докладнішої інформації про дослідження стека читайте розділ 2, "Сканування".
Контрзаходи: захист від ідентифікації типу ОС
Методи виявлення і попередження спроб сканування з метою ідентифікації типу операційної системи детально описані в розділі 2.
Просочування інформації в пакетах Cisco
Мал. 10.2. Подібна вада є у всіх моделях маршрутизаторів Cisco, що значно полегшує їх ідентифікацію
Інформація про цю ваду системи зашиті Cisco вперше була опублікована в бюлетені Bugtraq Джоєлом (JOEJ) з групи Rhino9. Він полягає в тому, яким чином пристрої Cisco відповідають на TCP-запросы SYN, передавані через порт 1999 (порт, використовуваний службою ident Cisco). Неофіційна відповідь компанії Cisco на цю проблему була опублікована в бюлетені Bugtraq Джоном Башинськи (John Bashinski) <jbash@cc.COM>.
Метод отримання інформації тривіальний. Для того, щоб визначити, чи є те або інший пристрій маршрутизатором Cisco, просто проскануйте TCP-порт з номером 1999. Із застосуванням утиліти nmap це завдання вирішується таким чином.
[root@source /tmp]# nmap -nvv -p1999 172.29.11.254
Після
цього за допомогою спеціального програмного забезпечення потрібно перехопити у відповідь пакет Rst/ask. Як видно з мал. 10.2, серед даних цього пакету можна виявити слово
cisco.
Контрзаходи: захист маршрутизаторів Cisco від просочування інформації
Найпростіший спосіб захисту від витоку інформації полягає в тому, щоб використовувати команду, що забороняє надходження пакетів TCP через порт 1999. Вона може мати наступну форму.
access-list 101 deny tcp any any eq 1999 log! Блокування сканування
пристроїв Cisco
Інвентаризація і збір маркерів Cisco
Якщо
по всіх ознаках пристрій поводиться як пристрій Cisco, то, швидше за все, так воно і є. Проте в деяких випадках дане твердження все ж таки виявляється помилковим — лише виявлення очікуваних відкритих портів недостатньо, щоб бути упевненим в тому, що ви маєте справу саме з Cisco. Проте можна скористатися деякими додатковими перевірками, характерними саме для цієї платформи.
Служба finger і порти віртуальних терміналів 2001, 4001, 6001
На деякі запити служба finger компанії Cisco може видавати абсолютно даремну (для користувача або адміністратора, але не для зловмисника) інформацію. Віртуальні термінали vty Cisco (зазвичай з номером 5) відповідають на простий запит finger -1 @<узел>, але у видаваних результатах немає нічого інформативного, за винятком лише того, що по самому факту отримання відповіді можна судити про те, що ми маємо справу з маршрутизатором Cisco.
Ще одним методом отримання інформації є звернення до портів 2001, 4001 і 6001, які в маршрутизаторах Cisco призначені для управління пристроєм. За допомогою утиліти netcat зломщик може підключитися до будь-якого з цих портів і перевірити, чи буде отримана яка-небудь інформація від вузла. В більшості випадків отриману тарабарщину важко назвати інформацією, проте якщо підключитися до цих портів за допомогою броузера, вказавши, наприклад, адресу вигляду 172.29.11.254:4001, то результат може виглядати таким чином.
User Access Verification Password: Password: Password: % Bad passwords
Таке повідомлення допоможе зловмисникові упевнитися в тому, що він має справу з пристроєм Cisco.
Служба Xremote Cisco (9001)
Ще одним часто використовуваним портом Cisco є TCP-порт служби Xremote з номером 9001. Ця служба дозволяє вузлам вашої мережі підключатися за допомогою клієнта Xsession до маршрутизатора (зазвичай через модем). Коли зловмисник підключається до цього порту за допомогою утиліти netcat, той пристрій, як правило, передає назад ідентифікаційний маркер, як показано в наступному прикладі.
C:\>nc-nvv 172.29.11.254 9001 (UNKNOWN) [172.29.11.254] 9001 (?) open
-— Outbound Xremote service —-
Enter X server name or IP address:
Контрзаходи: захист від збору інформації про пристрої Cisco
Єдиний
метод, що дозволяє запобігти інвентаризації пристроїв Cisco. полягає в обмеженні доступу за допомогою списку ACL. Можна або використовувати встановлене за умовчанням правило "очищення", або в явній формі заборонити підключення до відповідних портів, щоб всі подібні спроби реєструвалися в контрольному журналі. Для цього можна скористатися командами наступного вигляду.
access-list 101 deny tcp any any 79 log
або
access-list 101 deny tcp any any 9001
|