Pentest Enumiration for macOS

    Привет, хабровчане. В преддверии старта курса "Пентест. Практика тестирования на проникновение" приглашаем записаться на открытый урок по теме "Windows ad: сбор информации, эскалация привилегий".


    А также хотим поделиться с вами ещё одной авторской статьёй от нашего эксперта - Александра Колесникова.


    Обычно инфраструктура строится на базе операционных систем Linux и Windows. И казалось бы, зачем разбираться в проблемах других операционных систем? Всё просто. Пентест — это постоянное развитие, изучение новых технологий. К тому же машины в инфраструктуре, которые работают на базе операционной системы macOS, уже и не такая редкость.

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

    MacOS

    MacOS — операционная система, которая в России воспринимается как проприетарная система для “Яблочных” компьютеров и ноутбуков. Эта операционная система, с точки зрения пользователя, в одно и тоже время похожа и непохожа на Linux. Как утверждает документация, операционная система работает на ядре XNU (X is Not Unix). Что говорит о том, что что-то должно делать эту операционную систему уникальной. Архитектура операционной системы, согласно документации, выглядит так:

    Красным выделены потенциально интересные подсистемы для проведения тестирования на проникновения. В этой статье мы рассмотрим сбор информации через “Directory Services”. Из схемы видно, что под капотом очень много всего, что нельзя найти в других операционных системах. В первую очередь бросается в глаза обилие фреймворков, которые использует операционная система, также внутри операционной системы есть часть библиотек BSD проекта. Самое необычное, что так же можно найти в некоторых версиях операционной системы MacOS это фрагменты операционной системы Darwin, которая вообще существует как Open Source проект. 

    Операционная система macOS существует в 2х версиях:

    1. MacOSпользовательская версия, предустановлена на всю технику Apple.

    2. MacOS Serverотдельная версия, которая устанавливается дополнительно из магазина приложений и предоставляет функционал сервера.

    Сервер может использоваться для управления парком машин от Apple, а может служить провайдером для интеграции в другие инфраструктурные сервисы. С точки зрения управления устройствами и учетными данными в корпоративной сети у MacOS есть MDM и OpenDirectory набор сервисов, который доступен в версии Server. Для того чтобы это заработало, могут понадобиться дополнительные оснастки из магазина приложений. Набор сервисов, которые может предоставить macOS Server:

    1. Open Directory — сервис, аналог Active Directory в OC Windows.

    2. Profile Managerсервис для управления профилями пользователя на устройствах.

    3. Xsanсервис для предоставления общего доступа к директориям.

    Очень похоже на то, что мы видим в Active Directory. Вообще системы под управлением MacOS, по заверению разработчиков, могут интегрироваться в любую инфраструктуру, в частности, в Windows AD. MacOS так же имеет собственный набор сервисов Open Directory аналог Active Directory.

    MacOS пользователи и группы

    Как и любая другая современная операционная система, macOS предоставляет многопользовательский интерфейс. И, так же как и другие операционные системы, включает обычных и системных пользователей. Узнаем, каких пользователей возможно создать из интерфейса macOS (System Preferences->Users&Groups):

    1. Standart userобычный пользователь, не может производить настройки операционной системы.

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

    3. Sharing Only пользователь, которого можно создать для возможности расшаривания директорий и ресурсов операционной системы.

    4. Groupsобъединение пользователей, так же как в Linux/Unix операционных системах, группа имеет свой набор привилегий, которые получает каждый пользователь группы.

    На просторах документации нашелся еще и root, но Apple не рекомендует включать этого пользователя. Похоже, что не только Windows любит скрывать дополнительных пользователей. Больше информации из пользовательского интерфейса выудить не удалось, но среди команд, которые доступны из терминала есть команда dscl — терминальный инструмент для работы с сервисами “директорий” иными словами, этот инструмент позволяет собирать информацию о конфигурации операционной системы и инфраструктуры, где она работает.

    Например, вот так можно глянуть, какие есть в системе пользователи, ключевой момент ВСЕ пользователи, включая системных: 

    dscl . ls /Users

    На рисунке выше представлен лишь фрагмент списка пользователей, на самом деле в системе, в которой работает 1 пользователь, этот список состоит аж из 141 пользователя. Вот где была загвоздка всех этих “простых” пользователей, которые создаются из интерфейса операционной системы.

    Список пользователей получили, теперь нужно узнать о привилегиях. Данные в macOS хранятся очень схоже с тем, как это хранится в Windows AD. Каждый пользователь — это объект у которого есть свой набор “property” значений. Чтобы эти значение показать, нужно заменить команду ls на cat:

    dscl . cat /Users/daemon

    Судя по выводу инструмента перед нами пользователь, который не имеет командной оболочки и используется для системы. Попробуем глянуть более “живого” пользователя, например — root:

    Данные более чем исчерпывающие, в выводе есть перечень прав и характеристик пользователя в формате plist — формат файла с помощью которого iOS и macOS описывают объекты и назначают права. Так же здесь есть “Property” которые используются чтобы “интегрироваться” в Active Directory. Это можно видеть по SMBSID, RecordName и UniqueId. Использовать эти данные можно на этапе исследования сети. Вообще инструмент dscl может намного больше:

    dscl . ls /

    На снимке представлены дополнительные объекты, которые так же можно изучить в процессе сбора информации и взаимодействия с Active Directory из скомпроментированной macOS. Для аналогии, в операционной системе Windows  для части действий по сбору информации есть команда net users/net groups.

    MacOS Active Directory

    Перенесемся из локальной версии операционной системы в AD. Предположим, что нам удалось скомпрометировать машину под управлением macOS. Что же теперь можно сделать, как собрать данные? Как перечислить объекты через LDAP? Как получить информацию о конфигурации домена? Как собрать данные о компьютерах в сети?

    Получим список пользователей:

    Можно еще подробнее получить данные, которые будут содержать больше информации:

    Вот так можно собрать информацию по машинам в домене:

    Команда для изучения данных о домене в целом:

    Из вывода команды можно установить домен, настройки домена и данные по парольной политике.

    Вывод

    Изучение большого количества технологий все же приносит свои плоды. Знание механизмов операционных систем отличных от тех, которые используются в корпоративной среде, может позволить повысить сложность и продуманность проведения тестирования на проникновение. В данной статье было продемонстрировано, как можно, не прибегая к сторонним инструментам, собирать информацию о инфраструктуре, имея доступ к обычному пользователю в ОС macOS. А сколько еще всего можно сделать для успешного тестирования? По атакам на операционную систему macOS рекомендую заглянуть сюда.


    Узнать подробнее о курсе "Пентест. Практика тестирования на проникновение".

    Записаться на открытый урок по теме "Windows ad: сбор информации, эскалация привилегий".

    Читать ещё:

    OTUS. Онлайн-образование
    Цифровые навыки от ведущих экспертов

    Похожие публикации

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

      +1
      Enumiration? Это что?

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

      Самое читаемое