На конкурсе GeekPWN 2017 13 мая 2017 продемонстирировали эпичную уязивомсть в Smart Install Client, позволяющую получить получить доступ к устройству без прохождения аутентификации:
Smart Install – это plug-and-play функциональность для конфигурации и управления, которая обеспечивает быстрое развертывание новых устройств, автоматизируя процесс начальной конфигурации и загрузки образа операционной системы для нового коммутатора. То есть можно просто установить несконфигурированный коммутатор, подключить питание и всё. Данная технология также предоставляет возможность бекапа конфигураций. Сеть, использующая Smart Install включает в себя группу сетевых устройств в роли клиентов, которая обслуживаетя общим director-ом.
Smart Install Client запускает сервер на TCP-порту 4786 для взаимодействия со Smart Install Director. By design требуется, чтобы порт был открыт по умолчанию. Уязвимость связана c переполнением стека в коде Smart Install Client. Путем отправки специально оформленного сообщения ibd_init_discovery_msg на TCP-порт 4786 и можно получить доступ.
Если обновить софт возможности и/или желания нет, можно использовать простой workaround, просто отключив smart install. Под рукой как раз был такой дырявый Cisco Catalyst 3750G, решил на нем проверить.
Как видим, упомнятый порт у него открыт:
$ nmap -p T:4786 10.10.10.2 Starting Nmap 7.60 ( https://nmap.org ) at 2018-04-06 11:26 EEST Nmap scan report for 10.10.10.2 Host is up (0.14s latency). PORT STATE SERVICE 4786/tcp open smart-install Nmap done: 1 IP address (1 host up) scanned in 0.37 seconds
Идем на коммутатор, смотрим включена ли фича:
sw1#show version | inc Model number Model number : WS-C3750G-24TS-E sw1#show vstack config Role: Client (SmartInstall enabled) Vstack Director IP address: 0.0.0.0 *** Following configurations will be effective only on director *** Vstack default management vlan: 1 Vstack management Vlans: none Join Window Details: Window: Open (default) Operation Mode: auto (default) Vstack Backup Details: Mode: On (default) Repository:
Выключаем:
sw1#conf t Enter configuration commands, one per line. End with CNTL/Z. sw1(config)#no vstack sw1(config)#exi sw1#show vstack config Role: Client (SmartInstall disabled) Vstack Director IP address: 0.0.0.0 *** Following configurations will be effective only on director *** Vstack default management vlan: 1 Vstack management Vlans: none Join Window Details: Window: Open (default) Operation Mode: auto (default) Vstack Backup Details: Mode: On (default) Repository:
Проверяем доступность по сети, порт теперь закрыт:
$ nmap -p T:4786 10.10.10.2 Starting Nmap 7.60 ( https://nmap.org ) at 2018-04-06 11:46 EEST Nmap scan report for 10.10.10.2 Host is up (0.12s latency). PORT STATE SERVICE 4786/tcp closed smart-install Nmap done: 1 IP address (1 host up) scanned in 0.49 seconds
Примечательно, что исправление Cisco выпустила только 28-го марта 2018 г. В базе данных CVE уязвимости просвоен идентификатор CVE-2018-0171.