Перед тем как я присоединился к компании Salesforce и вплотную занялся исследованием уязвимостей, я работал в группе Red Team. Нашей задачей было поиск слабостей в системе безопасности Salesforce, когда мы выступали в роли сторонних злоумышленников.
Автор: Alberto García Illera
Перед тем как я присоединился к компании Salesforce и вплотную занялся исследованием уязвимостей, я работал в группе Red Team. Нашей задачей было поиск слабостей в системе безопасности Salesforce, когда мы выступали в роли сторонних злоумышленников.
Во время одного из подходов, я установил устройство Pwn Plug R3 внутри переговорной комнаты. К сожалению, когда я вернулся в офис и проверил командную оболочку, выяснилось, что устройству удалость подключиться к сети VoIP VLAN. С точки зрения злоумышленника не сильно богатый улов, но, тем не менее, я решил копнуть глубже и выяснить, что можно извлечь из этой возможности.
Первоначальное исследование
При помощи Pwn Plug R3 мне удалось добраться до свитча марки Meraki. Подобные устройства подсоединены к облачному сервису, чтобы сисадмины могли удаленно управлять сетевым оборудованием через веб-интерфейс. Интерфейс управления показан на рисунке ниже:
Рисунок 1: Интерфейс управления устройством Meraki
Я не смог найти ни одного публичного эксплоита для компрометирования устройств Meraki за исключением шелла для доступа к другим сетям VLAN. Более того, даже авторизированные сисадмины не имеют прямого SSH-доступа, а для управления используют веб-интерфейс. Оставалось только два варианта: заняться поиском другого способа проникновения или попытаться найти эксплоит для удаленного выполнения кода. Я пошел по второму пути. Вначале я решил провести более глубокое исследование веб-портала, связанного со свитчем в надежде собрать больше информации (и, возможно, найти лазейки для выполнения кода). Здесь возможности очень ограничены, поскольку практически везде требуется аутентификация.
Рисунок 2: Для доступа к одной из областей требуются учетные данные
Я стал думать над другим подходом.
Исследование аппаратной части
Мне всегда нравилось досконально разбираться в каком-либо вопросе, и обычно каждый раз происходит нечто экстраординарное: каким-то образом появляются новые болты и гайки, когда я собираю устройство заново. Схожая магия произошла и в этот раз. Совершенно случайно для исследования мне попалось устройство Meraki MX80 Security Appliance, и я решил выполнить пентест аппаратной части, а конкретно извлечь прошивку с целью ознакомления с CGI и бинарные файлами, «висящие» на каких-либо портах. После открытия устройства, я сразу же обратил внимание на жесткий диск емкостью 1 Тб. После подключения диска выяснилось, что там нет файловой системы, а само дисковое пространство использовалось для хранения кэша.
Рисунок 3: Содержимое жесткого диска устройства MerakiMX80
Я предположил, что файлы операционной системы должны находиться во флеш-памяти, которая, в свою очередь, находится на печатной плате устройства. После нескольких часов исследований при помощи мультиметра и логического анализатора я обнаружил открытое последовательное соединение, которое дало мне полный доступ к устройству с правами суперпользователя. В качестве загрузчика использовался U-Boot, как видно на рисунке ниже, после установки корректной скорости передачи (в бодах).
Рисунок 4: Логический анализатор
Скорость последовательного соединения – 57600. Для подключения к последовательному интерфейсу я использовал устройство Raspberry Pi.
Рисунок 5: Схема подсоединения к устройству
После получения полного доступа я извлек все конфигурационные файлы: конфигурационные файлы к webUI, /etc/passwd и так далее. В качестве веб-сервера на портале использовался Lighttpd. Учетные записи к защищенным областям хранятся в файле /tmp/lighttpd-htpasswd.conf со следующим содержимым:
m00180A07A354:/# cat /tmp/lighttpd-htpasswd.*
mf_test:$1$$ZbKKXKQQpKjTbTPeMZwk..
admin:$1$$G7.z4WDwEF7FvCK4H6cah/
Q2DN-GY83-EZBU:$1$$qRPK7m23GJusamGpoGLby/
q2dn-gy83-ezbu:$1$$qRPK7m23GJusamGpoGLby/
Последние две записи связаны уникальным серийным номером устройства, но также можно заметить, что есть два пользователя: mf_test и admin, которые обычно включаются в каждую версию прошивки. Учетные записи зашифрованы алгоритмом MD5, но после перебора при помощи специального оборудования от компании Salesforce, мне удалось подобрать один из паролей:
mf_test:mf_test
Эти учетные записи можно использовать для доступа к любой защищенной области на веб-сервере и модифицировать конфигурационные файлы и другие интересные страницы (подробнее об этом позже). Системные пароли хранятся в файле /etc/password:
m00180A07A354:/etc# cat passwd
root:!:0:0:root:/tmp:/bin/ash
nobody:*:65534:65534:nobody:/var:/bin/false
meraki:MvCWFGH8/CrXM:0:0:meraki:/tmp:/usr/bin/logincheck
mf:$1$$CgXoxAaejQmJWRkDiclb6/:0:0:meraki:/tmp:/usr/bin/mf_logincheck
Я попытался взломать некоторые из этих учетных записей, но успеха не добился. Скорее всего, SSH-соединение запрещено, и пароли не пригодны к использованию.
В следующей части я расскажу, как не только полностью скомпрометировать устройство и получить доступ к оболочке с правами суперпользователя, но и добиться частичной работы устройства модели Meraki на виртуальной машине с Ubuntu. Это исследование чрезвычайно важно для достижения целей, преследуемых группой Red Team.
Примечание: компания Salesforce в курсе о выявленной уязвимости. Обо всех брешах, описанных в этой статье, сообщено компании Cisco. Исправления внесены. Во второй части будут раскрыты другие подробности, включая уникальный номер CVE, где описываются данные проблемы.