Проводя тестирование на проникновение, довольно часто приходится иметь дело с доменами Active Directory. Домен — группа подключенных к сети компьютеров, которые совместно используют информацию об учетных записях пользователей и политику безопасности. За его управление отвечает контроллер домена, на котором работает служба Active Directory, если используется Windows Server, или Samba — для Unix-подобных систем. Эти службы позволяют хранить информацию о самом домене, всех ее пользователях, настройках и т.д.

Чтобы получить информацию о домене, необходимо использовать специальный инструментарий, например Enum4linux. Этот инструмент написан на Perl и представляет собой обёртку вокруг инструментов из пакета Samba: smbclient, rpclient, net и nmblookup, поэтому необходимо установить сам пакет Samba в качестве зависимости.

Ключевые функции:

  • вывод списка пользователей;
  • вывод информации о членстве в группе;
  • перечисление общих ресурсов;
  • определение принадлежности к рабочей группе или к домену;
  • идентификация удалённой операционной системы;
  • получение информации о парольной политике.

Информация предоставлена исключительно в ознакомительных целях. Не нарушайте законодательство!

Установка

Если говорить про Kali Linux, то пакет присутствует в стандартном репозитории, поэтому проблем с установкой не возникает:

# apt install enum4linux

Основные опции для запуска:

  • -U — получение списка пользователей;
  • -M — получение списка машин в домене;
  • -S — получение списка общих ресурсов;
  • -P — получение информации о парольной политике;
  • -G — получение списка групп и членов;
  • -o — получить информацию об ОС на компьютерах.

Рассмотрим некоторые из них по отдельности:

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

# enum4linux -U 192.168.60.100

Как правило, название домена определяется автоматически и довольно точно, поэтому указывать его нет необходимости. В случае, если по каким-либо причинам Enum4linux не смог определить этот параметр, то указать вручную его можно через опцию -w, например: -w EXAMPLE.COM. При сборе подобной информации обращаться необходимо непосредственно к контроллеру домена, иначе ответ получен не будет. Чтобы определить, какой сервер является контроллером домена, можно использовать nslookup. Выполняем команду:

# nslookup -q=SRV _ldap._tcp.dc._msdcs.EXAMPLE.COM 192.168.60.100, где

  • EXAMPLE.COM — название домена;
  • 192.168.60.100 — IP-адрес DNS-сервера.

В результате мы получим доменное имя DC. Дальше остается только узнать его IP-адрес:

# nslookup master.example.com 192.168.60.100

В нашем случае контроллер домена и DNS-сервер — это одна и та же машина, но такой вариант бывает не всегда, поэтому используя этот метод можно довольно точно определить контроллер домена в сети.

Получение списка компьютеров в домене

В текущем релизе функционал работает некорректно.

Пример

Получение списка общих ресурсов

# enum4linux -S 192.168.60.100

В нашем случае каких-то специфичных общих ресурсов нет.

Получение списка групп и членов

# enum4linux -G 192.168.60.100

Получение информации об ОС компьютеров в домене

# enum4linux -o 192.168.60.101

Для выполнения данной команды применительно к Windows необходимо также указать логин/пароль от любой имеющейся доменной учетной записи. Сделать это можно используя опции -u и -p. Получить список пользователей можно с помощью опции -U, которую ранее рассматривали, а пароль — методом перебора для протоколов с включенной доменной аутентификацией, например, SSH или RDP для Linux и Windows соответственно.

Получение информации о парольной политике

Для получения этой информации необходим уже другой инструмент, который называется Polenum, а также логин/пароль от доменной учетной записи. Об этом написано в справочной информации вместе со ссылкой на него. Указав логин/пароль и выбрав один из двух вариантов протоколов (445/SMB или 139/SMB), получим информацию для конкретного компьютера.

# ./polenum.py ivanov:OIWjdjsid92@192.168.60.101 139/SMB

Результат

Узнать больше об инструментарии для проведения тестирования на проникновение на программах практической подготовки Корпоративные лаборатории Pentestit.