Pull to refresh

HackTheBox. Прохождение Nest. NTFS потоки, реверс C# и бродилка по SMB

Reading time3 min
Views4.5K
image

Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox.

В данной статье долго блуждаем в ресурсах SMB, находим альтернативные потоки NTFS и реверсим приложение на С#.

Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)

Организационная информация
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.

Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.

Recon


Данная машина имеет IP адрес 10.10.10.178, который я добавляю в /etc/hosts.

10.10.10.178    nest.htb

Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 500 пакетов в секунду.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.178  --rate=500

image

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

nmap -A nest.htb -p445,4386

image

Первым делом обратим внимание на ресурс SMB. Попробуем войти от имени гостя.

image
sauna

И обнаруживаем доступные ресурсы. Давайте рекурсивно посмотрим все доступное нам содержимое.

image

Из приведенных файлов, наиболее интересна записка «Welcome Email.txt». Подключимся к ресурсу и сохраним себе на локальную машину данный файл.

image

А в самом сообщении на сообщается ресурс и учетные данные для подключения к нему.

image

Посмотрим все содержимое ресурса, но уже с использованием найденных учетных данных.

image

В данном случае нас всегда должны интересовать файлы конфигураций, так как в них можно находить названия ресурсов, служб или даже учетные данные. Поэтому снова подключаемся к ресурсу и забираем все конфиги.

image

И в одном файле находим название закрытого ресурса «Secure$», а в другом — учетные данные пользователя.

image

image

Но пароль не подходит, видимо он зашифрован. Но выходит обратиться к найденному ресурсу с уже имеющимися учетными данными.

image

Но мы не можем просмотреть содержимое директории IT, благо имеем одну имеющуюся внутри директорию (следует из конфига). Смотрим все содержимое \Secure$\IT\Carl\.

image

Там расположен проект VisualBasic. Я подключился через проводник и скопировал папку с проектом на локальную машину.

image

Открываем проект и находим место, где из конфига считывается пароль и расшифровывается.

image

После беглого просмотра в сам принцип шифрования лезть не особо хотелось, поэтому загружаем проект в Visual Studio и изменяем код, чтобы узнать пароль при отладке.

image

image

Так мы узнаем реальный пароль пользователя. Подключаемся и забираем токен.

image

ROOT


Осматриваемся дальше в рабочей директории пользователя.

image

Из файла конфигураций мы понимаем, что работает на втором порте.

image

Но подключившись и посмотрев help, понимаем, что нужен пароль.

image

Заходим в директорию и скачиваем приложение, возможно, проанализировав его, мы сможем найти пароль.

image

Повезло, что данное приложение написано на C#, это позволит нам легко декомпилировать весь проект с помощью dnSpy.

image

image

Таким образом программа, программа принимает на вход файл конфигураций, откуда достает определенные параметры.

image

Но в проекте ничего не находим. Далее было потрачено много времени, пока не пришло осознание всмотреться “глужбе” в пустой файл “Debug Mode Password.txt”. Подключим сетевой ресурс.

image

А теперь посмотрим все потоки данного файла. И определяем, что поток Password хранит 15 символов.

image

Прочитаем его, находим пароль для debug режима (затупил… бывает).

image

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

image

image

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

image

Судя по названию приложения, идем в LDAP.

image

И снова находим уже имеющееся у нас приложение и конфиг файл.

image

Вот и те параметры которые преобразуются в приложении. Найдем функцию расшифровывания, и сделаем вывод значения в консоль, перед его возвратом.

image

Ну и изменим одно из условий, чтобы приложение не останавливалось, при проверке наличия файла.

image

Перекомпилируем проект и запустим приложение, указав конфиг в качестве аргумента.

image

И получаем пароль администратора. Далее успешно подключаемся с помощью psexec.

image

Имеем полный контроль над машиной.

Вы можете присоединиться к нам в Telegram. Там можно будет найти интересные материалы, слитые курсы, а также ПО. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.
Tags:
Hubs:
Total votes 8: ↑8 and ↓0+8
Comments4

Articles