![](https://habrastorage.org/files/0df/dc2/d72/0dfdc2d721a640c7b30dde1dbae217d1.jpg)
Проводя аудит методом black-box, мы не знаем об инфраструктуре абсолютно ничего. Так и в этот раз: предоставлен доступ только к внутреннему сегменту сети компании без какой-либо дополнительной информации. Просканировав сеть было обнаружено много доступных хостов, где требовалось ввести учетные данные для входа. Но их же у нас нет — это логично на начальном этапе. Где же брать логины для дальнейшего подбора паролей? Способов несколько, каждый выбирает по вкусу. Например, можно воспользоваться уже готовыми словарями или поискать информацию в общедоступных источниках — на сайте компании, вероятнее всего, размещаются некоторые почтовые адреса сотрудников. На их основе можно составить словарь логинов. Или, все же, заглянуть в корпоративный каталог телефонов?
На ресепшен у секретаря в свободном доступе стоял телефонный аппарат всеми известной компании «Cisco». Бегло полистав меню аппарата найден доступный корпоративный каталог телефонов. Оставив пустыми поля «Имя», «Фамилия» и «Номер» я выполнил поиск по каталогу и телефон послушно выдал информацию об абонентах. Доставать информацию с телефона, стоя на ресепшен — некомильфо, поэтому из соседней вкладки меню я узнал URL CUCM-сервера, откуда подтягивается каталог телефонов.
![](https://habrastorage.org/files/229/1cf/ed1/2291cfed1e3848a3be7365994faca011.jpg)
Вернувшись за ноутбук и перейдя по URL
https://XXXXXXXXXXXXX:8443/ccmcip/xmldirectorylist.jspя получил XML-документ с именами абонентов и их внутренними номерами телефонов.
В качестве доступных параметров были «l» (lastname), «f» (firstname) и «n» (number). Параметр «start» позволяет переходить по каталогу. Всего за 1 запрос можно получить 30 значений.
![](https://habrastorage.org/files/78e/dc9/17a/78edc917a39b45ef831458a48a9b63fe.png)
Необходимая информация находилась в «Prompt», «Name» и «Telephone». Количество записей (отображаемых и всего):
![](https://habrastorage.org/files/908/7df/778/9087df778d5a4e5aaa691ba3bd625a52.png)
Фамилия, имя и номер абонента:
![](https://habrastorage.org/files/3b7/810/fe4/3b7810fe44bf43a79060f6fe0650400b.png)
Осталось дело за малым – вытащить все это из каталога. Для этого был подготовлен небольшой скрипт на Python, который парсит XML-документ по заданным параметрам.
В результате работы скрипта я узнал фамилии и имена пользователей, что позволило мне создать точный словарь логинов. Номера телефонов можно задействовать при генерации паролей.
Вишенка на торте: помимо фамилий и имен пользователей я также получил имена служебных учетных записей, которые каким-то образом оказались на другом (втором) CUCM-сервере, а это уже гораздо интереснее.
![](https://habrastorage.org/files/ba9/5bb/2bb/ba95bb2bbc9c442db629654a68f0d3c2.png)
В качестве резюме
Общедоступный корпоративный телефонный каталог предоставляет злоумышленнику неплохой набор входных данных, с помощью которых он может скомпрометировать целевую систему.
Скрипт
Python скрипт для парсинга XML на github: Download
Поделиться с друзьями
Noyer
Хороший материал. Надеюсь в следующей статье вместишь побольше подобных примеров\техник.