[Из песочницы] Где взять логины или VoIP в помощь

0dfdc2d721a640c7b30dde1dbae217d1.jpgТестирование на проникновение всегда начинается со сбора информации об инфраструктуре. Доступные узлы с открытыми портами и уязвимыми сервисами, валидные учетные данные и другая информация, позволяющая «продвинуться» и скомпрометировать инфраструктуру интересна в первую очередь. При проведении тестирования методом black-box очень часто встает вопрос: «где взять логины?». В статье я хочу рассказать, откуда ещё можно получить логины на этапе сбора информации. Добро пожаловать под кат.
Проводя аудит методом black-box, мы не знаем об инфраструктуре абсолютно ничего. Так и в этот раз: был предоставлен доступ только к внутреннему сегменту сети компании без какой-либо дополнительной информации. Просканировав сеть было обнаружено много доступных хостов, где требовалось ввести учетные данные для входа. Но их же у нас нет — это логично на начальном этапе. Где же брать логины для дальнейшего подбора паролей? Способов несколько, каждый выбирает по вкусу. Например, можно воспользоваться уже готовыми словарями или поискать информацию в общедоступных источниках — на сайте компании, вероятнее всего, размещаются некоторые почтовые адреса сотрудников. На их основе можно составить словарь логинов. Или, все же, заглянуть в корпоративный каталог телефонов?

На ресепшен у секретаря в свободном доступе стоял телефонный аппарат всеми известной компании «Cisco». Бегло полистав меню аппарата был обнаружен доступный корпоративный каталог телефонов. Оставив пустыми поля «Имя», «Фамилия» и «Номер» я выполнил поиск по каталогу и телефон послушно выдал информацию об абонентах. Доставать информацию с телефона, стоя на ресепшен — некомильфо, поэтому в меню был найден URL CUCM-сервера, откуда подтягивается каталог телефонов.

2291cfed1e3848a3be7365994faca011.jpg

Вернувшись за ноутбук, я перешел по полученному URL

https://XXXXXXXXXXXXX:8443/ccmcip/xmldirectorylist.jsp 

и получил XML-документ с именами абонентов и их внутренними номерами телефонов.

В качестве доступных параметров были «l» (lastname), «f» (firstname) и «n» (number). Параметр «start» позволяет переходить по каталогу. Всего за 1 запрос можно получить 30 значений.

78edc917a39b45ef831458a48a9b63fe.png

Необходимая информация находилась в «Prompt», «Name» и «Telephone». Количество записей (отображаемых и всего):

9087df778d5a4e5aaa691ba3bd625a52.png

Фамилия, имя и номер абонента:

3b7810fe44bf43a79060f6fe0650400b.png

Осталось дело за малым — вытащить все это из из каталога. Для этого был подготовлен небольшой скрипт на Python, который парсит XML-документ по заданным параметрам.

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

Вишенка на торте: помимо фамилий и имен пользователей я также получил имена служебных учетных записей, которые каким-то образом оказались на другом (втором) CUCM-сервере, а это уже гораздо интереснее.

ba95bb2bbc9c442db629654a68f0d3c2.png

В качестве резюме


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

Скрипт
Python скрипт для парсинга XML на github: Download

© Habrahabr.ru