Содержание статьи
Все описанное мы проделали в рамках пентеста крупной ИТ‑компании. Нашей целью было оценить возможность проникновения во внутреннюю сеть из внешней и дать рекомендации, как устранить уязвимости.
Разведка
Первым делом, как обычно, сканируем открытые сервисы. Сама цепочка эксплуатации началась с веб‑приложения IvaConnect — платформы для видео‑конференц‑связи.
Сервис позволяет подключиться к мероприятию по цифровому идентификатору. Путем перебора ID мероприятия мы получили доступ к тестовой комнате 3333. После этого приложение получает учетные данные STUN (логин — ivcs, пароль — ivcs) и подключается к серверу STUN.
Протокол STUN позволяет устанавливать соединение между двумя узлами, находящимися за NAT, и активно используется при установлении соединений в WebRTC. На этом этапе также можно получить внутреннюю адресацию через прослушивание STUN-трафика в Wireshark.
В нашем случае сервер не проверяет, что адрес, по которому нужно подключиться, находится в локальной сети. Таким образом злоумышленник может получить доступ ко внутренним ресурсам, например используя утилиту Stunner.
Если ты обнаружил неправильно сконфигурированный STUN-сервер, Stunner поможет построить SOCKS-прокси, который перенаправляет весь трафик через протокол TURN во внутреннюю сеть.
Для этого нужно просто выполнить команду
./stunner socks -s [IP]:[PORT] -u [USER] -p [PASSWORD]
Таким образом удается получить доступ к внутренней сети 10.
.
Первоначальный доступ
Во время анализа внутренней сети мы обнаружили сервер PostgreSQL, использующий такие же учетные данные, как и сервер STUN. Внутри базы мы нашли таблицу videoconference.
, в которой была запись для подключения к серверу LDAP.
Воспользовавшись новыми знаниями, мы подключились к LDAP, где нас ждал еще один пароль (причем в открытом виде) в поле description.
Учетная запись из LDAP оказалась действительной, и мы получили административный доступ к серверу А. Кроме того, по адресу vcenter.
найден сервер vCenter, содержащий уязвимость Log4Shell. Она‑то и даст нам возможность выполнять код на сервере.
Для эксплуатации необходимо, чтобы целевой сервер не имел доступа к интернету и подключался к внешнему LDAP. Поэтому для эксплуатации используем полученный ранее сервер А.
Закрепление в системе
В файловой системе сервера vCenter можно найти файл data.
, он содержит в себе сертификаты, которые используются для подписи запросов при SAML-аутентификации любого пользователя, включая администратора.
Для генерации сессии через SAML-аутентификацию можно воспользоваться утилитой vcenter_saml_login:
python3 vcenter_saml_login.py -p [PATH TO MDB] -t [HOST]
С полученной сессией нам удалось проникнуть на vCenter и захватить контроль над виртуальной инфраструктурой.
Внутри vCenter мы нашли виртуальную машину express c пройденной аутентификацией и доступом в интернет.
Теперь можно отказаться от STUN-туннеля и воспользоваться напрямую этой виртуальной машиной для доступа ко внутренним ресурсам.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»