ВВЕДЕНИЕ

Похоже, что все эти корпоративные типы используют Active Directory. Что это за «активный каталог»? И как я могу использовать его, чтобы упростить свою работу в качестве Script Kiddie?

Active Directory (AD) — это служба каталогов, разработанная Microsoft для сетей и компьютеров Windows. Служба каталогов — это общая база данных для сопоставления сетевых служб и ресурсов. Его можно использовать для поиска и управления ресурсами, а также для администрирования сети. В частности, AD хранит информацию об объектах и ​​ресурсах в сети и упрощает поиск и использование этой информации. Он использует структурированное хранилище данных для логической иерархической организации информации.

AD поддерживает базу данных объектов, включая общие ресурсы, например серверы и принтеры, а также информацию об учетных записях и службах. Помимо поддержки этой базы данных, она предоставляет службу каталогов для доступа к этим объектам и их администрирования. Эта служба каталогов на самом деле представляет собой набор служб/процессов Windows, обычно работающих на одном или нескольких серверах, известных как контроллеры домена. Службы каталогов включают доменные службы, облегченные службы каталогов, службы сертификатов, службы федерации и службы управления правами. Подробности о них оставлены для более продвинутых Script Kiddies, чтобы они узнали их самостоятельно.

Как упоминалось ранее, объекты в AD хранятся в иерархической базе данных. Иерархия содержит множество уровней, включая леса, деревья, домены и, возможно, несколько уровней организационных единиц. В дополнение к глобальному каталогу самих объектов AD содержит схему, определяющую классы объектов и атрибуты. Еще одна особенность AD — служба репликации, которая гарантирует, что все контроллеры/серверы домена имеют копию информации каталога. Наконец, AD предоставляет механизм запросов и индексов, так что объекты и их атрибуты могут быть найдены сетевыми пользователями и приложениями.

Чтобы полностью понять AD, нам нужно больше рассказать о логической структуре самого каталога, различных ролях контроллера домена, тонкостях схемы AD и даже не начинать с доверительных отношений. Но вам, как Script Kiddie, действительно нужно знать, что AD содержит всю необходимую информацию о сети и даже способы управления этими сетевыми объектами. К счастью, AD вездесущ и легко доступен. Есть много инструментов для доступа к AD, и на самом деле есть чрезвычайно полезный модуль Microsoft AD для PowerShell. Мы будем использовать PowerView для демонстрации большинства тактик и приемов.

ПЕРЕЧИСЛЕНИЕ

Итак, вы говорите мне, что сети Windows просто делают всю эту информацию доступной для всех в сети? Расскажите мне больше. Я люблю бесплатные вещи. Что я могу взять?

AD действительно содержит все, что вы когда-либо хотели знать о сети Windows. Это ваша телефонная книга, атлас и Rolodex в одном (а вы, молодые, спрашиваете седых волос, что такое Rolodex). Windows хочет убедиться, что все пользователи и приложения имеют информацию, необходимую им для доступа к сети и ее ресурсам, поэтому они делают ее доступной для кражи. Просто нужно знать, где искать и как спрашивать. С помощью правильных инструментов и правильных запросов вы можете получить всевозможную информацию о самом домене, компьютерах, пользователях, группах, политиках, элементах управления доступом, трастах и ​​многом другом.

ИНСТРУМЕНТЫ

