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

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



Вернувшись за ноутбук и перейдя по URL
https://XXXXXXXXXXXXX:8443/ccmcip/xmldirectorylist.jsp 
я получил XML-документ с именами абонентов и их внутренними номерами телефонов.

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



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



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



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

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



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


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

Скрипт
Python скрипт для парсинга XML на github: Download
Поделиться с друзьями
-->

Комментарии (1)


  1. Noyer
    14.06.2016 08:52

    Хороший материал. Надеюсь в следующей статье вместишь побольше подобных примеров\техник.