HTB Timelapse. Атакуем Windows Remote Management и работаем с сертификатами
the Matrix

Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Добавляем IP-адрес машины в /etc/hosts, чтобы было удобнее обращаться к ней:
И запускаем сканирование портов.
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта.
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A).

Мы нашли много открытых портов:
Сразу проведем базовую разведку SMB. Простым подключением с помощью CrackMapExec узнаем версию операционной системы и имя хоста.

Также стоит попробовать подключение от имени гостя (анонимную авторизацию).

И находим доступную для чтения директорию Shares.
Подключимся к этому ресурсу с помощью утилиты smbclient из пакета скриптов impacket и просмотрим доступные файлы (при запросе пароля ничего не вводим).

В каталоге Dev найдем архив ZIP.

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

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

В архиве находим файл .pfx — сертификат в формате PKCS#12. При попытке открыть и просмотреть его у нас снова запрашивают пароль.

Будем надеяться, что и тут используется слабый пароль. Можно преобразовать файл в формат программы John The Ripper — продвинутого брутфорсера хешей. Вместе с «Джоном» обычно поставляется репозиторий скриптов для преобразования хешей из разных форматов файлов в понимаемый брутфорсером формат. В данном случае нам нужен скрипт pfx2john.

Сохраним хеш в файл и передадим на перебор. В качестве словаря будем использовать знаменитый rockyou.

Теперь, когда мы получили пароль от сертификата PFX, нам нужно извлечь из него отдельно сертификат и отдельно ключ. Для этого воспользуемся утилитой OpenSSL, которой нужно указать:


Теперь нам нужно очистить файлы ключа и сертификата. Для этого оставим в файлах только данные после -----BEGIN. Теперь у нас все готово, чтобы подключиться к службе WinRM по сертификату. Для этого используем крутую утилиту Evil-WinRM.

Первым делом получим информацию о текущем пользователе. Это поможет более точно понять контекст, в котором мы работаем.
powershell
whoami /all

Таким образом, подконтрольный нам пользователь состоит в группе разработчиков. Никаких проектов на диске найти не удалось, поэтому посмотрим логи PowerShell, а именно вот этот history-файл:

Из этого файла мы получаем учетные данные для подключения от имени пользователя svc_deploy.

Мы можем получить другой контекст выполнения, поэтому прокинем реверс‑шелл. Но сначала нужно отключить AMSI, сделать это можно с помощью встроенного в Evil-WinRM средства Bypass-4MSI.

Реверс‑шелл возьмем с крутого онлайнового генератора, где нужно указать хост и порт для обратного подключения. Кроме реверс‑шелла, получим и команду для листенера:

А теперь выполняем наш реверс‑шелл.

Так как рабочий контекст изменился, снова запросим информацию о пользователе.

Пользователь состоит в группе LAPS_Readers, что позволяет ему читать свойства объектов, связанных с LAPS.
Local Administrator Password Solution (LAPS) позволяет централизованно управлять паролями администраторов на всех компьютерах домена и хранить информацию о пароле и дате его смены непосредственно в объектах типа Computer в Active Directory. LAPS основан на использовании специальных функций GPO, которые, в свою очередь, основаны на Group Policy Client Side Extension. Это небольшой модуль, который устанавливается на рабочие станции. Это расширение GPO используется для генерации уникального пароля локального администратора на каждом компьютере домена. Пароль администратора автоматически меняется с указанной периодичностью (по умолчанию каждые 30 дней). Значение текущего пароля хранится в конфиденциальном атрибуте ms-Mcs-AdmPwd учетной записи компьютера в Active Directory, доступ на просмотр содержимого атрибута регулируется группами безопасности AD.
На компьютере установлен модуль PowerShell Active Directory, поэтому мы можем получить значение ms-Mcs-AdmPwd одной простой командой.

Мы узнали пароль локального админа, поэтому можем подключиться к службе WinRM.

Машина захвачена!
Источник
Наши проекты:
- Кибер новости: the Matrix
- Хакинг: /me Hacker
- Кодинг: Minor Code
👁 Пробить человека? Легко через нашего бота: Мистер Пробиватор