Во-первых, нам нужен правильный инструмент. Существует множество инструментов, которые Script Kiddie может использовать для взаимодействия со службой AD. Windows предоставляет модуль AD, который обычно доступен на серверах, но может быть загружен и использован на любом клиенте Windows (см. https://github.com/samratashok/ADModule для получения копии). Одной из наиболее распространенных сторонних альтернатив является набор сценариев PowerShell под названием PowerSploit, который имеет модуль разведки под названием PowerView. Единственным недостатком является то, что вам нужны возможность и разрешения для установки этого модуля, но как только вы это сделаете, у вас будет множество командлетов для перечисления всего, что вы хотели бы знать, от информации о домене и компьютере до пользователей и групп, до общих файловых ресурсов. и процессы. Вы даже можете получить настройки объектов групповой политики (GPO) и списков контроля доступа (ACL). В следующих разделах перечислены некоторые командлеты и ожидаемые результаты.

ДОМЕН И ЛЕС

Теперь, когда у нас есть нужные инструменты, давайте начнем получать информацию о нашей AD. Как уже упоминалось, AD организована иерархически с лесами и доменами наверху. Мы можем получить информацию о самом лесе и домене. Для этого в PowerView есть множество командлетов. Вот несколько для начала. После этих команд у нас будет некоторая основная информация о нашем домене, контроллере домена и базовой политике домена.

Get-Forest — возвращает объект леса для текущего (или указанного) леса.

Get-ForestDomain — возвращает все домены для текущего (или указанного) леса.

Get-Domain — возвращает объект домена для текущего (или указанного) домена.

Get-DomainController — возвращает контроллеры домена для текущего (или указанного) домена.

ПОЛЬЗОВАТЕЛИ

Теперь, когда у нас есть общее представление о домене, давайте посмотрим на некоторых пользователей домена. Мы можем использовать PowerView, чтобы вывести список всех пользователей домена или найти информацию о конкретном пользователе. Мы даже можем использовать его для получения определенного свойства пользователя. Например, мы могли бы посмотреть на pwdlastset, badpwdcount и/или logoncount пользователей, чтобы помочь отделить законных пользователей от потенциальных пользователей-приманок/фиктивных пользователей. .

Get-DomainUser — возвращает всех пользователей или определенные объекты пользователей в AD.

Get-DomainUser -Properties — проверяет время последней установки пароля для всех пользователей.

КОМПЬЮТЕР

Сначала мы узнали о домене, а затем о пользователях на домене. Далее давайте посмотрим на компьютеры в домене. PowerView позволит нам перечислить все компьютеры и определенные свойства компьютеров. Это даже позволит нам сделать быструю и грязную проверку пинга.

Get-DomainComputer — возвращает все компьютеры или определенные компьютерные объекты в AD.

Get-DomainComputer -OperatingSystem — список всех систем Server 2016 (может быть, у нас есть «сплойт»?).

ГРУППА

Как только мы узнаем о пользователях и компьютерах, давайте выясним, как они организованы. В PowerView есть командлеты для вывода списка групп и членов группы. Это поможет нам определить потенциальные цели.

Get-DomainGroup — возвращает все группы или определенные групповые объекты в AD.

Get-DomainGroupMember — возвращает членов определенной группы домена.

ПОЛИТИКА

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

Get-DomainPolicy — возвращает политику домена по умолчанию или политику контроллера домена для текущего домена или указанного домена/контроллера домена.

Get-DomainGPO — возвращает все объекты GPO или определенные объекты GPO в AD.

Get-DomainGPOLocalGroup — возвращает все объекты групповой политики в домене, которые изменяют членство в локальных группах с помощью групп с ограниченным доступом или предпочтений групповой политики. Он также возвращает их сопоставления членства пользователей, если они существуют.

Get-DomainGPOUserLocalGroupMapping — берет имя пользователя/группы и необязательный домен, а затем определяет компьютеры в домене, к которым у пользователя/группы есть права локального администратора (или RDP).

Get-DomainGPOComputerLocalGroupMapping — берет объект компьютера (или объекта групповой политики) и определяет, какие пользователи/группы входят в указанную локальную группу для машины посредством корреляции объектов групповой политики.

КОНТРОЛЬ ДОСТУПА

Перечисление AD также можно использовать для определения разрешений объекта или пользователя. AD использует маркеры доступа для установления личности и привилегий. Эти маркеры доступа используются с дескрипторами безопасности для определения разрешений, которые пользователь имеет в отношении объекта. Дескрипторы безопасности состоят из дискреционных списков управления доступом, а также некоторой другой информации. ACL, в свою очередь, состоят из записей управления доступом (ACE). Короче говоря, AD помогает определить, что пользователи могут и не могут делать с другими объектами AD. Мы можем использовать PowerView, чтобы получить список этих разрешений.

Get-DomainObjectAcl — возвращает списки управления доступом, связанные с определенным объектом AD.

Invoke-ACLScanner — находит списки ACL объектов в текущем (или указанном) домене, права на изменение которых установлены для не встроенных объектов.

ТРАСТЫ И ЛЕСА

В AD пользователи в одном домене или лесу могут получить доступ к ресурсам в другом домене или лесу, которые имеют доверительные отношения. Это означает, что если мы сможем выяснить, какие домены или леса доверяют домену или лесу, к которым у нас есть доступ, то, возможно, мы найдем еще одно интересное место для изучения. К счастью, AD также делает эти данные доступными, и PowerView имеет для этого командлет.

Get-DomainTrust — возвращает все доверительные отношения домена для текущего домена или указанного домена.

Get-ForestTrust — возвращает все доверительные отношения между лесами для текущего леса или указанного леса.

Invoke-MapDomainTrust — пытается построить реляционное сопоставление всех доверительных отношений домена.

РАЗНООБРАЗНЫЙ

В дополнение ко всей другой информации об AD, которую мы уже перечислили, доступно гораздо больше информации. Мы только что коснулись того, что AD делает доступным для пользователей и администраторов. Есть еще несколько интересных командлетов, но это еще не все, особенно если вы творческий Script Kiddie.

Get-NetLoggedon — возвращает пользователей, выполнивших вход на локальном (или удаленном) компьютере. Примечание. Административные права необходимы для более новых ОС Windows.

Get-WMIRegLastLoggedOn — возвращает последнего пользователя, вошедшего на локальный (или удаленный) компьютер.

ОХОТА

Со всей этой информацией мы можем сделать больше, чем перечислить; мы можем активно охотиться. PowerView поставляется с несколькими командлетами, которые автоматизируют обнаружение некоторых интересных записей AD.

Invoke-UserHunter — находит машины в локальном домене, на которых вошли указанные пользователи, и может дополнительно проверить, есть ли у текущего пользователя права локального администратора на найденные машины.

Invoke-ShareFinder — находит (нестандартные) общие ресурсы на хостах в локальном домене.

Invoke-FileFinder — находит потенциально конфиденциальные файлы на хостах в локальном домене.

ЗАКЛЮЧЕНИЕ

По сути, Active Directory — это руководство по взлому для автостопщиков? Я просто спрашиваю, и он говорит мне все, что мне нужно знать? Это потрясающе. Почему я так испугался человека за занавеской? Это определенно облегчит мою жизнь в Script Kiddie.

Конечно, теперь вы лучше понимаете AD и то, как его можно использовать для облегчения исследования и перечисления сети. Основная цель AD — сделать информацию о сетевых ресурсах более доступной. AD — это база данных и набор служб, используемых пользователями и приложениями, и вы тоже можете использовать ее. Вам просто нужно знать, что доступно, как попросить об этом и какие инструменты доступны, чтобы помочь вам. Теперь вы можете использовать эти инструменты и знания, чтобы покорить мир! Или, по крайней мере, этот домен… Только не забывайте всегда проверять возвращаемые значения.

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА

Первоначально опубликовано на https://www.trustedsec.com/blog/active-directory-for-script-kiddies/