08.02.2004

Эксплуатация маршрутизаторов Cisco. Часть 2.

Здравствуйте еще раз! В первой части этой статьи мы охватили несколько различных способов проникновения в маршрутизатор. В этой части мы сфокусируем внимание на том, что можно сделать после получения доступа к маршрутизатору.

Марк Вольфанг

Здравствуйте еще раз! В первой части этой статьи мы охватили несколько различных способов проникновения в маршрутизатор. В этой части мы сфокусируем внимание на том, что можно сделать после получения доступа к маршрутизатору.

Анализ конфигурации маршрутизатора.

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

Теперь, когда у нас есть конфигурация маршрутизатора, мы можем проанализировать её для определения уязвимых мест и другой полезной информации. Ниже представлен вид типичной конфигурации маршрутизатора:

  ! 
version 12.0 
service timestamps debug uptime 
service timestamps log uptime 
service password-encryption 
! 
hostname router2 
! 
logging buffered errors 
enable secret 5 $1$sz0o$PYahL33gyTuHm9a8/UfmC1 
! 
username xyzadmin password 7 05331F35754843001754 
ip subnet-zero 
no ip routing 
! 
! 
! 
interface Ethernet0 
 description Internal Corporate Link 
 ip address 10.0.1.199 255.255.255.0 
 no ip directed-broadcast 
 no ip route-cache 
 no ip mroute-cache 
! 
interface Ethernet1 
 description Link to DMZ 
 ip address 172.16.1.1 255.255.255.0 
 no ip directed-broadcast 
 no ip route-cache 
 no ip mroute-cache 
! 
interface Serial0 
 description Link from PSInet 
 bandwidth 1536 
 no ip address 
 no ip directed-broadcast 
 no fair-queue 
! 
interface Serial1 
 no ip address 
 no ip directed-broadcast 
 no ip route-cache 
 no ip mroute-cache 
 shutdown 
! 
ip default-gateway 10.0.1.1 
ip http server 
ip classless 
! 
logging history critical 
logging trap warnings 
logging 10.0.1.103 
access-list 100 permit tcp host 192.168.2.99 host 10.0.1.199 eq telnet 
access-list 100 permit tcp host 192.168.2.99 host 10.0.1.199 eq finger 
access-list 100 permit ip 0.0.0.0 255.255.255.248 host 10.0.1.199 
access-list 100 permit ip host 10.0.1.103 any 
access-list 100 deny ip any any 
snmp-server community public RO 
snmp-server community private RW 
snmp-server location XYZ Widgets Inc. Server Room (417) 
snmp-server contact Network Admins 
snmp-server host 10.0.1.112 h3rn3c4 
banner motd ^C 
THIS IS A PRIVATE COMPUTER SYSTEM. 
This computer system including all related equipment, network devices 
(specifically including Internet access), are provided only for 
authorized use.  All computer systems may be monitored for all lawful 
purposes, including to ensure that their use is authorized, for 
management of the system, to facilitate protection against unauthorized 
access, and to verify security procedures, survivability and 
operational security. Monitoring includes active attacks by authorized 
personnel and their entities to test or verify the security of the 
system. During monitoring, information may be examined, recorded, 
copied and used for authorized purposes. All information including 
personal information, placed on or sent over this system may be 
monitored. Uses of this system, authorized or unauthorized, constitutes 
consent to monitoring of this system.  Unauthorized use may subject you 
to criminal prosecution. Evidence of any such unauthorized use 
collected during monitoring may be used for administrative, criminal or 
other adverse action. Use of this system constitutes consent to 
monitoring for these purposes. ^C 
! 
line con 0 
 password 7 01030717481C091D25 
 transport input none 
line aux 0 
line vty 0 4 
 password 7 095C4F1A0A1218000F 
 login 
! 
end 
  

Взлом пароля доступа

Первое, что мы сделаем, это попытаемся взломать пароль доступа. Нам он представлен в виде MD5 хеша, который считается не взламываемым. Но мы не собираемся декодировать пароль, т.к. это просто невозможно. Вместо этого мы выполним "словарную атаку". Также как программа "John the Ripper" анализирует файл /etc/shadow, так и с помощью очень популярного средства "Cain and Abel" возможно проводить как "перебор в лоб" так и "словарную атаку".

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

Figure 1: Cain and Able

Рисунок 1. «Cain and Able»

Как видно из представленного выше скриншота, программой "Cain and Abel" был успешно подобран пароль. Теперь, когда у нас есть такое количество информации, мы можем попытаться зарегистрироваться в системе. Если ACLs запретит нам зарегистрироваться напрямую, то мы можем добавить правило, которое позволит зарегистрироваться в системе или вообще можем отключить ACL.

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

logging buffered errors
logging history critical 
logging trap warnings 
logging 10.0.1.103 

Этот маршрутизатор регистрируется на уровне 4 в syslog сервере 10.0.1.103. Можно, конечно, полностью отключить регистрацию, но это может вызвать слишком сильные подозрения. Также можно увеличить уровень регистрации до уровня регистрации критических ситуаций. В таком случае при модификации маршрутизатора, на syslog сервер ничего не отсылается.

В этот момент любые изменения, вносимые в маршрутизатор, будут сохраняться через http сервер.

