Обнаружение
На этом этапе применяется сканирование портов с использованием разнообразных инструментов, о которых мы уже довольно подробно говорили в предыдущих главах. В большинстве случаев для выполнения всех работ будет вполне достаточно таких утилит, как 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