Приветствую, вас, уважаемые кулхацкеры. Данный райт будет посвящен прохождению машины raz0rblack на TryHackMe Дисклеймер:  все утилиты и техники, продемонстрированные в статье, приведены в учебных целях. Традиционно начинаем со сканирования сети с помощью Nmap -sC -> опция, запускающая сканирование на основе скриптов; -sV -> определяет версии служб, запущенных на открытых портах; -T4 -> время сканирования. Хм, вроде ничего примечательного. Попробуем проенумить NFS. Сетевая файловая система (NFS) - это распределенная файловая система, которая обеспечивает пользователям доступ к файлам, расположенным на удаленных компьютерах, и позволяет работать с этими файлами точно так же, как и с локальными. Также мы можем найти NFS при помощи утилиты showmount Создадим точку монтирования и смонтируем папку /users Посмотрев ее содержимое, мы увидим два файла В txt будем лежать наш флаг, а вот в xlsx будет список пользователей Имея список пользователей можно составить словарь для проведения AS-REP Roasting. Обычно, создавая пользователей в домене указывают первую букву имени, а за ним идет фамилия. Зная это, составим userlist, чтобы провести перебор пользователей без предварительной аутентификации. dportiroycetvidalaedwardscingramncassidyrzaydanlvetrovardelgadotwilliamssbradleyclin Для этого воспользуемся модулем GetNPUsers из утилиты Impacket GetNPUsers raz0rblack.thm/ -userfile /root/users.txt -dc-ip 10.10.215.15  Результатом работы утилиты будет перехваченный AS-REP запрос пользователя twilliams. Перехватив запрос, мы можем запустить локальный перебор для получения пароля в открытом виде. Воспользуемся утилитой JohnTheRipper john --rules --wordlist=/usr/share/wordlists/rockyou.txt hash.txt  Зная данные учетной записи, запустим crackmapexec для перечисления пользователей путем брутфорса RID crackmapexec smb 10.10.215.15 -u twilliams -p roastpotatoes --rid-brute  В результате работы получим новых валидных пользователей для проведения дальнейшей атаки: xyan1d3, lvetrova, sbradley. Вновь используем crackmapexec для спреинга пароля для указанных пользователей Как видно, у пользователя sbradley стоит статус STATUS_PASSWORD_MUST_CHANGE. Для смены пароля воспользуемся утилитой smbpasswd smbpasswd -r 10.10.215.15 -U sbradley  -r -> опция для указания адреса удаленной машины; -U -> опция для указания пользователя. Далее воспользуемся утилитой SMBMap. SMBMap позволяет пользователям перечислять диски общего доступа samba по всему домену. Программа составляет список совместных дисков, прав доступа на диск, общее содержимое, имеет функциональность выгрузки/загрузки, автоматическую загрузку файлов, имя которых совпадает с образцом и даже возможность удалённого выполнения команд. Этот инструмент был создан для тестирования на проникновение и предназначен для упрощения поиска потенциально чувствительных данных в крупных сетях. В результате увидим список доступных share. Скорее всего нам будет интересна /trash. Для просмотра потенциально интересных файлов подключимся через smb с помощью smbclient Скачаем доступные файлы. В их числе будет архив, защищенный паролем. Для взлома пароля арихва воспользуемся утилитами Zip2John и JohnTheRipper Получив пароль в открытом виде, распакуем архив в котором содержится system.hive и ntds.dit. Чтобы локально извлечь секреты пользователей воспользуемся модулем secretsdump из утилиты Impacket Для отделения хешей из файла воспользуемся следующей командой Для подбора хеша для пользователя lvetrova снова воспользуемся утилитой crackmapexec Для удаленного подключения будем использовать Evil-WinRM Посмотрев содержимое папки пользователя, увидим файл lvetrova.xml В PowerShell есть метод хранения зашифрованных учетных данных, доступ к которым может получить только сохранившая их учетная запись пользователя. Приведенный выше код запрашивает учетные данные, а затем сохраняет их в зашифрованном виде в XML-файле. В результате получим флаг пользователя lvetrova. Далее,зная имя пользователя и хеш его пароля, проведем атаку Kerberoasting, воспользуясь GetUserSPNs, запросив TGS GetUserSPNs -dc-ip 10.10.215.15 raz0black.thm\lvetrova -hashes f220d3988deb3f516c73f40ee16c431d:f220d3988deb3f516c73f40ee16c431d  -outputfile kerb.txt  Также, перехватив TGS, воспользуемся john для локального перебора паролей john --rules --wordlist=/usr/share/wordlists/rockyou.txt kerb.txt  У пользователя есть привилегия SeBackupPrivilege. Она была разработана с целью создания пользователями резервных копий. Эта привилегия должна обходить все ACL, установленные администратором в сети. Итак, в двух словах, данная привилегия позволяет пользователю читать любой файл на всей файловой системе, которая может также включать некоторые конфиденциальные файлы, такие как файл SAM или файл реестра SYSTEM. С точки зрения злоумышленника, эта привилегия может быть использована после того, как он закрепится в системе, а затем перейдет в повышенную оболочку, читая файлы SAM и, возможно, взламывая пароли пользователей с высокими привилегиями в системе или сети. Для осуществления эскалации привилегий нам понадобится утилита diskshadow.exe, скрипт и две DLL: SeBackupPrivilegeUtils.dll и SeBackupPrivilegeCmdLets.dll. Также создадим следующий скрипт для осуществления теневого копирования и назовем его diskshadow.txt: set verbose onX -> будет выводить подробную информацию о выполнении; set metadata -> задает местоположение файла метаданных для создания теневых копий; set context persistentX -> устанавливает постоянную теневую копию, которая сохранится после команды выхода Diskshadow и переживет перезагрузку компьютера; begin backupX -> начинает процесс теневого копирования; add volume C: alias cdriveX -> Псевдоним дает имя теневому идентификатору; createX -> cоздает виртуальный диск моментального снимка на сервере DataCore Server и обслуживает виртуальный диск на том же компьюетере; expose %cdrive% E:X -> Раскрывает теневой идентификатор операционной системе и присваивает указанному диску букву X: end backupX -> завершает процесс теневого копирования. Загрузим скрипт через команду: Также загрузим 2 DLL, которые можно скачать отсюда: и также загрузим их через команду upload. После загрузки для работы DLL пропишем следующее Сделав все процедуры запускаем наш скрипт через утилиту diskshadow.exe /s-> указывает местоположение скрипта После успешного создания теневой копии воспользуемся утилитой robocopy /b -> копирует файлы в режиме резервного копирования, что позволяет Robocopy переопределять параметры разрешений для файлов и папок (ACL). Это позволяет копировать файлы, к которым вы могли бы не иметь доступа, при условии, что они выполняются под учетной записью с достаточными привилегиями После этого копируем куст реестра SYSTEM через команду reg save и выкачиваем наши файлы После скачивания файлов ntds.dit и system произведем локальный дамп секретов из этих файлов с помощью secretsdump Получив хеш администратора подключимся с помощью того же evil-winrm Просмотрим содержимое папки администратора С помощью type откроем файл root.xml Это наш флаг. Конвертируем из hex в обычный текст: Также найдем флаг пользователя twilliams И последний штрих: посмотрев все папки найдем директорию Top Secret, увидим там картинку и выкачаем ее Это все, что мы хотели показать в данном разборе. Помните: 100% стойких систем не бывает. Практикуйтесь, ведь без этого никуда абсолютно любому пентестеру!