Теперь мы запускаем web-браузер и начинаем использовать в своих интересах упомянутую HTTP уязвимость.

Figure 2: Raise the router's log level

РИС 2. Изменяем уровень регистрации на маршрутизаторе

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

В таком случае мы будем использовать тот же самый метод увеличения ACL полномочий для доступа к маршрутизатору.

Figure 3: Add an ACL, giving us access to the router

РИС. 3 Добавляем ACL, открывающий нам доступ к маршрктизатору

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

В файле конфигурации маршрутизатора, существует еще несколько пунктов, о которых следуют упомянуть. ACL показывает проверенный хост. У этого хоста (192.168.2.99) есть права для регистрации на маршрутизаторе, а также для просмотра списка зарегистрированных пользователей на маршрутизаторе. Также у нас есть определенные пользователем строки идентификаторов, которые вероятно будут использоваться на других системах. Обычно, для последующего использования, я размещаю все найденные пароли, наряду со связанными с данной компанией словами, в словарный файл. Дополнительно, мы знаем определенное имя пользователя "xyzadmin".

Вся описанная информация может использоваться для помощи в испытании на проникновение. Обычной практикой в большинстве сетей, является использование основанной на классах схемы паролей. Это означает что каждый различный класс систем, будь-то Unix серверы, NT серверы, маршрутизаторы, коммутаторы и т.п имеют общий пароль. Хотите верьте, хотите нет, но в некоторых сетях используются одинаковые административные пароли для всего! Если это так, то у нас появляется возможность использовать полученный доступ к маршрутизатору для проникновения в другие системы.

Чтобы проверить так это или нет, можно попытаться зайти на syslog сервер. Наиболее вероятно, что это UNIX сервер, поэтому не будет возможна root регистрация, если только они действительно не принимают всерьез свою безопасность. Мы используем найденное имя пользователя "xyadmin" и взломаем с помощью утилиты GetPass, связанный с этим именем пароль. Если эта попытка входа в систему была успешной, то мы как минимум получим категорию доступа к внутренней сети компании XYZ на уровне пользователя. Все это было возможно из-за уязвимости в Cisco HTTP сервере. Другими целями могут быть TFTP сервера, перечисленные в фале конфигурации.

Другой способ обнаружения маршрутизаторов и коммутаторов заключается в использовании CDP (Cisco dicovery protocol). CDP чрезвычайно полезен в "просмотре" сети для обнаружения других Cisco устройств. Это полезно для всех людей, получающих доступ к вашим Cisco устройствам, включая также и злоумышленников. Данная служба не является необходимой, и она не предоставляет информации, которой нет в правильно администрированной сети. Как только устройство проанализировано, взломщик может пытаться использовать полученные пароли на новых устройствах.

Как только пен-тестер зарегистрировался в маршрутизаторе, он, вероятно, захочет узнать к каким еще системам он может получить доступ. Пока он пытается взломать более мощные системы, возможно использование из маршрутизатора служб telnet и traceroute для исследования внутренней сети. В описанной выше конфигурации маршрутизатора, интерфейсы имеют хорошо описанные метки такие как:

  description Internal Corporate Link
 ip address 10.0.1.199 255.255.255.0 
 no ip directed-broadcast 
 no ip route-cache 
 no ip mroute-cache 
! 
interface Ethernet1 
 description Link to DMZ 
 ip address 172.16.1.1 255.255.255.0 
 no ip directed-broadcast 
 no ip route-cache 
 no ip mroute-cache 
! 
interface Serial0 
 description Link from PSInet 
 bandwidth 1536 
 no ip address 
 no ip directed-broadcast 
 no fair-queue 
! 
  

Вы хотите отключить доступ компании в Интернет? Пожалуйста. Необходимо только отключить последовательный порт (serial link) у провайдера. Конечно, маловероятно, что пен-тестер хотел бы это сделать, но я привожу этот пример, чтобы привлечь ваше внимание к важности маршрутизатора. Так как маршрутизатор обеспечивает сетевой трафик, то ему более чем необходимо доверять. Также может оказаться не очень надежным использование в маршрутизаторе протокола telnet (не забывайте пример с общими паролями).

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

Вы можете задаваться вопросом о снифинге трафика маршрутизатора, так как через это устройство действительно пропускается каждый сетевой пакет. Хотя я и не буду обсуждать это в статье, но сниффинг возможен. Возможно установление GRE туннеля с другим маршрутизатором или системой, понимающей GRE. Политика маршрутизации может быть установлена таким образом, чтобы передавать определенный или весь трафик через GRE туннель. В другом конце GRE туннеля, на системах, способных выполнять снифферы, может быть установлен etheral или dsniff. Установка сниффинга очень сложна, и условия и загрузка на маршрутизаторе должны быть правильными. Это очень просто можно использовать для перезагрузки Интернет канала и потенциального отключения сети. Из-за всего этого я сомневаюсь, что даже самые профессиональные пен-тестеры рисковали бы при проведение этого вида атаки, если бы им не давали бы явного разрешения. Для получения дополнительной информации об этом виде нападений, прочитайте превосходную статью, написанную Дэвидом Тэйлором

Выводы

Я надеюсь, с помощью этих статей я несколько просветил Вас, и вы теперь более осведомлены в том, что вы можете делать как пен-тестер.

или введите имя

CAPTCHA