Архив рубрики: Windows

Поиск контролеров домена Active Directory

При проведении внутреннего тестирования на проникновение требуется определить цели атаки.
Одними из главных целей являются контроллеры домена Active Directory. Найти контроллеры домена можно множеством способов.

Получение имени домена

Для начала нам нужно узнать имя домена. Как правило оно передается в параметрах DHCP сервера domain-name (5) и или domain-search (119). Посмотреть значения этих параметров можно в файле /etc/resolv.conf.

Пример файла resolv.conf:

# Generated by NetworkManager
search pentestlab.lan
nameserver 192.168.1.1
nameserver 192.168.1.2
nameserver 172.16.2.2

соответствено, скорее всего, имя домена – pentestlab.lan.

После получения имени домена, мы можем запросить у DNS сервера список всех контроллеров домена.

Первый способ

Запрос ldap SRV записей.

nslookup -type=srv _ldap._tcp.dc._msdcs.

Пример:

nslookup -type=srv _ldap._tcp.dc._msdcs.pentestlab.lan

Второй способ

Запрос kerberos записей.
Читать далее Поиск контролеров домена Active Directory

Уменьшение образов виртуальных машин в VMware Workstation/Fusion

При использовании виртуальных машины с дисками типа Thin Provision (которые создаются с минимальным размером и увеличиваются по мере наполнения их данными) диски сильно разрастаются со временем, но при этом фактическое количество данных не всегда сильно возрастает. Это происходит в связи с тем, что в виртуальном диске появляются сектора которые были использованы гостевой операционной системой и потом освобождены, но фактически там остаются данные, которые уже не нужны но место на виртуальном диске занимают. Эти данные можно перезаписать нулями с дальнейшим уменьшением размера “тонкого” диска. Как это сделать – описано в нашей статье.
Читать далее Уменьшение образов виртуальных машин в VMware Workstation/Fusion

Доставка Payload в ярлыке (LNK файл)

В данной статье рассказывается о доставке полезной нагрузки (или загрузчика полезной нагрузки) в Windows-системы в файле ярлыка (LNK файл). Этот способ доставки полезной нагрузки работает во всех системах Windows (XP, Vista, 7, 10, 2008, 2008 r2, 2012, 2012 r2, 2016).
Плюсы данного метода:

  • многие спам-сканнеры пропускают LNK файлы;
  • многие антивирусы не проверяют LNK файлы;
  • относительно высокое доверие пользователей;
  • не требует дополнительных действий пользователя после запуска.

На примере рассматривается доставка powershell загрузчика, рассмотренного в статье Доставка Payload с помощью Powershell. Так же, с помощью данного метода можно доставить любую другую полезную нагрузку, но с условием, что она записана одной строкой (не используются символы перевода строки: CR и LF).
Для PowerShell скрипта, на основе которого создан пример требуется все команды вытянуть в одну строку и разделить символом ; (точка с запятой).

В итоге мы получим скрипт:

Для продолжения чтения этой статьи требуется подписка. Войти или Оформить подписку.

Доставка Payload с помощью Powershell

При проведении внешнего тестирования на проникновение часто требуется использовать социальную инженерию для преодоления внешнего сетевого периметра компании. Например запуск на рабочей станции какого-либо Payload с функцией обратного подключения и создания туннелей. Чаще всего подобные тесты проходят с помощью доставки пользователям различных видов Remote Administration Tool (RAT) и прочело специализированного ПО, но многие почтовые сервера не пропускают исполняемые файлы, да и многие пользователи боятся открывать неизвестные исполняемые файлы. Поэтому приходится использовать различные скрипты для доставки полезной нагрузки. Например JScript и VBScript (Примеры данных скриптов описаны в статье: JScript и VBScript для доставки Payload). Но так же можно использовать и PowerShell скрипты.
Как написать такой скрипт, описывается в данной статье.

Для начала создадим файл downloader.ps1 и поместим в него следующий код:

Для продолжения чтения этой статьи требуется подписка. Войти или Оформить подписку.

JScript и VBScript для доставки Payload

Когда в рамках тестирования на проникновение требуется доставка payload нагрузки в тестируемую инфраструктуру (в качестве цели рассматриваем систему под управлением Microsoft Windows) с использованием человеческого фактора (например социальная инженерия), то существует множество способов доставки (например фишинговая почтовая рассылка, которая описывается в статьях: Gophish Framework. Установка фреймворка для фишинга и Gophish Framework. Создание фишинговой рассылки), но многие пользователи не открывают исполняемые exe файлы, а так же многие почтовые сервера не пропускают письма с исполняемыми файлами. Поэтому попробуем написать скрипт, который будет загружать payload со внешнего сервера и запускать его.

Вариантов скрипта будет два:

  • скрипт на JScript;
  • скрипт на VBScript.

Они оба могут быть запущены пользователем из Userspace, что приведет к загрузке требуемого payload.

JScript

Код нужно сохранить в файл название.js.

Для продолжения чтения этой статьи требуется подписка. Войти или Оформить подписку.

Windows 10, WebDAV и HTTP

В Windows, по умолчанию, запрещено подключать встроенным клиентом WebDAV ресурсы по HTTP, требуется использовать HTTPS (иначе возникает ошибка: “Неправильное имя папки. Задайте другое имя.“).
Со стороны безопасности это правильно, но иногда возникают ситуации, когда невозможно использовать HTTPS, а подключаться надо.
Чтобы разрешить подключение по HTTP нужно изменить параметр в реестре.

Открываем редактор реестра Regedit.
Переходим по пути: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
Далее находим параметр BasicAuthLevel и меняем значение на 2 (по умолчанию 1).
После этого перезагружаемся.
Теперь можно подключаться к сетевому ресурсу по протоколу HTTP.

Устранение ошибки 789 при VPN соединении

Иногда бывают проблемы с VPN подключением из Windows (обычно с L2TP подключением). Появляется ошибка 789.
Для исправления данной ошибки открываем Regedit и переходим в ветку реестра:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters

Далее создаем (или изменяем) существующие параметры, прописав в них единицу:

"ProhibitIpSec"=dword:00000001
"AllowL2TPWeakCrypto"=dword:00000001

Пояснение:
ProhibitIpSec – не создавать автоматический фильтр, для проверки подлинности ЦС, а использовать локальный или руководствоваться политиками IPSEC.
AllowL2TPWeakCrypto – разрешить MD5 и DES.

Далее перезагружаемся и подключаемся. Ошибка больше не появляется.

Mimikatz или получаем пароли залогиненных учеток Windows

Как это не странно, но механизм WDigest в Windows хранит учетки в памяти в не зашифрованном виде. Поэтому их можно оттуда получить.

Чтобы просмотреть пароли авторизованных пользователей в системе Windows нам понадобится утилита Mimikatz
Взять ее можно в официальном блоге разработчика по адресу: http://blog.gentilkiwi.com/mimikatz

Далее загружаем ее на нужную нам систему и запускаем ее от имени администратора, потому что только администраторам доступно использование отладочного режима.
Во всех остальных случаях мы получим ошибку: ERROR kuhl_m_privilege_simple ; RtlAdjustPrivilege (20) c0000061

После запуска утилиты у нас появится интерфейс для выполнения команд.
В нем вводим команды:

privilege::debug

Получить привелегии отладки.
на что мы должны получить ответ, о том, что успешно включен режим отладки: Privilege ’20’ OK
Читать далее Mimikatz или получаем пароли залогиненных учеток Windows

Как узнать имена учетных записей администраторов домена

Как это не странно, но в Active Directory имена администраторов не являются конфиденциальной информацией.
Посмотреть кто является администратором домена можно с помощью команды.

Net group "Domain Admins" /domain

Требуемые привелегии: команда должна выполняться с правами пользователя домена или выше.

Пример выполнения команды

На этом выбор главных целей атаки в AD заканчивается даже не успев начаться.

Получаем пароль локального Администратора из GPO (Groups.xml)

Все-таки архитектурные решения Windows довольно странные.
Даже в групповых политиках есть критические уязвимости, которые никто не закрывает годами.
Например в AD, основанной на Windows 2008 и выше (в том числе и Windows 2012R2) есть параметр политики, которым можно задать пароль для локального администратора на компьютерах, которые входят в домен. Но данный параметр хранится практически в открытом виде. Точнее он зашифрован, причем с помощью AES256, только вот ключ шифрования хранится в открытых источниках, да и сам файл доступен почти всем.

А теперь попробуем проэксплуатировать эту уязвимость.

Для начала создадим политику, в которой будет задаваться пароль локального администратора для членов домена.
Далее в политике перейдем по адресу:
Конфигурация компьютераНастройкаПараметры панели управленияЛокальные пользователи.
И создадим нового пользователя.
Как это сделать – видно на скриншоте.
После нажатия ок, нас предупредят, что это все не безопасно (но кто на это смотрит…).

Читать далее Получаем пароль локального Администратора из GPO (Groups.xml)